컨벤션(Convention)이란?
(...in 위키백과)
컨벤션(convention)이란 용어는 cum이라는 라틴어(together를 의미)에서 con과, 라틴어 venire(to come의 의미)에서 vene이라는 말에서 유래한 것으로 '함께 와서 모이고 참석하다'의 의미를 가지고 있다. 즉 컨벤션이란 다수의 사람들이 특정한 활동을 하거나 협의하기 위해 한 장소에 모이는 회의(meeting)와 같은 의미라 할 수 있으며 전시회를 포함하는 좀 더 포괄적인 의미로 쓰이기도 한다. 콘퍼런스(Conference)라고도 한다.
그렇다면, 개발 컨벤션이란 뭘까?
개발 컨벤션은 코드 작성 시 지켜야 할 규칙과 스타일을 정의한 것!!
개발 컨벤션, 즉 개발 규칙은 개발자들끼리 원활한 협업을 하기 위한 중요한 규칙이다.
개발자들마다 코드 스타일이 제각각인데, 서로의 코드를 클린하게 이해하기 위해서는 필수적인 요소이다.
혹은, 본인이 작성한 코드더라도 오랜만에 그 코드를 까봤을 때 낯설게 느껴지는 경우도 많다.
개발 컨벤션은, 개발에 `이름표(식별표)`를 붙이는 것이나 다름없다!
그 중, 커밋 메시지에 대한 컨벤션을 포스팅해보려 한다.
커밋 메시지 컨벤션의 구조
<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
- type: 이 커밋이 어떤 목적의 변경인지
- scope (선택): 어떤 파일/모듈/기능 범위인지
- subject: 한 줄 요약
- body (선택): 상세 설명 (무엇을 왜 바꿨는지)
- footer (선택): 관련된 이슈나 breaking change 정보
1. 커밋 Title
커밋 타이틀은 `type : Subject` 의 형식을 따른다.
Type은 영어로 쓰되, 첫문자는 대문자로 한다.
Subject는 최대 50문자를 넘기지 않으며, 특수문자를 사용하지 않는다. 동사는 원형으로만 작성한다.
// 대표적인 Type 의 종류
feat 새로운 기능 추가
fix 버그 수정
docs 문서 수정 (코드 변경 X)
style 포맷, 세미콜론, 들여쓰기 등 순수 스타일 변경
refactor 리팩토링 (기능 변화 없음)
test 테스트 코드 추가/수정
chore 빌드, 설정, 라이브러리 등 변경
perf 성능 개선
build 빌드 시스템 또는 외부 종속성 변경
ci CI 관련 설정 변경 (GitHub Actions, Jenkins 등)
2. 커밋 Body
본문의 경우 한줄당 72자 내로, 양에 구애받기보다는 최대한 상세히 적도록 해야한다.
How 보다는 What 과 Why 에 초점을 맞춰서 작성해야 한다.
(즉, 코드 자체를 설명하기보단, 어떤 요구사항에 의해 개발한건지, 어떤 버그에 의해 수정된건지 작성한다.)
3. 커밋 Footer
꼬리말은 선택사항이다.
이슈 트래커 ID를 작성할 수 있다. 이슈트래커 ID는 `#이슈 번호` 형식으로 작성한다.
`유형:#이슈 번호` 의 형식으로 작성하는데, 유형은 다음과 같다.
이슈 트래커 유형은 다음 중 하나를 사용한다.
- Fixes: 이슈 수정중 (아직 해결되지 않은 경우)
- Resolves: 이슈를 해결했을 때 사용
- Ref: 참고할 이슈가 있을 때 사용
- Related to: 해당 커밋에 관련된 이슈번호(아직 해결되지 않은 경우)
- (ex) Fixes: #45 Related to: #34, #23
사용 예시
// 가장 기본적인 커밋
feat: 로그인 버튼 클릭 시 로그인 API 연동
// 기능 범위를 포함한 커밋
fix(login): 토큰 저장 오류 수정
// 본문과 이슈 연결까지 포함한 커밋
// 한 줄 요약 + 상세 설명 + 관련 이슈 연결
// GitHub PR이나 이슈에서 자동으로 #42 이슈를 닫아줌
feat(account): 비밀번호 변경 기능 추가
- 기존 API 명세에 따라 변경 요청 및 확인 로직 구현
- 버튼 클릭 시 확인 팝업 추가
Closes #42
커밋 메시지에 이모지를 사용할 수도 있다?!
gitmoji
:truck: Move or rename resources (e.g.: files, paths, routes).
gitmoji.dev
다음 사이트는 여러 이모지를 제공하는데, 이 이모지들은 커밋 메시지에서 사용이 가능하다! (!)
문자보다 더 직관적이게! 이모지로 커밋메시지의 타입을 구분할 수 있는 것이다!!!
깃 이모지 사용법에 대해서는 다음 블로그를 참고해보자. (너무 잘 정리되어 있다...)
⚡️ Gitmoji 사용법 정리 (+ 깃모지 툴 소개)
Gitmoji 란? gitmoji란 git + emoji를 합쳐서 부르는 말로 emoji를 이용하여 commit message를 작성하는 tool이라고 보면 될 듯하다. 지금까지 그냥 글로만 커밋 메세지를 써왔겠지만, 메세지에 이모지(이모티
inpa.tistory.com
그외 참고 블로그
https://m.blog.naver.com/so_no7/223507064379
GraduART [트러블 슈팅(1)] - 협업 시 개발 컨벤션 정리하기(코드, 커밋, PR, Git 브랜치 전략)
오늘은 GraduART 팀프로젝트에서 개발을 진행하기 전에 개발 컨벤션에 대해 고민했던 부분들을 정리하...
blog.naver.com
'DevOps > Git' 카테고리의 다른 글
git fetch VS git pull (0) | 2021.07.10 |
---|---|
git push 할 때 conflict 해결 방법 (0) | 2021.07.10 |
git push origin master 에서 origin 의 의미 (0) | 2021.07.10 |
git merge 할 때 발생한 conflict 를 해결하는 방법 (0) | 2021.07.09 |
git checkout VS git switch/restore (0) | 2021.07.09 |