우아한테크캠프 Pro 1주차 TDD 미션을 진행한 내용과 후기를 정리해보았습니다.
미션 저장소
https://github.com/Gyeom/java-lotto-pro
학습 내용
- TDD 기반으로 프로그래밍하는 경험
- 메소드 분리 + 클래스를 분리하는 리팩토링 경험
- 점진적으로 리팩토링하는 경험
요구 사항
- 규칙 1: 한 메서드에 오직 한 단계의 들여쓰기만 한다.
- 규칙 2: else 예약어를 쓰지 않는다.
- 규칙 3: 모든 원시값과 문자열을 포장한다.
- 규칙 5: 줄여쓰지 않는다(축약 금지).
- 규칙 8: 일급 콜렉션을 쓴다.
단계별 PR 리뷰 내용
1단계 미션
https://github.com/next-step/java-lotto-pro/pull/634
- given/when/then 주석을 작성하는 대신 빈 공백 라인을 통해 구분하자.
2단계 미션
https://github.com/next-step/java-lotto-pro/pull/655
- https://google.github.io/styleguide/javaguide.html에 따라 중괄호를 무조건 사용하자.
3단계 미션
https://github.com/next-step/java-lotto-pro/pull/720
- 원시 값 포장하여 사용하자.
- Readme 에서 렌더링 기능 사용하자.
- 가장 마지막 줄에는 new line을 추가하도록 설정하자.
- 필요 시, 캐싱을 고려하여 사용해보자.
- DisplayName도 given - when - then 구조로 작성하자.
- 인터페이스와 구현체를 분리하여 느슨한 결합에서 오는 장점을 가져오자.
4단계 미션
https://github.com/next-step/java-lotto-pro/pull/781
5단계 미션
https://github.com/next-step/java-lotto-pro/pull/826
- MVC구조에서 View는 Model에 대해 모르는게 맞다.
- InputView를 인터페이스로 만들면 테스트 코드 작성이 자유로워진다. (다른 기능도 마찬가지)
미션 회고
프리코스에 이어 이번 미션까지 TDD로 코드를 작성하다보니, 프로덕션 코드를 작성하기전에 요구사항을 먼저 리스트업하고 테스트 코드를 작성하는 것이 습관화 된 것 같다. 그리고 리뷰어님의 피드백을 통해 코드를 효과적으로 작성하는 방법에 대한 좋은 인사이트를 많이 얻어갈 수 있었다. 이제 첫 미션인데 벌써부터 정말 많이 배운 것 같고 앞으로 남은 미션들을 통해 성장할 생각을 하니 벌써 기대가 된다.
'우아한테크캠프 PRO > 우아한테크캠프 회고록' 카테고리의 다른 글
[우아한테크캠프 Pro] 5주차 미션 후기 (Subway - ATDD & 단위테스트) (0) | 2023.01.01 |
---|---|
[우아한테크캠프 Pro] 3주차 미션 후기 (Subway - ATDD) (0) | 2023.01.01 |
[우아한테크캠프 Pro] 4주차 미션 후기 (그럴듯한 서비스 만들기 - AWS) (0) | 2023.01.01 |
[우아한테크캠프 Pro] 2주차 미션 후기 (QnA - JPA) (0) | 2022.12.31 |
우아한테크캠프 Pro 5기 지원하다. (0) | 2022.10.27 |