파일 및 변수 네이밍 컨벤션

종류 설명 예시
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. 필드 구분(맨 윗줄만 한줄 띄우고, 필드는 전부 붙여쓰기)
  2. 메서드 간의 구분(1줄 띄울기)
  3. 주석 처리 방법: // 한 줄 주석 사용
  4. 복잡한 메서드에 한해서 주석 사용, 의미없는 한 줄 주석 남발 지양
  5. SOUT 사용 지양(디버깅이나 log 활용)
  6. 연산자 좌우 한칸 띄우기
  7. Optional 사용 시 orElseThrow의 람다식은 아래와 같이 다음 줄에서 작성
... findAllById().orElseThrow(
		() -> new IllegalArgumentException("~~~~~~~")
);
  1. 서비스에서 컨트롤러와 직접 연결되는 메서드가 아니라면 TOOL BOX 사용
  ...
  
    //::::::::::::::::::::::::// TOOL BOX  //:::::::::::::::::::::::://

    private User getUser(Long userId){
        return userRepository.findById(userId).orElseThrow(
                () -> new BusinessException(ErrorCode.USERNAME_NOT_FOUND)
        );
    }