팀 프로젝트에서 자주 사용되는 커밋 컨벤션
웹 개발 공부
github
Wed Jul 24 2024
이 글은 웹 개발 공부의 게시글이예요
- 1 . NextJS 환경에서 리덕스 툴킷 store 올바르게 생성하기
- 2 . Redux의 개념을 훑어보고 라이브러리 없이 간단히 구현해보자
- 3 . React Query 를 찍어먹어보자
- 4 . Zustand 공식문서를 따라가며 Zustand 사용법을 익혀보자
- 5 . 프론트엔드에서 테스트 코드를 사용해야 하는 이유와 사용 예시 - 이론편
- 6 . 프론트엔드에서 테스트 코드를 사용해야 하는 이유와 사용 예시 - 실전편
- 7 . 팀 프로젝트에서 Github를 branch를 이용해 협업을 해보자
- 8 . 팀 프로젝트에서 자주 사용되는 커밋 컨벤션
- 9 . IA 란 무엇이고 어떻게 작성할까 ?
- 10 . 프론트엔드에서 테스트에 대해서 깊게 생각해보기
- 11 . 브라우저(웹)에서 모바일 카메라에 접근하는 방법
- 12 . NextJS의 초기 개념 바로 잡기
- 13 . 리액트에서 모달같은 오버레이들을 하나의 훅으로 관리해보자
- 14 . 이미지 압축을 낙관적 업데이트와 함께 사용해보자
- 15 . 지도에서 타일링을 통해 O(N)만에 데이터를 클러스터링 해보자
- 16 . 리액트의 상태를 동기적인 것처럼 선언적인 방식으로 업데이트 하기
Commit Convntion 관련 개발 문서
해당 프로젝트에선 프로젝트의 흐름을 명확하게 하기 위해 특정 커밋 컨벤션을 이용하려 한다.
해당 문서에서는 사용 할 커밋 컨벤션인 🪢 Udacity Convntion 을 활용하여 사용 할 커밋 컨벤션을 소개하고 몇 가지 사용 방법들을 추가적으로 설명한다.
필요 이유
협업자들이 모두 동일한 컨벤션을 사용함으로서 커밋 메시지의 일관성을 보장하고 쉽게 기록하고 검색 할 수 있도록 한다.
표준화 된 커밋 메시지를 통해 문제 추적 , 버전 관리와 같은 자동화 된 도구 및 프로세스를 용이하게 하며 각 변경의 범위와 목적을 쉽게 파악하여 의사소통을 향상 시킨다.
커밋 메시지 구조
기본적인 커밋 메시지의 구조는 다음과 같이 작성한다.
type (Commit type)
유형 | 설명 | 예시 |
---|---|---|
feat | 새로운 기능 추가 | feat: 사용자 인증 모듈 추가 |
fix | 버그 수정 | fix: 할인 계산 오류 해결 |
docs | 문서 변경 | docs: 새로운 엔드포인트로 API 문서 업데이트 |
style | 코드 스타일 변경 (포맷팅, 세미콜론 누락 등) | style: Prettier로 코드 포맷팅 |
refactor | 버그 수정 또는 기능 추가가 아닌 코드 변경 | refactor: 로그인 로직 간소화 |
perf | 성능 향상을 위한 코드 변경 | perf: 응답 시간 개선 |
test | 누락된 테스트 추가 또는 기존 테스트 수정 | test: 사용자 서비스에 대한 단위 테스트 추가 |
chore | 빌드 프로세스 또는 보조 도구에 대한 변경 | chore: 종속성 업데이트 |
revert | 이전 커밋 되돌리기 | revert: "feat: 인증 모듈 추가" 되돌리기 |
type
의 경우엔 변경하고자 하는 진행사항의 유형에 맞춰 작성한다.
subject
subject
의 경우엔 해당 커밋의 제목에 해당한다.
프로젝트에선 커밋의 제목을 한글로 작성하도록 하며 제목의 글자 수는 50글자를 넘지 않도록 한다.
제목은 문장형이 아닌 명사형으로 작성하도록 하며 온점은 표기하지 않는다.
isbreakChange , body
두 영역은 조건적으로 사용하며 body
영역은 subject
만으로 표현 할 수 없는 부분을 설명 할 때 사용한다.
isbreakChange
는 변화가 많아 subject
만으로 표현 할 수 없을 때 사용하며 type
옆에 !
를 붙혀 사용하며 isbreakChange
가 사용된 경우엔 필수적으로 body
영역을 사용한다.
footer
footer
영역은 커밋 내용의 일부는 아니지만 issue , pull request
의 메타 데이터를 참조하는데 사용 된다. 다음과 같이 작성된다.
footer
에서 사용 할 단어들은 커밋 상단의 type
과 대부분 동일하게 사용하며 추가로 다음과 같은 단어들을 더 사용 가능하다.
ref
: 레퍼런스 삼을 관련된issue
나pull request
의 번호를 의미한다. 이는 해당 기능과 관련된 이슈를 표현하는데 사용된다.resolve
:fix
와 동일한 기능을 가지고 있으며 해당issue
나pull request
를close
시킨다.