Conventional Commits 가 메시지를 build artifact 로
2인 repo 엔 자유 형식 commit 메시지 OK. 팀 규모에선 모든 commit 이 release tooling, changelog, triage 의 입력. Conventional Commits 는 그 도구가 사람 큐레이터 없이 작동하게 하는 형식: release bot 과 changelog generator 가 기계적으로 파싱 가능한 작은 문법이 제목줄에. 비용 = commit 당 prefix 하나, 이득 = 자동 changelog + version bump.
문법: <type>(<optional scope>): <subject>. Type 은 feat, fix, docs, style, refactor, perf, test, chore, build, ci, revert. Scope 는 선택적 영역 마커 feat(auth): 또는 fix(api):. Type/scope 뒤 ! 가 breaking change 표시: feat(api)!: drop /v1/legacy. 본문 + footer 는 좋은 commit 메시지 룰 따라 — why 설명, issue 참조, breaking change 디테일.
강제하면 형식이 semantic-release 와 conventional-changelog 도구를 풀어줘. main 에 push 마다 다음 버전 자동 계산: fix: 는 patch bump, feat: 는 minor, !/BREAKING CHANGE: 는 major. 같은 도구가 commit 메시지에서 카테고리화된 CHANGELOG.md 생성 — feature, fix, breaking change — 손으로 release note 쓰는 사람 없이. Release 가 merge 의 부수 효과.
강제가 형식을 durable 하게 만드는 자리. commitlint 를 Git hook 으로 두면 잘못된 메시지 local 거부, commitizen 이 올바른 메시지 만드는 interactive prompt 제공, GitHub Action 체크가 잘못된 PR 거부. 팀이 형식을 가이드로 다루고 가볍게 어기면 다 무용. 코드처럼 다뤄: 잘못 = 거부, lint 실패와 같이.