✏️ 학습 목표
- 여러 역할을 수행하는 큰 함수를 단일 역할을 수행하는 작은 함수로 분리한다.
- 테스트 도구를 사용하는 방법을 배우고 프로그램이 제대로 작동하는지 테스트한다.
- 1주 차 공통 피드백을 최대한 반영한다.
이번 미션에서 중점적으로 본 부분은 다음과 같습니다.
변수, 메서드, 클래스 네이밍에 좀 더 신경을 쓰기 위해 노력했습니다. 이 부분은 공통 피드백에도 있었고, 1주차 코드 리뷰를 통해서도 피드백을 받은 부분이기 때문에 관련 자료들을 찾아보고 끝까지 고민하면서 생각했습니다. 그 결과 2주차 코드 리뷰에서는 네이밍에 대한 피드백은 들어오지 않았습니다.
그 다음 학습 목표의 메서드 분리 또한 더 의식적으로 생각하고 연습하기 위해 노력했습니다. 이 부분은 코드 리뷰를 받으면서 아직 더 고민하고 생각할 부분이 많다고 느꼈습니다.
또한 메서드를 쪼갤 때 어디까지 쪼개는 것이 맞는지, 무조건 작게 만드는게 좋은 것인지에 대해 자연스럽게 고민을 하였습니다. 정말 "쪼개기"에만 초점을 둔다면 1줄짜리 메서드로 모두 쪼갤 수 있습니다. 하지만 이 정도의 메서드 분리는 가독성을 해치고 불필요한 분리라고 생각했습니다.
그런데 코드 리뷰를 하면서 의외로 1줄짜리 메서드를 작성한 코드를 여러번 보게되었고, 이런 형태의 메서드 분리의 이점에 대해서도 생각해보았습니다. 나름의 공부를 한 결과 최소 단위로 쪼개진 메서드는 해당 기능이 확장될 가능성이 있거나 수정될 가능성이 매우 높을 때 유용할 수 있다는 것을 알게 되었습니다.
이러한 과정을 통해 적절한 메서드 분리에 대해 이전보다는 나름의 감을 잡을 수 있게 되었습니다. 앞으로 미션을 하면서 이 감을 더 확실하게 만들어 보겠습니다 💪
2주차의 학습 목표로 테스트가 추가되었기 때문에 테스트를 익히는데 시간을 충분히 사용해서 테스트 작성을 내 것으로 만들기 위해 노력했습니다.
이전에 프로젝트를 하면서 테스트를 작성해 본 적은 있지만 거의 정해진 템플릿을 그대로 따라 쓴 것일 뿐이었습니다. 그래서 이번 기회를 통해 직접 테스트를 작성할 수 있는 능력을 갖추는 것을 목표로 잡았습니다.
1주차 공동 피드백에 나와있는 학습 자료들을 중심으로 꼼꼼히 학습하고 테스트를 다양하게 작성해보면서 응용하는 연습을 했습니다.
공부한 내용 중 일부는 벨로그로 정리했습니다.
테스트를 다양하게 사용해보면서 내 코드의 문제점을 쉽게 찾고, 코드가 변경되었을 때 검증하는 과정도 정말 간편하게 할 수 있다는 것을 알게 되었습니다. 테스트 코드에 심혈을 기울인 덕분에 코드 리뷰에서 테스트코드 칭찬을 받기도 했습니다 👍
저번 주에 비해 이번 주는 비교적 시간의 여유가 있었기 때문에 코드 리뷰에 좀 더 많은 시간을 썼습니다. 총 4분과 함께 코드 리뷰를 주고 받았고, 리뷰 결과를 반영하여 리팩터링을 진행했습니다. 메서드를 분리하고, 클래스의 역할에 맞는 로직을 위치하는데 고민을 많이 했습니다.
또한 코드 리뷰를 통해서 일급 컬렉션, 상수화, MVC 패턴과 같은 새로운 개념들을 배울 수 있었습니다. 이런 부분들은 혼자만 했다면 몰랐을텐데 코드 리뷰는 시간이 없더라도 꼭 매주 진행해서 많은 걸 배워가야겠다고 생각했습니다.
회고 잘 읽었습니다.
테스트에 대해 자세히 학습하고 적용해주신 것 같아요!
남은 프리코스도 화이팅해봐요! 🙌