Skip to content

BE 코드 컨벤션

Kim Minjoo(김민주/리브) edited this page Jul 11, 2024 · 4 revisions

클래스 가장 상단 한 줄 개행

```java
public class User {

    private final Long id;
    private final String username;

    public User(Long id, String username) {
        this.id = id;
        this.username = username;
    }

    public String getUsername() {
        return username;
    }
}
```

final 은 필드에만 사용한다.

매개변수가 넘어가지 않으면 내려 쓰지 않는다.(구름 컨벤션)

넘어가면 소괄호 다음 엔터

```java
public Reservation createReservation(
        Long memberId, 
        LocalDate date, 
        Long timeId, 
        Long themeId, 
        ReservationStatus status
) {
    ...a
}
```

DTO

- 클래스 명 끝에 DTO를 붙이지 않는다.
- `record`로 만든다

인터페이스

- 메서드 사이에는 공백을 둔다.

```java
public interface MemberRepository extends JpaRepository<Member, Long> {

    Optional<Member> findByEmail(Email email);

    boolean existsByEmail(Email email);
}
```

VO 필드의 변수명은 value로 한다.

애너테이션(선착순 컨벤션)

- 먼저 만든 사람의 컨벤션을 따라간다.

테스트 given - when - then 주석을 사용하지 않는다.

테스트 애너테이션

- `@DisplayName`을 항상 제일 아래에 둔다.

생성자 순서

- 기본 생성자
- 부 생성자
- 주 생성자

정팩메

- 생성자 밑에 위치한다.
- 나머지는 `알잘딱깔센 컨벤션`

메서드 순서

- 도메인 메서드
    - 호출 순서
- getter
- setter
- equals
- hashCode
- toString

else는 사용하지 않는다.

indent는 1

삼항연산자는 사용하지 않는다.

RCUD 메서드 순서로 정의한다.