사견/노트
MoGreene Code Convention
Mo'Greene
2024. 1. 2. 11:28
서비스 코드에 Response 등 응답객체 반환 금지
- 테스트 코드 작성시 진행하기 어려운 부분이 있음
- 반환타입에 따라 Controller에서 응답객체로 감싸기
테스트 코드 작성 시 Controller는 Mock테스트, 그 외 Junit 단위테스트로
패키지 구조는 'api'와 'global'로 나눈다.
api의 패키지는 도메인별로 나눈다.(기능별 x)
exception의 경우 global 패키지 내의 도메인으로 나눈다.(팀 컨벤션에 따라 변경)
디자인패턴을 적용시켜야 할 경우 Service 패키지를 작성하여 그안에 보관한다.
api 패키지 내에 특정 도메인만 사용하게 되는 util 패키지를 만들지 않는다.(생길 경우 디자인패턴으로 보관)
util의 경우 특정 도메인의 컴포넌트를 DI 하지 않는다. (ex: private final MemberRepository(X))
dto패키지 안에는 request, response을 패키지로 나누고 어플리케이션 내부에서 사용할 dto의 경우 dto패키지 안에 넣도록 하자
ex)dto ㄴ request ㄴ XXXRequest ㄴ response ㄴ XXXResponse ㄴ XXXDTO
메서드 명으로 get, set 등의 prefix를 사용하지 않는다.
노출되어선 안될 내용이 없다면 Entity로 반환해도 문제없다.(ex: 약관 등 간략한 도메인)
JPA
- join 및 단방향관계, 양방향관계는 매우 신중하게 결정(특히 삭제되는 데이터를 주의하면서 진행) 애지간하면 join을 걸지 않고 queryDsl을 사용해서 사용한다.
- @OneToOne, @ManyToMany는 사용금지
- 양방향관계 금지
- 단방향일 경우
연관된 두 객체의 라이프사이클이 동일할 경우에만 @ManyToOne