프리코스가 끝이 났다. 길고도 짧은 여정이었다. 배운 부분도 많고, 아쉬운 부분도 많다. 이 시간들을 잊지 말고 잘 기억해야지 싶다. 1. 3주차 피드백 정리공통 피드백함수의 길이는 15 라인을 넘지 말자. 🔼비즈니스 로직과 UI 로직은 분리하자. 데이터가 필요하다면 getter 메서드를 통해 View로 전달하자. 🔼연관성이 있는 상수는 static final 대신 enum을 활용하자. ✅final 키워드를 사용해 값의 변경을 막자. ✅객체의 상태 접근을 제한(캡슐화) 하자. 🔼객체는 객체답게 사용하자. 객체가 자신의 데이터를 스스로 처리하도록 메시지를 던지게 하자. 🔼필드의 수를 최소화하자. 🔼성공하는 케이스 뿐만이 아닌 예외 케이스도 테스트하자. ✅파라미터화된 테스트를 구현하자. ✅테스트 코..
3주차를 마무리하며 지난 시간들을 돌아보니 지원서에 작성했던 목표에 조금씩 도달하고 있는 것 같다. 특히 스스로 깊이 있는 고민을 하는 과정을 즐기기 시작했다는 점이 가장 큰 변화다. 매주 미션을 수행할 때마다 설계-구현-피드백-회고의 순환 학습을 따르니, 각 과정에서 나만의 학습 방법이 명확하게 갖춰지는 것 같다. 특히 피드백 과정에서 공통 피드백, 코드 리뷰, 스터디원분들의 피드백을 모두 정리하고, 이를 차주 목표로 설정하니 더 배워야 할 점들이 눈에 명확히 보이기 시작했다. 또한 코드 리뷰에 다시 한 번 답글을 달며 내가 구현한 코드를 다른 사람에게 설명하는 과정을 통해 메타인지를 할 수 있었던 것 같다. 대면 스터디에서는 각자의 코드를 설명하고, 회고록을 공유하며 더욱 즐겁게 프로그래밍에 임하고 ..
1. 1주차 피드백 정리피드백은 공통 피드백, 코드 리뷰, 대면 스터디에서 얻은 피드백을 모두 정리했다. 뿐만 아니라 다른 사람들의 코드를 보며 나도 고려해보면 좋을 것 같은 내용들도 정리했다. Git으로 관리할 자원을 고려하자.커밋 메시지를 의미 있게 작성하자.공백 라인을 의미 있게(4개의 빈 칸을 들여쓰기 단위로) 사용하자.각 클래스와 메서드의 행위를 더 작게 분리하자.메서드 네이밍에 더 많은 시간을 할애하자.확장성을 위해 MVC 패턴을 적용해보자.확장성을 위해 Output을 담당하는 클래스에서 안내 메시지 출력 기능을 담당해보자.입・출력 객체 생성은 Controller 계층으로 분리해보자.요구사항을 더 꼼꼼하게 읽고, 이에 대한 검증을 확실히 구현하자.예외 케이스를 더 꼼꼼하게 많이 생각해보고, 이..
현재의 나는 Comfort Zone에 머물러 있는 것 같다. 부족함을 탓하고, 배움을 갈망하지만 실천하지 않았다. 스스로가 바뀌길 원한다면, 스스로 움직여야 한다. 한 번에 원하는 곳에 도달하기는 쉽지않다. 어느 정도 길을 그려놓고, 그 안에 작은 목표들을 세워서 Fail fast 하자. 실패하고, 반복하고, 피드백을 받는 과정을 통해 프리코스 안에서 나만의 학습법을 찾고, 부족했던 부분들을 조금씩 채워나가고 싶다. 프리코스는 참여자들에게 최소한의 학습 목표와 요구사항을 던져 놓는다. 물고기를 손에 쥐어주는 것이 아니라 물고기를 잡는 법을 알려준다. 물고기를 잡는 법을 알려주더라도, 사람마다 한 마리의 물고기를 잡을 때까지의 시간과 노력은 제각각이기 마련이다. 스스로 물고기를 잡을 때까지 나만의 방법을..
이제 0.0 버전을 점차 개선해나가보려 한다. 따라서 리팩토링을 해보았다.1. 리팩토링(1) 클래스 분리 Application 클래스 안에 구현했던 코드를 개선해보고자 클래스를 분리했다. SOLID 원칙 중 하나인 SRP(단일 책임 원칙)를 따르고자 했기 때문이다. 또한 '좋은 코드, 나쁜 코드'에 따르면 클래스는 자신의 기능에만 충실해야 한다. 따라서 입력, 출력, 계산 기능에 맞게 클래스를 세분화 했다. (2) 클래스 네이밍 구글 자바 스타일 가이드에 따르면 클래스 명은 명사 또는 명사구로 작성해야 한다. 따라서 InputHandler, OutputHandler, Calculator로 네이밍 했다. https://github.com/JunHoPark93/google-java-styleguide Git..
1일차 다짐처럼 우선 기능 요구사항 및 프로그래밍 요구사항을 만족하는 0.0 버전을 구현했다. 1주차 미션의 핵심 기능은 '계산기'다. 아래는 구현 과정에서 했던 고민이다.1. Console 라이브러리 분석아래는 우아한테크코스에서 제공한 Console 라이브러리이다.readLine()콘솔에서 한 줄의 입력을 받아 문자열로 반환하는 메서드close()scanner가 생성되어 있는 경우, 이를 닫고 다시 null로 설정하는 메서드getInstance() 메서드scanner가 아직 생성되지 않았을 경우 Scanner(System.in)으로 초기화하고, 생성된 객체를 반환하는 메서드import java.util.Scanner;public class Console { private static Scanner..