TDD, Clean Code 스터디 3주차

3단계

1주차를 하고 나서 코딩 테스트를 준비하느라 2주차 때는 거의 못했다. 코딩 테스트 준비는 너무나 지치고 힘들었지만 도전해보고 나니 많이 깨달을 수 있어서 후회는 없다. 1주차의 1단계, 2단계는 거의 연습에 가까웠고 3단계부터가 개발과 테스트를 같이 해보는 단계라는 생각이 들었다. 처음 리뷰 요청을 할 때 고민이었던 커밋 단위를 이번 단계에서는 커밋 메세지까지 좀 더 상세히 나눠서 적는 연습을 해볼 수 있었다. 참고문서로 제공된 건 Angular JS의 커밋 메세지 컨벤션인데 이전 회사에서 일할 때도 저것과 비슷하게 하려고 하다가 자꾸 내 기존 습관대로 하게 됐었는데 feat, fix 등으로 앞에 구분을 짓는 게 간결하고 훨씬 좋은 것 같다. 이번 기회에 습관을 고쳐보도록 해야겠다.

이번 자동차 경주 미션은 조금 어려웠다. 요구사항과 힌트를 찬찬히 보면서 이걸 어떻게 해야할까라는 생각을 계속 하고 구현하면서도 확신이 들지 않아 리뷰 요청을 할 때도 그 부분에 대해서 자세히 적도록 했다. 우선은 할 수 있는 부분을 구현하고 빨리 피드백을 받고, 피드백에 따라 수정하고, 또 리뷰 요청을 하고 이렇게 빠른 사이클로 이번 미션을 진행하려 했으나 개인적인 사정으로 그러지 못한 게 참 아쉽다.

첫번째 피드백은 크게 4가지였다. 앱을 실행하는 Main 객체 선언, DTO 생성, 자동차가 전진한 횟수를 변수로 담기, 자동차 객체를 ResultView에 전달해서 출력만 하도록 하기. 3번째 피드백은 다시 보니 커밋 후 푸쉬를 하지 않아 PR에는 반영되지 않았었다. 이 중 DTO 객체를 만드는 게 가장 고민이었다. 스프링 강의를 들으면서 DTO 객체를 사용하는 게 익숙해졌다 생각했는데 갑자기 어떻게 해야할지 떠오르지가 않았었다. 그래도 추가로 주신 힌트와 피드백을 보고 모두 반영하고 다시 리뷰요청을 드렸다.

이번 주에 수정해야 할 내용은 배열을 사용하지 말고 자바의 자료구조 컬렉션을 사용하고 RacingCar 객체를 다시 구현해보는 것이다. 파이썬으로만 코딩 테스트 준비하느라 너무 감을 잃어버린 것 같다. 이번 과제를 하면서 좀 더 자바 콜렉션을 잘 사용해보도록 해야겠다.