📌 브랜치 이름

예시) feature / #이슈번호 제목

📌 네이밍 규칙<Google Code Style Guide>

네이밍 규칙 (2)

<aside> 💡

검증 메서드는 긍정문 사용

예시)

<aside> 💡

getter가 아닌 메서드에서 get-을 사용하지 않는다.

예시)

<aside> 💡

DTO 네이밍 구체화

DTO는 데이터 전송용 객체(Data Transfer Object)의 약자로, 그 용도에 따라 request, response, clientRequest, clientResponse와 같이 명확히 구분

예시)

📌 코드 및 패키지 구조

<aside> 💡

패키지 구조는 도메인 기준으로 한다.

예시)

- com.example.project
    - user
        - UserController
        - UserService
        - UserRepository
    - product
        - ProductController
        - ProductService
        - ProductRepository

</aside>

<aside> 💡

클래스와 선언부 필드 사이의 개행

예시)

public class UserService {

    private final UserRepository userRepository;
    private final UserValidator userValidator;

    // 메서드 선언부
    public void createUser(User user) {
        // 메서드 로직
    }
}

</aside>

<aside> 💡

@Valid를 통한 입력값 검증

예시)

@PostMapping("/users")
public ResponseEntity<UserResponse> createUser(@Valid @RequestBody UserRequest userRequest) {
    User user = userService.createUser(userRequest);
    return ResponseEntity.ok(new UserResponse(user));
}

</aside>

<aside> 💡

Enum 정의 시 후행 쉼표 사용

예시)

public enum OrderStatus {
    PENDING,
    SHIPPED,
    DELIVERED,
}

</aside>

<aside> 💡

Lombok 라이브러리를 사용하되, 그 범위를 제한한다.

@Getter@NoArgsConstructor@RequiredArgsConstructor

</aside>

<aside> 💡

어노테이션의 배치 순서

예시)

@Entity
@Table(name = "users")
@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class User {
    // 필드와 메서드 정의
}

</aside>

📌 변수 및 메서드 관리

<aside> 💡

메서드 순서

<aside> 💡

필드 변수 정의 순서

</aside>