코드 컨벤션 - 네이밍

<aside>

✏️ Code Naming

특별한 경우를 제외하고, 반드시 네이밍 컨벤션을 따라야 한다.

</aside>

  1. 변수는 camelCase를 기본으로 한다.
    1. userEmail, userCellPhone …
  2. URL, 파일명 등은 kebab-case를 사용한다.
    1. /user-email-page …
  3. 패키지명은 소문자를 사용한다.
    1. frontend, useremail …
  4. ENUM이나 상수는 대문자와 언더바를 사용한다.
    1. NORMAL_STATUS …
  5. 클래스명은 UpperCamelCase를 사용한다.
    1. UserEmail, UserAddress …
  6. 객체를 조회하는 함수는 JPA Repository에서 findXxx 형식의 네이밍을 사용하므로, 개발자가 작성하는 함수는 되도록이면 getXxx 를 사용한다.
    1. getUserId() …
  7. Boolean 값을 리턴하는 함수는 isXxx 형식의 네이밍을 사용한다.
    1. isNormal() …

코드 컨벤션 - 구조

<aside>

📐 Code Structure

정해진 구조와 필요에 따라 코드를 구분해야 한다.

</aside>

  1. 패키지는 목적별로 묶는다.
    1. user(User 관련 패키지), coupon(쿠폰 관련 패키지)
  2. 하나의 메소드와 클래스는 하나의 목적을 두게 만든다.
    1. 하나의 메소드 안에서 한가지 일만 해야한다.
    2. 하나의 클래스 안에서는 같은 목적을 둔 코드들의 집합이어야 한다.
  3. 도메인 서비스가 만들어지는 것을 피한다.
    1. User 라는 도메인이 있을 때, UserService로 만드는 것을 피한다.
    2. 도메인 네이밍을 딴 서비스가 만들어지면 자연스레 수많은 책임을 떠안은 큰 클래스로 발전될 가능성이 높다.
    3. 기능 별로 세분화해서 만들어보자. (UserRegisterService, UserEmailService 등.. )

코드 컨벤션 - 프로그래밍

<aside>

💻 Programming convention

좋은 코드를 만들기 위한 프로그래밍 컨벤션이다.

</aside>