-
Notifications
You must be signed in to change notification settings - Fork 2
코딩 스타일 정의
Photogrammer edited this page Aug 30, 2024
·
12 revisions
- 누가 봐도 읽을 수 있게 변수명을 정해야합니다.
- 리뷰 과정에서 해당 변수명에 대한 이해가 되지 않는다면 반드시 지적해야합니다.
- for (i) 보다는 foreach(향상된 for,
ex: for (Integer number : numbers) {}
)를 최대한 활용합니다.-
가독성 높은 코드
를 지향하기 때문입니다. - 특별한 이유가 없다면 가독성을 위해 foreach 를 사용합니다.
-
- ENUM → 상수는 항상 대문자 스네이크를 활용합니다.
- naming 이 모호할 경우
IntelliJ
의 추천 naming (class 이름 기반)을 활용합니다.
- DTO 는 특별한 경우가 아닌 경우, Record 를 사용합니다.
- 요청 DTO
*ReqDto
- 응답 DTO
*RespDto
- 요청 / 응답 DTO
- Swagger 에서 OPEN API SPEC 을 작성할 수 있도록
@NotNull
, 스키마 표시 어노테이션을 명시합니다.
- Swagger 에서 OPEN API SPEC 을 작성할 수 있도록
- 서비스 레이어간 DTO
*Dto
- DTO -> Entity 변환 :
public Entity toEntity(Dto)
정의 - Object -> DTO 변환 :
public static Dto of(Entity)
정의 - Object -> DTO 간 변환이 필요할 경우 위의 방법을 모두 따릅니다.
- Lombok 사용 가이드에 나와있듯, Setter 의 사용에 주의합니다. class 단에서의 Setter 사용을 금지합니다.
- Setter 는 객체 내의 mutable / immutable 한 field 를 명확하게 드러내는 요소로 사용해야하며, 검증 로직이 필요한 경우 추가를 해야합니다.
- field 가 많은 객체의 경우
Builder
를 사용할 수 있습니다. - Immutable 한 객체를 생성할 경우에 주로 사용하도록 해야합니다.
- field 의 변경이 일어나는 경우 정적으로
builder
는 오류를 파악할 수 없습니다. 따라서, 이를 주의해야합니다.
- 테스트는 가능한 "동작에 대한 정의"를 이해할 수 있도록 작성해야합니다.
- 비즈니스 로직을 반영하는 서비스 / 클래스에 대해서 검증 테스트를 작성합니다.
- local variable 에 대해서는 final keyword 를 지양한다. (특별한 이유가 있을 경우에만)
- 불변성을 띄는 field 의 경우 반드시
final
을 지정한다.