
깃을 이용해 작업을 하다 보면 특정 시점으로 checkout을 할 때 난잡한 커밋을 일일dl 클릭해 가면서 변경 내역을 찾는 일이 종종 있습니다.
보통 한눈에 알아보기 쉽게 작성하는 것이 Commit Message인데 규칙 없이 작성하니 알아보기 어려웠습니다.
이것을 보완하기 위해 찾다가 발견한 것이 "Git Commit Message Convention"입니다.

좋은 예시(Seal Repository)

위의 사진은 Seal의 커밋 메세지 내역인데, 메세지를 보면
feat : action sheet style tweak
fix : remove hardcoded user shared directory
docs(readme) : update sponser info
다음과 같은 형태를 띄고 있습니다. 커밋 메세지만 봐도 대략적으로 어떤 내용을 수정했는지 파악이 가능합니다.
Type : Subject
body(필요 시 작성)
footer(필요 시 작성)
Type(유형)
Type은 변경 사항을 대략 표현하며 다음과 같은 내용들을 포함합니다.
| Type | 내용 |
|---|---|
| feat | 새로운 기능(feature) 추가 |
| fix | 버그 수정 |
| docs | 문서 변경 (README, API 문서 등) |
| style | 코드 포맷팅, 세미콜론 누락 수정 등 (코드 로직 변경 없음) |
| refactor | 운영 환경 코드의 리팩토링 (성능 개선, 가독성 향상 등) |
| test | 테스트 코드 추가 또는 기존 테스트 리팩토링 (운영 코드 변경 없음) |
| chore | 빌드 시스템, 패키지 매니저 설정 변경 등 (운영 코드 변경 없음) |
| ETC | 팀원들과의 논의를 통해 추가 타입 작성 가능... |
Subject(제목 요약)
- 영문 기준 50자 이내로 간결하게 작성
- 첫 글자는 대문자로 시작
- 문장 끝에 마침표(.) 사용 X
- 명령형으로 작성(예시. Change O, Changed X, Changes X)
- 제목과 본문 사이에 반드시 개행(빈 줄 한 줄 삽입)
- 각 줄의 길이는 영문 기준 72자 이내로 제한하는 것을 권장
- 변경 사항을 통해 해결하려는 문제, 변경 사항으로 인해 발생하는 부수적인 효과나 예상 못한 결과를 상세히 설명하는 공간
- 특정 이슈를 해결한 경우 Resolves : #123
- 여러 이슈를 참조할 경우 See also : #456, #678
feat: 사용자 정보 조회 API 엔드포인트 추가 (GET /api/v1/users/{id})
특정 사용자의 상세 정보를 조회할 수 있는 RESTful API 엔드포인트를 구현합니다.
이 기능은 클라이언트 애플리케이션에서 사용자 프로필 화면을 표시하는 데 사용됩니다.
이번 커밋을 통해 사용자는 자신의 ID를 통해 시스템에 등록된 개인 정보를
안전하게 조회할 수 있게 됩니다.
주요 변경 사항:
- `GET /api/v1/users/{id}` 엔드포인트 신규 생성
- `UserController`에 `getUserById` 메소드 추가
- `UserService`에 사용자 ID 기반 조회 로직 구현
- 사용자 정보를 담는 `UserResponseDto` DTO 클래스 정의
- 존재하지 않는 사용자 ID 요청 시 404 Not Found 응답 처리 로직 추가
이 API는 향후 사용자 정보 수정 및 삭제 기능의 기반이 될 것입니다.
또한, 현재는 기본적인 정보만을 반환하며, 추가적인 상세 정보(예: 활동 내역)는
별도의 엔드포인트로 분리하거나 요청 파라미터를 통해 선택적으로 제공하는 방안을
고려 중입니다.
데이터베이스 조회 시 발생할 수 있는 예외 상황에 대한 기본적인 오류 처리 로직을
포함하고 있습니다. 성능 최적화를 위한 캐싱 전략은 추후 적용 예정입니다.
Resolves: #USR-101 (사용자 상세 정보 조회 기능 구현)
See also: #ARC-005 (API Naming Convention), #SEC-012 (API 접근 권한 논의)
최근에 친구와 게임 개발을 시작하면서 Git Commit Message Convention을 전파한 적이 있습니다. 전파하기 전에도 내용을 요약하여 커밋 메세지를 작성하는 친구였지만 한국말의 특성상 서술어가 뒤에 오기 때문에 Type하나 더 들어가는 것 만으로도 탐색이 쉬워졌던 것 같습니다.
Body나 Footer는 필수가 아니니 Title만으로도 쉽게 알아볼 수 있는 Git Commit Message를 작성하여 협업에 도움이 될 수 있었으면 좋겠습니다.