Skip to content

백엔드 코드 컨벤션

Eunsol Kim edited this page Jul 14, 2023 · 15 revisions

Code Style

image
  • 불변해야될 변수에는 final 키워드를 붙힌다. ( 메서드 파라미터 포함 )
    • 설정 방법 ( cmd + option + v )
image

개발 컨벤션

Entity

  • 기본 Getter의 경우 Lombok @Getter 어노테이션을 사용한다.

  • 기본 생성자의 경우 Lombok @NoArgsConstructor(access = AccessLevel.PROTECTED) 를 사용한다.

  • Foreign Key는 사용하지 않는다.

Service

  • 의존성 주입이 되는 필드로만 이루어져 있는 객체에 한해서 @RequiredArgsConstructor 를 사용한다.

DTO

  • 클래스 상단에 @Getter, @AllArgsConstructor, @NoArgsConstructor(access = AccessLevel.PRIVATE) 를 사용한다.

  • 도메인 객체를 리턴하는 getter를 사용할 수 있다.

테스트

  • 테스트의 범위를 지정한다.

  • 인수 테스트

  • 단위 테스트

    • Layer
      • Domain
      • Repository
      • JPA를 사용하는 Repository 기본 제공 CRUD에 대한 테스트는 제외한다.
      • @DataJpaTest를 사용하여 진행한다.
    • Service
      • Mock 테스트를 우선적으로 택한다.
      • SpringBoot 테스트가 필요하다 생각하는 경우 공유하고 사용한다.
    • etc : Interceptor, ArgumentResolver 의 테스트
    • 단순히 의존 객체의 메서드를 호출만 하는 경우는 테스트를 생략한다.
      • 코드 리뷰과정에서 적절한지 판단 가능할 것으로 예상
Clone this wiki locally