Search
🙆🏻

코딩 컨벤션

lint 스타일

우테코 스타일

네이밍 컨벤션

kebab-case → api 엔드포인트
snake_case → db 컬럼명, 패키지명
PaskalCase → 클래스명
camelCase → 변수/메소드명, response/request 필드명(JSON)
과거의 산물

Test

given, when, then 구분을 위해 주석 추가 // given, // given, when
문서화 위한 테스트는 주석 안 붙이고, 문서화용이 아닌 테스트는 주석 붙임
메서드명
setUp()
should - when
ex. should_throwException_when_invalidNam

객체 정의

class, record 뒤에 개행
필드에만 최대한 final 붙이기

객체 필드 순서

상수 private static
상수와 변수 사이에 개행
Annotation 있는 경우 변수 사이의 개행

메서드 파라미터 개행 위치

@GetMapping("/offerings") public ResponseEntity<OfferingAllResponse> getAllOffering( // 여기서 개행을 해주세요! @RequestParam(value = "last-id", defaultValue = "0") Long lastId, @RequestParam(value = "page-size", defaultValue = "10") Integer pageSize) { OfferingAllResponse response = offeringService.getAllOffering(lastId, pageSize); return ResponseEntity.ok(response); }
Java
복사

메서드명

dto 사용할 때
내부 dto 없는 경우
외부 dto: member + (설명) + Response
record Member(설명)Response(Long id, String name) {}
Java
복사
내부 dto 있는 경우
외부 dto: member + (설명) + Response
내부 dto: member + (설명) + ResponseItem
record Member(설명)Response(List<Member(설명)ResponseItem> members, int page) {} record Member(설명)ResponseItem(Long id, String name, String nickname) {}
Java
복사
내부 dto?
과거의 산물

변수명

복수: s 붙이기
불가산 명사는 가급적 사용하지 않기
축약어 팀에서 다같이 정한 것만 사용
변수명이 생각나지 않거나 마음에 안들면 PR에 코멘트 남기기
원시값 포장 용도로 사용한 VO 내부의 값은 value 로 통일

메서드 순서

Public, Private
Public 밑에 호출 순서대로 정렬
getter, setter
equals, hashcode, toString 등….

어노테이션 순서

테스트
1.
displayName
2.
test
@BeforeEach 메서드명: setUp
객체의 목적과 가까운 순서로 어노테이션 붙이기
@Table @Entity class Entity { } @DisplayName @Test class Test { }
Java
복사

패키지 구조 (layer vs domain → domain 택)

member
controller
dto
UserSaveRequest
UserSaveResponse
service
dto
인자: UserSaveRequestDto
반환: UserSaveResponseDto
변환 로직은 to(~~)Dto (DTO → domain), 생성자 사용(domain → DTO)
repository
domain
entity
(하위) domain → entity → service → controller (상위)
Entity { Entity(Domain domain), Domain toDomain() }
domain → entity : 저장(id 없이 감) (Entity의 생성자)
entity → domain : 조회/수정/삭제 (Entity의 함수)
상위가 하위를 사용함/앎
domain은 entity를 모르게!

검증

DTO
뷰 변환 로직 검증은 DTO에서.
Null, empty 값 검증 포함
날짜 변환
Domain
모든 도메인 로직 검증
Null, empty 값 검증 포함

트랜잭션

롤백 대상의 범위에 전부 붙이기
ex. 저장이 한 번 뿐일지라도

Reference