6/7 스프링가이드 정리
1.디렉토리 구조
1-1 Layer
- 프로젝트 이해가 낮아도 전체적인 구조를 빠르게 파악 가능
- 작성 하고자하는 계층이 명확할 경우 빠르게 개발 가능
- 각 레이어 별로 수십개의 클래스들이 존재하여 코드 파악이 어 려우며 코드의 응집력이 떨어짐
1-2 Domain
- 관련된 코드들이 응집해 있음
- 디렉토리 구조를 통해 도메인을 이해할 수 있다
- 도메인 지식 없어 이해하기 어려움
- 각 계층을 구분하기 위한 논의가 필요
domain : 도메인을 담당 (API,Service 로직)
- api : 컨트롤러 클래스들이 존재
- domain : 도메인 엔티티에 대한 클래스로 구성
특정 도메인에 만 속하는 Embeddable,Enum 같은 클래스 구성
- dto : 주로 Request,Response 객체들로 구성됨
- exception : 해당 도메인이 발생시키는 Exception으로 구성
global : 프로젝트 전체 담당 (error,config 등등)
- common : 공통으로 사용되는 Value 객체들로 구성
페이징 처리를 위한 Request, 공통된 응답을 주는 Response 객체
- config : 스프링 각종 설정 구성
- error : 예외 핸들링 담당 클래스로 구성
- util : 유틸성 클래스
Infra : 외부 인프라 스트럭처 담당
2.LomBok 사용법
- @Data 는 @ToString , @EqualsAndHashCode,@Getter,@Setter, @RequiredArgsConstructor을 한번에 처리
- 무조건 적인 @Data 사용은 지양 하는것이 좋다