1. 개발 환경 및 규칙 | 커밋 메세지 컨벤션 - DDD-Community/DDD-12-MOYORAK-API GitHub Wiki

1. 커밋 메세지 컨벤션이란?

커밋 메세지를 일정한 혀식으로 작성하자는 규칙입니다.

컨벤션 없이 프로젝트를 관리하다보면, 시간이 갈 수록 의미 없는 커밋 메세지가 남게 됩니다.
commit convetion
이러한 문제점을 방지하고, 일관되게 프로젝트를 관리하기 위해서는 필요한 개발 약속 중 하나입니다.
커밋 메세지 컨벤션을 지킴으로써, 아래와 같은 장점이 존재합니다.

  • 변경 이력 추적 용이
    • 한 눈에 어떠한 것이 수정 되었고, 추가 되었는지 빠르게 파악이 가능합니다.
  • 코드 리뷰 시 편리함
    • 작은 단위의 커밋을 통해 무엇을 개발하였는지 쉽게 이해가 가능합니다.
  • 소통 기준 수립
    • 커밋 메세지만으로도 작업 내용을 공유하여 커뮤니케이션이 도움됩니다.

2. 커밋 메세지 구조

<type>(<optional scope>): <subject>
<BLANK LINE>
<optional body>
<BLANK LINE>
<optional footer>

2-1. Subject Line (제목)

변경사항에 대한 간단한 설명을 작성합니다.
한눈에 파악되기 좋은 내용을 주로 명시합니다.

<type>

커밋 목적을 한 단어로 표현합니다.

타입 의미
feat 새로운 기능 추가
fix 버그 수정
docs 문서 변경 (코드 수정X)
refactor 리팩토링 (기능 변화X)
test 테스트 코드 추가, 수정
chore 빌드 도구 설정, 간단한 것 수정
build CI/CD 관련
style 코드 포매팅, 오타, 함수명 수정 등

이 외로도 팀 자체적으로 조율하여 추가할 수 있습니다.

<optional scope> (선택)

변경 범위나 대상 모듈 명시할 수 있습니다.

feat(login): 소셜 로그인 버튼 추가

scope는 괄호로 묶어서 type 옆에 위치합니다.

<subject>

변경 사항에 대한 한 줄 요약을 의미합니다.

  • 최대한 한 줄로, 간결하게 작성합니다.
  • 마침표를 찍지 않습니다.
  • 동사로 작성하지 않습니다.
  • 명령문 문장으로 사용하며, 과거형으로 작성하지 않습니다.
feat: 우리 서비스를 이용하기 위한 필수 기능인 로그인 기능을 ~~~~~~~~~를 이용하여 추가했었습니다. ❌ 
feat: 로그인 기능 추가 ✅

2-2. Body Line (본문)

<body> (선택)

변경 이유나 상세 설명을 작성합니다.

  • 무엇을 왜 변경하였는지 작성
  • 여러 줄 작성 가능
  • 코드 흐름이나 배경, 설명 포함 모두 가능합니다.

2-3. Footer Line (꼬리말)

<footer> (선택)

이슈 연동, 브레이킹 체인지 등을 작성합니다.

⚠️ **GitHub.com Fallback** ⚠️