코드 컨벤션 (라이브러리, 플러그인)
IDE 설정 플러그인
- intellij-java-google-style
코드 검사 플러그인
- Sonarlint
CI 시, 정적 테스트 도구
- Codacy
코드 컨벤션 (우리가 정한 컨벤션)
나중에 시간나면 근거도 작성하면 좋을 듯 ..ㅎㅎ
- if문 작성 시 {} 괄호 붙이기
- 소기능 단위로 줄넘김
- 클래스 내 첫 줄, 마지막 줄 빈라인 모두 추가
- 클래스 내 멤버변수는 빈 라인 없이 줄 붙이기
- 메소드 매개변수 정렬
- 2개까지는 한줄
- 3개부터는 소괄호 기준 모두 줄넘김
- 메소드의 역할은 최대한 하나만 갖기
- sql 작성 시 예약어 대문자로 작성
- service 테스트 코드는 메서드 별로 작성
- 클래스 내에서 공통인 어노테이션은 메서드별로 작성(@Transaction)
- 되도록 Rombok 사용
- 어노테이션 여러개 붙을 시 1줄에 1개씩 작성
- 매개변수 : 한줄
- 클래스 레벨 : 여러줄
- 삼항 연산자는 한줄로 작성
- DTO-Entity 변환 작업은 Converter 클래스 활용
- new 키워드를 사용한 객체 생성 지양, 대신 builder 패턴 활용
- 유효성 검사는 spring bean validation을 통해 RequestDTO, Entity에서 수행
- DTO 명명 규칙 : 도메인 + 행위 + 요청/응답 → ex) ReviewWriteRequest
- Repository에서 사용되는 DTO의 경우 : 요청/응답 부분은 제외
- 위 경우, Read 행위이면 ‘행위’ 부분도 생략
- 서비스 레이어에서 다른 서비스 레이어의 메서드 사용 금지 (FileService는 예외)