본문 바로가기
회고 모음

코드숨 스프링편 - 4주차 회고

by e-pd 2021. 2. 21.

github.com/CodeSoom/spring-week4-assignment-1/pull/7

 

[Week4] 고양이 장난감가게 만들기 by etff · Pull Request #7 · CodeSoom/spring-week4-assignment-1

한주간 잘 부탁드립니다.

github.com

1. 한 것

고양이 장난감가게 REST API를 TDD로 만들기

 

2. 배운것

lombok에 대해서 학습하기

javadoc 빌드 방법, 오픈소스에서 사용되는 javadoc 읽어보기

 

3. 느낀점

TDD on Spring ~ 봄에는 TDD.

이번에는 시작부터 TDD로 개발하기로 했다. 

TDD 사이클을 통해 TEST -> 구현 -> 리펙토링 연습하다보니 이제 조금씩 되는 것같아 기쁘다.

 

과제를 받았을 때, 해보고 싶은 몇 가지 아이디어가 떠오르는 것들이 있었다. 

몇 가지 아이디어가 있기는 했는데 기간안에 구현하려면 분명 빠듯할 것이라 생각됐다. 

 

추가적인 부분은 나중에 생각하고 가장 빠르게 구현할 수 있는 방법으로 기능을 구현하기로 했다.

제 시간에 요구사항 구현이 무엇보다 1순위라고 생각한다.

 

첫번째로 내가 생각했던 API Spec과 제시된 Spec으로 구현하고, 제시된 테스트 스펙으로 수정했다.

 

이번 과제에서 어려웠던 건 주석이다. 평소에 서비스 계층이나 컨트롤러 자체에서는 주석을 달지 않았다.

서비스는 무엇인지 Controller는 무엇인지 다시금 고민했다. 

 

 

javadoc 같이 새로운 것을 알아보는 것도 재미있었다.

 

종립님께서 javadoc 빌드하는 방법을 올려주셨는데, 내 프로젝트를 빌드해보니 정말 휑했다. 누군가 인수인계를 위해

이 프로젝트를 문서화해서 달라고했을 때문서의 빈 부분이 많으면 그만큼 좌절하게 될 것이다..

 

 

발상의 전환같은 것도 있다.

너무 관습화되서 잊고 있을지도 모른다. 가끔을 원칙을 제대로 적용하는지 돌아봐야겠다. 다 지키기는 어렵지만

 

규칙 1: 한 메서드에 오직 한 단계의 들여쓰기만 한다.
규칙 2: else 예약어를 쓰지 않는다.
규칙 3: 모든 원시값과 문자열을 포장한다.
규칙 4: 한 줄에 점을 하나만 찍는다.
규칙 5: 줄여쓰지 않는다(축약 금지).
규칙 6: 모든 엔티티를 작게 유지한다.
규칙 7: 2개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
규칙 8: 일급 콜렉션을 쓴다.
규칙 9: 게터/세터/프로퍼티를 쓰지 않는다.

 

 

메서드 시그니처에 개발자가 직접 예외를 명시하는 방법은 생각해본 적이 없었다.

다른 개발자가 시그니처를 보고 해당 메서드를  보고 어떤 코드인지 더 빨리 이해할 수 있을 것같다.

내 나름대로 해당 메서드의 생각도 공유했다. 

 

 

자주 체크되서 고쳐야할 부분

 

좀더 명확한 메시지 쓰기
주석에 구현방법이나 DTO용어를 쓰지 않았는지

자주 나오는 체크부분인데, 좀더 이부분을 수정해야겠다.

 

예외는 주는 걸까 예외가 발생하는 걸까

 

처음에 생각만 하고 해보지 못한 것들

  • 주제였던 고양이 장난감 상속관계 구현하기
  • 원시값인 가격을 불변객체로 바꾸기
  • ATDD 로 기능 구현하기