파일 및 변수 네이밍 컨벤션
| 종류 |
설명 |
예시 |
| package |
모두 소문자, 한 단어 |
example |
| class |
파스칼 케이스 |
ExampleTest |
| interface |
파스칼 케이스 |
ExampleTest |
| method |
카멜 케이스 |
exampleTest |
| variable |
카멜 케이스 |
exampleTest |
| constant |
모두 대문자, 문자 사이는 언더바(_) 사용 |
EXAMPLE_TEST |
| boolean |
카멜케이스 |
exampleTest |
패키지 네이밍 컨벤션
| 종류 |
설명 |
| controller |
컨트롤러 계층 |
| service |
서비스 계층 |
| repository |
레포지토리 계층 |
| dto |
DTO 객체 |
| entity |
Entity |
| security |
security 필터 및 security에 사용되는 객체 |
| exception |
서버 전역 및 filter Exception Handler |
| config |
서버 config |
| jwt |
jwt 생성 및 검증 |
코딩 컨벤션
- 필드 구분(맨 윗줄만 한줄 띄우고, 필드는 전부 붙여쓰기)
- 메서드 간의 구분(1줄 띄울기)
- 주석 처리 방법: // 한 줄 주석 사용
- 복잡한 메서드에 한해서 주석 사용, 의미없는 한 줄 주석 남발 지양
- SOUT 사용 지양(디버깅이나 log 활용)
- 연산자 좌우 한칸 띄우기
- Optional 사용 시 orElseThrow의 람다식은 아래와 같이 다음 줄에서 작성
... findAllById().orElseThrow(
() -> new IllegalArgumentException("~~~~~~~")
);
- 서비스에서 컨트롤러와 직접 연결되는 메서드가 아니라면 TOOL BOX 사용
...
//::::::::::::::::::::::::// TOOL BOX //:::::::::::::::::::::::://
private User getUser(Long userId){
return userRepository.findById(userId).orElseThrow(
() -> new BusinessException(ErrorCode.USERNAME_NOT_FOUND)
);
}