우아한 테크 코스 5기 프리코스 - 2주차 회고
객체지향 설계의 시작
2주차가 끝난 뒤 작성한 회고 글입니다.
1. 본격적인 객체지향 설계의 시작
드디어 2주차부턴 객체지향 생활 체조 원칙 관련한 추가 요구 사항이, 프로그래밍 요구 사항을 통해 제공되기 시작했다. 추가된 요구 사항들을 살펴보자.
- indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다.
- 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.
- 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메서드)를 분리하면 된다.
- 3항 연산자를 쓰지 않는다.
- 함수(또는 메서드)가 한 가지 일만 하도록 최대한 작게 만들어라.
- JUnit 5와 AssertJ를 이용하여 본인이 정리한 기능 목록이 정상 동작함을 테스트 코드로 확인한다.
- 테스트 도구 사용법이 익숙하지 않다면
test/java/study
를 참고하여 학습한 후 테스트를 구현한다.
- 테스트 도구 사용법이 익숙하지 않다면
애초에 3항 연산자는 알고리즘 코테 외엔 쓰지 않고 있었다. 그리고 JUnit 5와 AssertJ 와 같은 테스트관련 기능들도 이미 학습을 어느정도 해놓은 상태여서 수월했다. 그래서 이 중 미션을 구현하면서 가장 신경을 썼던 요구사항은 ‘indent depth 를 2로 맞추는 것’ 과 ‘메서드를 한 가지 일만 하도록 최대한 작게 만드는 것’ 이렇게 2가지였다.
이 2가지 요구사항을 중심으로 1주차부터 계속 신경을 썼던 객체지향 생활 체조 원칙까지 같이 적용하려고 노력하면서 미션을 구현했다. 역시나 기능 구현이 전부가 아니라는 것을 여실히 깨닫는 기간이었다. 기능 구현보다 요구사항들에 맞춰서 리팩토링을 하는 기간이 2~3배는 더 길었던 것 같다.
분명 ‘이 정도면 진짜 리팩토링 할 거 다했다.’ 라는 생각이 들 정도로 했는데도 불구하고, 다음날만 되면 더 리팩토링 할 것들이 보이기 시작하는 마법을 경험하게 된다. 이 정도면 거의 ‘해치웠나??’ 급의 플래그이지 않나 싶다.
2. 프리코스 2주차를 진행하면서 배웠던 점들에 대해 작성한 글 링크
- 우아한 테크 코스 5기 프리코스 2주차 - 모든 원시값과 문자열을 포장하는 것의 이점을 인지하자
- 우아한 테크 코스 5기 프리코스 2주차 - indent depth를 1로 줄이기 위해 노력하면서 얻은 경험
- 우아한 테크 코스 5기 프리코스 2주차 - 테스트만을 위한 생성자 구현에 대한 견해
3. 마무리하며…
이제 내일부터 다시 3주차의 미션이 시작될 것이다. 3주차의 미션은 또 2주차에 비해 얼마나 더 어려워질까 떨리면서도 설렌다. 물론 합격 여부가 가장 중요하겠지만, 그걸 떠나서 이 프리코스를 진행하는 기간동안 나의 실력이 확실하게 향상되는 느낌을 받기 때문이라 생각한다. 3주차도 최선을 다해보자.