메서드명
- service
- C : createXxx()
- R : getXxx()
- U : updateXxx()
- D : deleteXxx()
폴더 구조
- common
- exception
- config
- security
- entity
- domain
- user
- controller
- servcie
- entity
- repository
테스트 전략
- 단위 테스트(엔티티는 선택)
- 테스트 템플릿
- jacoco, sonarqube 사용
- @DisplayName 필수 사용
- @Nested애노테이션으로 계층형 테스트 구조 작성
- 계층형의 장점은 한 메서드에서 여러 상황이 나올 때 직관적으로 작성 가능하다고 생각한다. 그렇기에 계층형이 필요없다고 느끼면 굳이 계층형을 고집할 필요는 없을듯?
DTO 전략
- DTO 네이밍 전략
- DTO는 기본적으로 Request, Response로 나눈다.
- request: toEntity 메서드 필수, (타임리프를 사용하기에 빈 객체 만드는 of 메서드 허용)
- response: of 메서드 필수,
필드 final, 생성자 builder
- DTO: update같은 특수한 상황과 같이 request와 response가 동일한 필드를 요구할 때 중복해서 만들지 말고 DTO로 한꺼번에 만드는 것을 허용
- DTO 변환 메서드 구현해서 사용
- of(Entity → DTO), toEntity(DTO → Entity)