Skip to content

[BE] Code Convention

Philz edited this page Jul 28, 2022 · 3 revisions

Convention

공통

  • 파라미터 및 변수에 final을 붙인다.
    • Annotation과 함께 사용 시 Annotation 다음에 붙인다.
  • 메서드 순서는 다음과 같다.
public class ClassName {
    // private static final
    // 상수
    // 클래스 변수
    // 인스턴스 변수
    // 생성자
    // 팩토리 메서드
    // 일반 메서드 (1. public 모두 위로, private 모두 밑으로, 2. 호출 순서)
    // getter, setter
    // equals, hashCode, toString
}

Production

  • Lombok Annotation을 붙일 때, 실제 method 작성 순서대로 사용한다.
    • ex) NoArgs -> Getter -> Setter
  • JPA Annotation은 최상단에 위치하며 (Entity -> Table -> ...) 순서로 사용한다.
  • @Transactional(readOnly = true)를 클래스 레벨에 붙이고 변경이 필요한 메서드에서만 재정의한다.

Test

  • 인수테스트에서는 AssertThat보다 RestAssured Library 활용을 권장한다.

[BE] JPA Convention

2022.07.28(목)일 기준으로 작성된 Repository 컨벤션입니다

  • Hibernate구현체를 바로 사용하지 않고 Spring이 추상화한 JPA Interface를 사용합니다.

JpaRepository와 Repository

Repository를 사용합니다

이유는 사용하지 않는 메서드를 호출하는 것을 방지하기 위함 (ex. deleteAll)

테스트 코드

  • save, delete, deleteAll 를 굳이 테스트 하지 않음
  • find__by__Id 등의 where 조건문이 단순한 쿼리에 대해서는 테스트를 권장
  • find__by__IdInAnd__Not 등의 조건문이 복잡하거나 실제 쿼리가 예상하기 안 좋은 쿼리는 테스트를 권장
Clone this wiki locally