2025. 2. 5. 21:59ㆍBackend/Github
개요
우리가 Git를 사용을 하면서 서로가 알기 쉽게 GIt commit 메시지를 작성을 한다.
하지만 이게 사람마다 적는 방식이 다를 수가 있는데
오늘 소개를 할 것이 여러 양식 중 Conventional Commit 이라는 방법이다.
함께 알아보자.
왜 써야 하는가?
Conventional Commits 에서는 왜 사용해야 하는가에 대해서 다음처럼 이야기하고 있다.
- CHANGELOG를 자동으로 생성하기 위해
- (포함된 커밋의 타입에 기반하여) 유의적 버전을 자동으로 변경하기 위해
- 팀 동료, 타인, 그리고 기타 이해당사자에게 변화의 본질을 전달하기 위해
- 빌드와 배포 프로세스를 수행하기 위해
- 더 구조화된 커밋 히스토리를 보여줘서 사람들이 프로젝트에 기여하기 더 쉽도록 하기 위해
위에 내용들이 전부 중요하지만 저는 가장 핵심이 되는 것은
"팀 동료, 타인, 그리고 기타 이해당사자에게 변화의 본질을 전달하기 위해" 라고 생각한다.
결국은 다른 사람들과 같이 협업을 진행을 하면서 얼마나 진행이 되었는지, 어떤 행동이 있었는지 공유가 잘 되어야
다른 사람이 프로젝트에 기여하기도 쉬워지면서, 빠른 개발, 좋은 개발을 할 수 있다고 생각을 하기 때문이다.
그렇다면 어떻게 써야 되는지 알아보자
어떻게 써야 하는가?
<타입>[적용 범위(선택 사항)]: <설명>
[본문(선택 사항)]
[꼬리말(선택 사항)]
공식 문서에는 커밋 메시지는 다음과 같은 구조로 되어야 한다고 나와 있다.
목록 | 설명 ( 예시 ) |
타입 | fix( 버그 픽스 ), feat( 기능 개발 ), refactor( 리펙토링 ), docs( 문서 업데이트 ) 등 |
적용 범위 | 특정 기능, 특정 브랜치 등 |
설명 | 앞에 적은 <타입>[적용 범위]에 대해서 설명을 적는다. |
본문 | 설명에 따른 구체적인 내용을 적는다. |
꼬리말 | BREAKING CHANGE( 이전 버젼과 호환이 되지 않는 변경 ), Reviewed-by( 리뷰어 ), Refs( 참고 ) |
구조 안에 이런 식으로 사용을 할 수 있는데 이제 예시를 확인해보자.
예시. 1
feat(auth): 로그인을 JWT 기능으로 개발을 함
BREAKING CHANGE: 기존 세션 로그인 형식을 사용하던 사람은 JWT형식으로 바꿔야함
해당 예시에는 기능을 개발을 했기에 feature의 줄인 feat를 사용을 하였고
개발한 기능은 auth 기능 부분을 개발을 한 것이기 때문에 적용 범위는 auth 부분이다.
설명에서는 로그인을 개발을 하였다고 나와있다.
BREAKING CHANGE의 꼬리말에서 기존의 로그인 형식이 세션 방식인데, 새롭게 개발을 하면서
기존의 세션 기능을 사용하던 유저들은 JWT 형식으로 바꿔야 함을 알 수 있다.
예시. 2
feat(api): 주문 생성 API의 요청 필드 변경
기존 `customerId`를 `userId`로 변경함.
BREAKING CHANGE: 기존 API 사용자는 새로운 필드명을 반영해야 함.
위와 다른 점이 있다면 기능 개발한 내용 중 바뀐 내용을 상세하게 본문에서 작성을 해주었다는 것을 확인할 수 있다.
예시. 3
fix(cart): 장바구니 중복 추가 버그 수정
### 변경 사항
- 장바구니에 동일한 상품이 여러 번 추가되는 문제 해결
- `cartService.addItem()` 로직 수정하여 중복 아이템 방지
### 테스트
- 동일한 상품 추가 시 수량 증가 확인
- 기존 장바구니 기능 정상 동작 확인
Refs: Closes #101
Pull Request를 할 경우에도 사용을 할 수 있다.
전체적인 커밋을 요약을 해서 적어두고 PR을 하여도 된다.
공식 문서
Conventional Commits
커밋 메시지에 사용자와 기계 모두가 이해할 수 있는 의미를 부여하기 위한 스펙
www.conventionalcommits.org
공식 Github
GitHub - conventional-commits/conventionalcommits.org: The conventional commits specification
The conventional commits specification. Contribute to conventional-commits/conventionalcommits.org development by creating an account on GitHub.
github.com
오늘 마무리
뭔가 배우면 배울수록 끝이 없는 곳이 이 개발자인 것 같다.
지금 내가 느낀다.. 뭔가 배워도 계속 부족하다는 느낌이 든다.
부족하지 않는 1인분이라고 생각하고 만족을 할 수 있는 때가 언젠가 되지 않을까
지금 내 당장의 목표이다. 하루빨리 이루어지길 바란다.
매일매일 파이팅
'Backend > Github' 카테고리의 다른 글
[Github] 기초 명령어 및 사용 방법 3편 (1) | 2025.01.02 |
---|---|
[Github] 기초 명령어 및 사용 방법 2편 (1) | 2024.12.31 |
[Github] 기초 명령어 및 사용 방법 1편 (1) | 2024.12.24 |