코드베이스가 커지면서 팀 프로젝트에서 커밋 메시지의 중요성은 점점 커집니다. 커밋 메시지가 잘 작성되어 있으면 코드 히스토리를 추적하기 쉬워지고, 변경 사항을 쉽게 이해할 수 있습니다. 이번 글에서는 AngularJS Git Commit Message Convention을 사용하여 효율적이고 일관된 커밋 메시지를 작성하는 방법을 알아보겠습니다.
1. 커밋 메시지 구조
AngularJS의 커밋 메시지 컨벤션은 아래와 같은 구조로 작성됩니다:
<type>(<scope>): <subject>
- type: 커밋의 목적을 나타냅니다.
- scope: 선택 항목으로, 변경 사항의 영향을 받는 모듈이나 파일을 지정합니다.
- subject: 변경 사항에 대한 간략한 설명으로, 소문자로 시작하고 마침표를 생략합니다.
feat(auth): 로그인 기능 추가
2. Type (커밋의 유형)
커밋 메시지의 type은 변경 사항의 종류를 명확히 구분합니다. AngularJS 컨벤션에서 자주 사용하는 타입은 다음과 같습니다:
- feat: 새로운 기능 추가
feat(payment): 결제 모듈 추가
- fix: 버그 수정
fix(profile): 프로필 이미지 로드 오류 수정
- docs: 문서 변경 (코드 수정 없음)
docs(README): 사용법 섹션 업데이트
- style: 코드의 스타일 변경 (로직에 영향 없는 공백, 세미콜론 등 수정)
style(navbar): 네비게이션 공백 수정
refactor: 리팩토링 (기능 변경 없이 코드 구조 개선)
refactor(cart): 장바구니 계산 로직 개선
test: 테스트 코드 추가 및 수정
test(product): 상품 모듈 테스트 추가
chore: 기타 변경 사항 (빌드 프로세스 수정, 패키지 매니저 설정 등)
chore(deps): 패키지 업데이트
3. Scope (영향 범위)
scope는 변경 사항의 영향을 받는 구체적인 모듈이나 파일을 명시합니다. 선택 사항이지만, scope를 명시하면 커밋의 변경 범위를 쉽게 파악할 수 있어 코드 추적이 용이합니다. 예를 들어:
- feat(auth): 로그인 기능 추가
- fix(payment): 결제 오류 수정
4. Subject (간결한 설명)
subject는 변경 사항에 대한 간략한 설명을 나타내며, 다음 규칙을 지켜야 합니다.
- 소문자로 시작하고 마침표를 생략합니다.
- 50자 이내로 작성하여 간결하게 요약합니다.
- 명령형 어조로 작성하여 "무엇을" 했는지 명확히 전달합니다.
feat(profile): 프로필 이미지 업데이트 기능 추가
5.예제 모음
- 새로운 기능 추가: feat(order): 주문 내역 필터 기능 추가
- 버그 수정: fix(auth): 로그인 시 비밀번호 검증 오류 수정
- 문서 변경: docs(CONTRIBUTING): 기여 가이드 추가
- 스타일 수정: style(button): 버튼 색상 조정
- 리팩토링: refactor(cart): 중복 로직 제거
- 테스트 추가: test(payment): 결제 모듈 테스트 추가
- 기타 변경: chore(deps): lodash 버전 업데이트
6. 커밋 메시지 컨벤션의 장점
AngularJS 커밋 메시지 컨벤션을 사용하면 다음과 같은 장점이 있습니다:
- 일관성: 모든 커밋 메시지가 동일한 규칙을 따르기 때문에 코드 히스토리를 쉽게 이해할 수 있습니다.
- 변경 사항 추적: 커밋 메시지만 보고도 코드의 변경 목적을 빠르게 파악할 수 있습니다.
- 자동화: feat, fix 같은 특정 타입을 기준으로 자동 릴리즈 노트 생성이나 버전 관리 자동화가 가능합니다.
이건 만약 인텔리제이를 사용한다면 참고하셔도 좋을 것같아요.
https://plugins.jetbrains.com/plugin/13389-conventional-commit
마치며
AngularJS 커밋 메시지 컨벤션은 코드베이스의 유지보수와 관리에 큰 도움을 줄 수 있습니다. 일관된 커밋 메시지를 작성하는 습관을 길러 프로젝트 협업과 코드 품질을 높이는 데 활용해 보세요.
'IT' 카테고리의 다른 글
Java 오버로딩(Overloading)과 오버라이딩(Overriding)??? (3) | 2024.11.15 |
---|---|
자바에서 변수,메소드 이름 쉽게 짓기! (5) | 2024.11.15 |
배포 중에도 서비스 중단 없이! - 무중단 배포 전략 알아보기 (1) | 2024.11.13 |
상태 없는 객체와 static 메서드 활용법 (0) | 2024.11.13 |
Light house 그리고 웹사이트 품질 테스트? (0) | 2024.11.12 |