Skip to content

코드 컨벤션

Minjae An edited this page Jun 23, 2024 · 3 revisions

패키지 구조

  • 최상위 도메인 -> 용도별 분리

  • user

    • controller
    • service
    • repository

코드 컨벤션

  • 어노테이션은 길이 순서대로 작성

  • 필드에 어노테이션이 존재할 경우, 한 라인씩 여유를 두기

    • 어노테이션이 존재하지 않을 경우 붙여서 구성
  • 스웨거 명세 어노테이션 속성, 한 라인에 하나씩 배치하기 않기, 코드가 더 번잡해지는 느낌

  • 파라미터 같은 경우 가독성을 고려해 한 라인에 하나씩 배치하는 형태 허용

  • API Response DTO 필드, Optional 아닌 경우 기본 타입으로 제공

  • 메서드 선언 형식

public ResponseEntity<CustomResponse<UserSimpleProfileResponse>> getSimpleProfile(
        @RequestAttribute("userId") long userId) {
 // 로직
}
  • return 문 바로 윗 줄은 빈 줄로!

  • 검증은 일괄적으로 @Valid 이용 수행

  • 예외 정보는 메시지 형태로 프론트에 전달

  • boolean을 반환하는 메서드들은 조건에 부합하지 않을 경우 true를 반환토록 작성

  • 조건 판별 로직 작성시

    • 두 가지 이상 조건이면 별도 메서드 추출

    • 그 메서드 내에서도 if문 분리해 조건 작성

  • public 메서드의 경우 비교적 추상화 되어있는 타 클래스의 메서드, private 메서드를 호출하기 때문에 메서드 중간에 //로 주석 작성

  • private 메서드의 경우 그 자체적으로 어떤 기능에서 일부 역할만 수행, 메서드 위에 주석 기술

DTO 네이밍룰

  • prefix : 도메인(user, post)

  • infix : 용도(Login, Join)

  • postfix : Request, Response