///
Search
Duplicate

Code Convention

Entity
@Setter 사용 금지
생성자대신 @Builder쓰기
table명은 TB_도메인명
Dto
1api 당 1 dto(메서드 별로 구분)
request, response 로 패키지 나누기
클래스명은 Req,Res로 구분
record 사용해보기
Service
Servcie를 주입받아서 사용하지않고 Repository 주입받아서 사용
ServiceImpl? - 사용이유가 아직 와닿지가 않아서 보류
class에 @Transactional을 걸고 get을 할때는 @Transactional(readOnly = true)사용
global
GoogleStyle적용
.yml파일 쓰기 + 환경변수적용하기
네이밍 명명법
주요 공통함수 (CRUD관련)함수명은 기능 + 도메인 + (List)
기능 (Create Update Delete Get) + 도메인(Product,User, etc…) + (여러개조회면 List) + (뒤에 내용이 더 붙는건 자유)
변수나 메서드는 CamelCase로
클래스명은 PascalCase로
repository 에서 findById()하는 메서드는 find + Domain이름 형태로 명명해준다.
예) findUser(userId) , findProduct(productId)
exception
에러코드는 각 도메인에서 관리 (global에서 errorcode는 인터페이스로 선언)
에러코드 클래스 이름은 도메인 + ErrorCode
RuntimeException 상속받는 GlobalException선언 후 각 도메인에서 GlobalException 상속받는 예외 따로 만들어주기(에러코드에 맞는 메서드명으로 설정)
디렉토리구조
domain
admin (/api/v1/admin)
controller
service
user
controller
service
repository
entity
dto
exception
product
등등..
global