Skip to content

Commit Convention

JinmuGo edited this page Aug 7, 2026 · 2 revisions

Commit Convention

Conventional Commits 규칙을 따릅니다. commitlint + lefthook커밋 시 자동으로 검증하므로, 규칙을 지키지 않으면 커밋이 거부됩니다.

형식

type(scope?): subject
  • type: 커밋의 종류 (필수)
  • scope: 변경 범위 (선택, 도메인명 권장)
  • subject: 변경 내용 요약 (필수)

타입

type 설명 예시
feat 새로운 기능 추가 feat(user): 회원가입 엔드포인트 추가
fix 버그 수정 fix(auth): 토큰 갱신 오류 수정
docs 문서 수정 docs: API 문서 업데이트
style 코드 포맷팅 (기능 변경 없음) style: biome 포맷팅 적용
refactor 리팩토링 (기능 변경 없음) refactor(user): 검증 로직 추출
perf 성능 개선 perf: 쿼리 캐싱 추가
test 테스트 추가/수정 test(user): 서비스 단위 테스트 추가
build 빌드 시스템/의존성 변경 build: nestjs v11 업그레이드
ci CI 설정 변경 ci: 배포 워크플로우 추가
chore 기타 잡무 chore: gitignore 업데이트
revert 이전 커밋 되돌리기 revert: feat(user): 회원가입 엔드포인트 추가

규칙

  • subject는 한글로 작성
  • 영문 식별자로 시작하는 경우 소문자로 시작 (commitlint subject-case 규칙으로 강제)
  • subject 끝에 마침표 금지
  • header(type + scope + subject)는 100자 이내
  • scope는 선택 사항, 도메인명 사용 권장
  • PR 제목과 본문도 한글로 작성 (squash merge 시 PR 제목이 커밋 메시지가 됨)

예시

✅ Good

feat: 사용자 프로필 엔드포인트 추가
feat(user): 회원가입 엔드포인트 추가
fix(auth): 토큰 만료 버그 수정
docs: 폴더 구조 가이드 업데이트
refactor: 공통 검증 파이프 추출

❌ Bad

사용자 프로필 추가          # type 누락
feat: add user profile    # 영어 subject
feat: User 프로필 추가     # 영문 대문자로 시작 (subject-case 위반)
feat: 사용자 프로필 추가.   # 마침표
FEAT: 사용자 프로필 추가    # type 대문자

검증 도구

단계 도구 설정 파일
commit-msg commitlint commitlint.config.js
Git 훅 매니저 lefthook lefthook.yml
규칙 프리셋 @commitlint/config-conventional -

Clone this wiki locally