HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🧚
[1기]최종 프로젝트 데브코스
/
🎫
[팀5] 코코단 (Coding & Coworking) - Triplan
/
⚠️
코딩 컨벤션
⚠️

코딩 컨벤션

제안사항

  • 모든 field는 위아래 한 줄 씩 공백을 둔다.
  • DTO
    • 네이밍 컨벤션
      • [도메인] + [행위] + [Request/Response]
    • Request dto
      • NoArgsConstructor 와 AllArgsConstructor를 쓴다.
      • Entity를 반환하는 toEntity 메소드 생성 (dto → entity 1:1 매핑이 되면 ㄱㄱ)
    • response dto
      • 응답용 공용 Dto 작성
        • dto의 필드 {code: xx, result: xx}
          • internalHttpStatusCode
          • (message, requestUri, serverTime ... )
          • data(= result)
      • 변환용 팩토리 메서드를 만든다.
  • Builder의 사용(response dto와 entity만 해당)
    • 3개 이상의 인자가 필요한 생성자가 있는 모든 클래스 대상
  • 반환형이 List인 메서드와 필드의의 이름은 복수형으로 끝낸다.
    • Map과 Set은 필드 뒤에 Map, Set을 사용한다.
  • 한 줄의 길이는 특정 글자 수를 넘어가지 않는다.
    • 120자 이상 → 무조건 줄바꿈
    • 120자 미만 → 가시성 좋다고 생각되는 방식으로
    • 줄바꿈 실행시 → 무조건 1라인 = 하나의 인자
  • Entity, DTO의 field type
    • Long id 같은 특별한 경우가 아니면 무조건 primitive를 사용한다.
      • 기본적으로 primitive 를 써야한다.
      • 검증을 잘 해야 하는 문제. Wrapper를 쓰면 NPE가 뜰 수 있다. (너무 critical)
      • primitive의 디폴트가 0 이라면, 로직으로 검증을 해야 한다.
      • 기본은 primitive!! 써야할 이유가 있을 때만 Wrapper를 쓰자
  • 모든 필드에는 final을 붙인다.
    • 중간에 update가 필요한 경우만 final을 안 붙인다
    • dto는 final 제외
  • final 필드만 있다면 생성자 대신에 @RequiredArgsConstructor 를 사용한다
 
  • TODO 규칙 : 2021.12.27 Teru - [TP-234] 내용...
  • 예외가 발생했을 때, 로그와 예외 메시지 관리
    • throw 안에서는 로그로 남길 메시지 작성
    • globalHandler의 return문에서는 사용자에게 응답할 메시지 작성(MessageUtils에서 꺼내오기)
  • PR 생성시
    • Description : 작업 내용 요약
      • 티켓 목표
      • 변경 장소 및 내용
  • field가 먼저, method가 나중에 나오도록
    • 개방도 높은 순서가 위쪽으로 오도록
    • public static
    • private static
    • public
    • protected
    • private
    • public method
    • protected method
    • private method
      • private method가 한 메서드에서만 사용된다면 그 메소드 직후에 위치한다.
      • 2개 이상의 메서드에서 사용된다면 제일 아래 공통 메서드 영역에 위치한다.
  • Transactional은 클래스에 적지 않고, 메서드에만 적는다.