1. 개발 환경 및 규칙 | 코드 컨벤션 - DDD-Community/DDD-12-MOYORAK-API GitHub Wiki

1. 코드 컨벤션은 왜 지켜야할까?

함께 관리하는 프로젝트의 코드 품질을 높히기 위한 최소한의 약속입니다.
잘 짜인 코드 한 줄 보다, 모두가 이해할 수 있는 코드까 훨씬 더 좋은 코드로 프로젝트를 관리해 봅시다.

  • 가독성 향상
    • 어떤 사람이 읽더라도 익숙한 구조로 코드 읽기가 가능해집니다.
    • 들여쓰기, 변수명 작성 방식이 통일되면 코드 흐름 파악이 쉬워집니다.
    • 결국, 잘 작성된 코드는 주석 혹은 설명이 필요 없다는 말도 컨벤션이 있어야 가능한 말입니다.
  • 쉬운 협업
    • 서로간의 코드 스타일이 일관되면, 이해도가 높아집니다.
    • 컨벤션이 없다면, PR 리뷰 내용 대부분이 스타일에 대한 이야기일 확률이 커집니다.
  • 불필요한 논쟁 감소
    • 모두가 같은 룰을 따르게 되면, 리뷰와 머지 등 전반적인 프로덕트 개발 속도가 빨라집니다.
  • 지속 가능한 코드
    • 시간이 지나더라도, 혹은 다른 추가 인원이 생기더라도 언제나 이해하기 쉬운 코드가 유지됩니다.
    • 다른 사람이 작성한 코드여도 불필요한 해석 없이 빠르기 이해하고 유지보수가 가능해집니다.

1-1. 네이밍 규칙

  • 모든 명명(클래스, 변수, 메서드, Enum 등)은 영어로 작성합니다.
  • 한국어 식별자 사용은 금지합니다.
  • 도메인에 맞는 명확한 의미의 영문 표현을 사용합니다.
// ❌ 잘못된 예시
public enum ReservationStatus { 
   예약됨, 
   취소됨 
}
// ✅ 올바른 예시
public enum ReservationStatus { 
   RESERVED, 
   CANCELED 
}

2. Google Java Style Guide란?

Google Java Style Guide는 구글에서 작성한 자바 코드 스타일 가이드라인입니다.
자바 코드를 작성할 때 일관성 있고 읽기 쉬운 코드를 유지하기 위해 구글 내부에서 정립한 규칙들을 모아둔 문서입니다.

3. 소스 파일

spotless를 사용하여 코드 스타일과 포맷팅을 자동화 예정이지만,
파일명이나 파일 구조 자체에 대한 검사는 수행하지 않으므로, 이에 대한 규칙은 별도로 관리합니다.

  • 소스 파일명은 영어로 작성하며, 대문자로 시작하는 카멜 케이스(CamelCase)를 따릅니다.
  • 반드시 .java 확장자를 사용해야 합니다.
    예: AuthService.java, UserProfileHandler.java

4. 추가 사항

  • 가이드 라인 설정
    가이드라인
  • .editorconfig 적용
  • google java style guide 기반의 spotless + git hook 적용
  • .gitattribute 적용
⚠️ **GitHub.com Fallback** ⚠️