우아한테크캠프 PRO/우아한테크캠프 회고록

[우아한테크캠프 Pro] 1주차 미션 후기 (로또 - TDD)

PI.314 2022. 11. 3. 13:08

우아한테크캠프 Pro 1주차 TDD 미션을 진행한 내용과 후기를 정리해보았습니다.

 

미션 저장소

https://github.com/Gyeom/java-lotto-pro

 

GitHub - Gyeom/java-lotto-pro: NEXTSTEP 엔터프라이즈 Pro 과정을 위한 저장소

NEXTSTEP 엔터프라이즈 Pro 과정을 위한 저장소. Contribute to Gyeom/java-lotto-pro development by creating an account on GitHub.

github.com

 

학습 내용

  • TDD 기반으로 프로그래밍하는 경험
  • 메소드 분리 + 클래스를 분리하는 리팩토링 경험
  • 점진적으로 리팩토링하는 경험

요구 사항

  • 규칙 1: 한 메서드에 오직 한 단계의 들여쓰기만 한다.
  • 규칙 2: else 예약어를 쓰지 않는다.
  • 규칙 3: 모든 원시값과 문자열을 포장한다.
  • 규칙 5: 줄여쓰지 않는다(축약 금지).
  • 규칙 8: 일급 콜렉션을 쓴다.

단계별 PR 리뷰 내용

1단계 미션

https://github.com/next-step/java-lotto-pro/pull/634

 

[김대겸] Step1 PR by Gyeom · Pull Request #634 · next-step/java-lotto-pro

안녕하세요. 1단계 - 학습 테스트 실습 PR 입니다. 잘 부탁드립니다~!

github.com

  • given/when/then 주석을 작성하는 대신 빈 공백 라인을 통해 구분하자.

2단계 미션

https://github.com/next-step/java-lotto-pro/pull/655

 

[김대겸] Step2 PR by Gyeom · Pull Request #655 · next-step/java-lotto-pro

안녕하세요. 2단계 - 문자열 덧셈 계산기 PR 입니다. 잘 부탁드립니다~!

github.com

 

Google Java Style Guide

1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming Language. A Java source file is described as being in Google Style if and only if it adheres to the rules herein. Like ot

google.github.io


3단계 미션

https://github.com/next-step/java-lotto-pro/pull/720

 

[김대겸] Step3 PR by Gyeom · Pull Request #720 · next-step/java-lotto-pro

안녕하세요. 3단계 - 로또(자동) PR 입니다. 먼저 미션을 수행하면서 고민하던 부분이 있어, 2가지 질문 드립니다 ! Lotto 클래스를 공통 클래스로 사용 Lotto 클래스를 먼저 생성한 이후 당첨로또번

github.com

  • 원시 값 포장하여 사용하자.

 

  • Readme 에서 렌더링 기능 사용하자.

 

  • 가장 마지막 줄에는 new line을 추가하도록 설정하자.

 

  • 필요 시, 캐싱을 고려하여 사용해보자.

 

  • DisplayName도 given - when - then 구조로 작성하자.

 

  • 인터페이스와 구현체를 분리하여 느슨한 결합에서 오는 장점을 가져오자.

 


4단계 미션

https://github.com/next-step/java-lotto-pro/pull/781

 

[김대겸] Step4 PR by Gyeom · Pull Request #781 · next-step/java-lotto-pro

안녕하세요. 멘토님 4단계 - 로또(2등) PR 입니다. 이전 미션에 피드백 주신부분도 곰곰히 생각해서 함께 반영해보았습니다 :) 이번에도 잘 부탁드립니다~! 감사합니다.

github.com


5단계 미션

 https://github.com/next-step/java-lotto-pro/pull/826

 

[김대겸] Step5 PR by Gyeom · Pull Request #826 · next-step/java-lotto-pro

안녕하세요. 멘토님 5단계 - 로또(수동) PR 입니다. 저번 4단계 피드백 관련해서 멘토님 의견 들어보고 싶은게 있어 아래 첨부도 같이 드립니다. 마지막 리뷰도 잘 부탁드립니다 :) 감사합니다.

github.com

  • MVC구조에서 View는 Model에 대해 모르는게 맞다.

 

  • InputView를 인터페이스로 만들면 테스트 코드 작성이 자유로워진다. (다른 기능도 마찬가지)

 


미션 회고

프리코스에 이어 이번 미션까지 TDD로 코드를 작성하다보니, 프로덕션 코드를 작성하기전에 요구사항을 먼저 리스트업하고 테스트 코드를 작성하는 것이 습관화 된 것 같다. 그리고 리뷰어님의 피드백을 통해 코드를 효과적으로 작성하는 방법에 대한 좋은 인사이트를 많이 얻어갈 수 있었다. 이제 첫 미션인데 벌써부터 정말 많이 배운 것 같고 앞으로 남은 미션들을 통해 성장할 생각을 하니 벌써 기대가 된다.