본문 바로가기
우아한테크캠프 Pro

우아한테크캠프 Pro 5주차 미션 후기

by 아토로 2021. 12. 26.

우아한테크캠프 Pro 5주차 인수 테스트 기반 TDD 미션을 진행한 내용과 후기를 정리해본다.

이번 미션의 목표

  • ATDD와 TDD 기반으로 프로그래밍하는 경험
  • 인수 테스트 기반의 리팩터링 경험
  • 인증과 인증도구를 활용한 인수 테스트 작성 경험

저장소 및 PR

내 코드 피드백

3주차 미션에서 받았던 리뷰와 상충되는 리뷰를 받았다. 개인마다 스타일에 따라 개발 방식이 달라질 수 있는 것 같다. 예외에 대한 정책은 좀 더 고민이 필요할 것 같다.

 

객체의 생성을 외부에서 알 필요가 없다면 클래스 내부에 숨기는 것이 더 좋을 것 같다.

 

역시 개발에서 네이밍이 제일 중요한 것 같다. 의미 전달이 잘 되는 이름으로 고민해서 정해보자.

 

또 네이밍이 문제였다. 서술적인 이름을 사용하라는 말이 와닿았다. 객체 지향 생활 체조 규칙 5(줄여 쓰지 않는다)의 내용과도 일맥상통하는 것 같은데, 줄이지 않고 어렵게 정하지 말고 누가 봐도 쉽게 이해할 수 있는 서술적인 이름으로 정하도록 노력해야 할 거 같다.

get을 메서드명에 습관적으로 붙이지 않고 좀 더 이해하기 쉬운 단어로 바꿔보자. (get은 getter에서만 쓰자)

 

객체 지향 생활 체조 규칙을 준수하지 못했다. 코드를 꼼꼼히 살펴보자.

 

Entity의 생성자는 protected로 설정하자.

 

그 동안 getter 사용을 자제해왔는데, 이번 미션에서 유난히 getter 사용이 많았던 것 같다. 객체 메시지를 보내는 방식으로 처리하자.

 

패키지를 역할에 따라 적절히 나눠주자.

 

로그인 기능을 넣는데 집중을 하다 보니 로그인만 되는 어떤 즐겨찾기라도 삭제가 가능한 코드가 되어버렸다. 요구사항을 명확히 정리하고 테스트를 구현해 놓는다면 놓치는 부분이 줄어들 것 같다.

 

이름을 정할때는 품사도 신경 써야 될 것 같다.

  • 클래스: 명사, 명사구
  • 메서드: 동사
  • 변수: 명사

느낀 점

  • 미션의 요구 사항이나 조건들이 점점 더 어려워지는 느낌이다. 미션을 수행하는 시간도 점점 길어지고 있다.
  • 기존 리뷰어님들과 다른 관점의 리뷰들을 받아서 다양한 관점에서 생각해 볼 수 있는 시간이었다.
  • ATDD, TDD에 조금 더 익숙해진 느낌이다.
  • 네이밍이나 요구사항의 구현 부분에 코멘트를 많이 받아서 우테캠pro 과정에서 가장 아쉬웠던 미션이었다. 같은 실수를 다시 하지 않도록 노력해야겠다.

댓글