# Gitmoji로 커밋 메시지를 작성해보았다

부트캠프에서 첫 미션이 주어졌다. 구현 하고 과제 제출을 하려는데, 다른사람들 커밋 메시지가 정형화 되어 있는 것 같았다

깃에도 코드 컨벤션이 있었던가??

---

[Udacity Nanodegree Style Guide](https://udacity.github.io/git-styleguide/) 나만 몰랐던 걸로..😂

### 메시지 구조

```java
type: Subject

body

footer
```

3가지 영역(제목, 본문, 꼬리말)으로 나누어졌다.

### Type

소문자로 작성한다.

* `feat` : 새로운 기능 추가
    
* `fix` : 버그 수정
    
* `docs` : 문서 내용 변경
    
* `style` : 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 등
    
* `refactor` : 코드 리팩토링
    
* `test` : 테스트 코드 작성
    
* `chore` : 빌드 수정, 패키지 매니저 설정, 운영 코드 변경이 없는 경우 등
    

### Subject

최대 50글자가 넘지 않고, 마침표와 특수기호는 사용하지 않는다.

영문 표기 시, 첫글자는 대문자로 표기하며 과거시제를 사용하지 않는다. 그리고 간결하고 요점만 서술해야 한다.

> Added (X) → Add (O)

### Body (본문)

`Body (본문)`은 최대한 상세히 적고, `무엇`을 `왜` 진행했는 지 설명해야 한다. 만약 한 줄이 72자가 넘어가면 다음 문단으로 나눠 작성하도록 한다.

### Footer (꼬리말)

`Footer (꼬리말)`은 이슈 트래커의 ID를 작성한다.

어떤 이슈와 관련된 커밋인지(Resolves), 그 외 참고할 사항이 있는지(See also)로 작성하면 좋다.

### 예시

```java
Feat: "추가 로그인 함수"

로그인 API 개발

Resolves: #123
Ref: #456
Related to: #48, #45
```

---

## Gitmoji

[gitmoji | An emoji guide for your commit messages](https://gitmoji.dev/)

위의 원칙을 준수하되. type을 이모지(emoji)로 표현하는 스타일이다.

Intellij 에도 설치 할 수 있다

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1692683651944/cc55dc08-8484-4d0a-a051-ac0d9b7cf87e.png align="center")

## 커밋 메시지 Emoji

<table><tbody><tr><td colspan="1" rowspan="1"><p><strong>Emoji</strong></p></td><td colspan="1" rowspan="1"><p><strong>Description</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p>🎨</p></td><td colspan="1" rowspan="1"><p>코드의 <strong>형식</strong> / 구조를 개선 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>📰</p></td><td colspan="1" rowspan="1"><p><strong>새 파일을</strong> 만들 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>📝</p></td><td colspan="1" rowspan="1"><p><strong>사소한 코드 또는 언어</strong>를 변경할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🐎</p></td><td colspan="1" rowspan="1"><p><strong>성능을</strong> 향상시킬 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>📚</p></td><td colspan="1" rowspan="1"><p><strong>문서를</strong> 쓸 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🐛</p></td><td colspan="1" rowspan="1"><p><strong>버그</strong> reporting할 때, <code>@FIXME</code> 주석 태그 삽입</p></td></tr><tr><td colspan="1" rowspan="1"><p>🚑</p></td><td colspan="1" rowspan="1"><p><strong>버그를</strong> 고칠 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🐧</p></td><td colspan="1" rowspan="1"><p><strong>리눅스에서</strong> 무언가를 고칠 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🍎</p></td><td colspan="1" rowspan="1"><p><strong>Mac OS에서</strong> 무언가를 고칠 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🏁</p></td><td colspan="1" rowspan="1"><p><strong>Windows에서</strong> 무언가를 고칠 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🔥</p></td><td colspan="1" rowspan="1"><p><strong>코드 또는 파일 제거</strong>할 때 , <code>@CHANGED</code>주석 태그와 함께</p></td></tr><tr><td colspan="1" rowspan="1"><p>🚜</p></td><td colspan="1" rowspan="1"><p><strong>파일 구조를 변경할</strong> 때 . 🎨과 함께 사용</p></td></tr><tr><td colspan="1" rowspan="1"><p>🔨</p></td><td colspan="1" rowspan="1"><p>코드를 <strong>리팩토링</strong> 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>☔️</p></td><td colspan="1" rowspan="1"><p><strong>테스트를</strong> 추가 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🔬</p></td><td colspan="1" rowspan="1"><p><strong>코드 범위를</strong> 추가 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>💚</p></td><td colspan="1" rowspan="1"><p><strong>CI</strong> 빌드를 고칠 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🔒</p></td><td colspan="1" rowspan="1"><p><strong>보안을</strong> 다룰 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>⬆️</p></td><td colspan="1" rowspan="1"><p><strong>종속성을</strong> 업그레이드 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>⬇️</p></td><td colspan="1" rowspan="1"><p><strong>종속성을</strong> 다운 그레이드 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>⏩</p></td><td colspan="1" rowspan="1"><p>이전 버전 / 지점에서 <strong>기능</strong>을 <strong>전달할</strong> 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>⏪</p></td><td colspan="1" rowspan="1"><p>최신 버전 / 지점에서 <strong>기능</strong>을 <strong>백 포트</strong> 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>👕</p></td><td colspan="1" rowspan="1"><p><strong>linter</strong> / strict / deprecation 경고를 제거 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>💄</p></td><td colspan="1" rowspan="1"><p><strong>UI</strong> / style 개선시</p></td></tr><tr><td colspan="1" rowspan="1"><p>♿️</p></td><td colspan="1" rowspan="1"><p><strong>접근성을</strong> 향상시킬 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🚧</p></td><td colspan="1" rowspan="1"><p><strong>WIP</strong> (진행중인 작업)에 커밋, <code>@REVIEW</code>주석 태그와 함께 사용</p></td></tr><tr><td colspan="1" rowspan="1"><p>💎</p></td><td colspan="1" rowspan="1"><p>New <strong>Release</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p>🔖</p></td><td colspan="1" rowspan="1"><p>버전 <strong>태그</strong></p></td></tr><tr><td colspan="1" rowspan="1"><p>🎉</p></td><td colspan="1" rowspan="1"><p><strong>Initial</strong> Commit</p></td></tr><tr><td colspan="1" rowspan="1"><p>🔈</p></td><td colspan="1" rowspan="1"><p><strong>로깅을</strong> 추가 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>🔇</p></td><td colspan="1" rowspan="1"><p><strong>로깅을</strong> 줄일 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>✨</p></td><td colspan="1" rowspan="1"><p><strong>새로운</strong> 기능을 소개 할 때</p></td></tr><tr><td colspan="1" rowspan="1"><p>⚡️</p></td><td colspan="1" rowspan="1"><p>도입 할 때 <strong>이전 버전과 호환되지 않는</strong> 특징, <code>@CHANGED</code>주석 태그 사용</p></td></tr><tr><td colspan="1" rowspan="1"><p>💡</p></td><td colspan="1" rowspan="1"><p>새로운 <strong>아이디어</strong>,<code> @IDEA</code>주석 태그</p></td></tr><tr><td colspan="1" rowspan="1"><p>🚀</p></td><td colspan="1" rowspan="1"><p>배포 / <strong>개발 작업</strong> 과 관련된 모든 것</p></td></tr><tr><td colspan="1" rowspan="1"><p>🐘</p></td><td colspan="1" rowspan="1"><p><strong>PostgreSQL</strong> 데이터베이스 별 (마이그레이션, 스크립트, 확장 등)</p></td></tr><tr><td colspan="1" rowspan="1"><p>🐬</p></td><td colspan="1" rowspan="1"><p><strong>MySQL</strong> 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등)</p></td></tr><tr><td colspan="1" rowspan="1"><p>🍃</p></td><td colspan="1" rowspan="1"><p><strong>MongoDB</strong> 데이터베이스 특정 (마이그레이션, 스크립트, 확장 등)</p></td></tr><tr><td colspan="1" rowspan="1"><p>🏦</p></td><td colspan="1" rowspan="1"><p><strong>일반 데이터베이스</strong> 별 (마이그레이션, 스크립트, 확장명 등)</p></td></tr><tr><td colspan="1" rowspan="1"><p>🐳</p></td><td colspan="1" rowspan="1"><p><strong>도커</strong> 구성</p></td></tr><tr><td colspan="1" rowspan="1"><p>🤝</p></td><td colspan="1" rowspan="1"><p><strong>파일을 병합</strong> 할 때</p></td></tr></tbody></table>

---

커밋 메시지를 일괄 수정하고 force push를 해서 바꾸었다.

컨벤션을 완전히 따르진 않았고, 나만의 기준점을 정해서 작성해보았다.

이모지가 들어가니까 예쁘긴 한데, 아이콘이 많다보니 적응하는데 시간이 걸릴 듯 하다.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1692683726703/7ff063d9-c2dd-4199-a4b4-90dd575dd5bd.png align="center")

지금까지 별 생각없이 나만 볼꺼 툭 던졌었는데, 지금 보니까 부끄럽다...

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1692684077351/c4e58c37-eda1-482e-855d-0caaf2f952fb.png align="center")

팀 프로젝트 할때 코드 컨벤션과 함께 깃도 약속을 해놓으면 도움이 될 것 같다.
