git 커밋 메시지가 모든 소프트웨어 엔지니어에게 중요하다는 것은 이미 알고 계실 거라 생각합니다. 잘 만든 커밋 메시지는 다른 개발자에게 변경 사항을 전달하는 가장 쉽고 간편한 방법이기 때문입니다. 그래서 기업의 대규모 프로젝트는 당연하고 협력의 비중이 낮은 소규모의 사이드 프로젝트에서도 커밋 컨벤션을 따로 만들어서 규칙을 지키기도 합니다.

이번 포스팅에서는 좋은 커밋 메시지의 중요성과 커밋 메시지 잘 쓰는 법을 알아봅니다. 더불어 인포그랩 프로덕트 팀의 커밋 컨벤션을 소개합니다.

photo | 인포그랩 GitLab | 인포그랩 GitLab

커밋 메시지란 무엇이고 왜 사용하나요?

커밋 명령은 git에서 스테이징한 후 변경 사항을 로컬 리포지터리에 저장하는 데 사용됩니다. 그러나 git에서 변경 사항을 저장하기 전에 수많은 변경 사항을 적용했을 수 있으므로 저장할 변경 사항을 git에 알려야 합니다. 가장 좋은 방법은 커밋 메시지를 추가하여 변경 사항을 식별하는 것이기 때문에 커밋 메시지를 사용합니다.

커밋 메시지를 잘 작성해야 하는 이유는 무엇인가요?

적절한 커밋 메시지 규칙이 중요한 이유는 이렇습니다.

1. 커뮤니케이션의 효율성 증대

일관적이고 명확한 커밋 메시지는 다른 개발자가 더 쉽게 이해하도록 돕기 때문에 서로의 작업에 대한 이해도를 높이고 프로젝트 관리와 협업에 중요한 역할을 합니다.

2. 문제 해결 속도 향상

시간이 지남에 따라 코드베이스는 매우 복잡해질 수 있습니다. 적절한 커밋 메시지 규칙은 메인테이너가 코드를 이해하는 데 도움이 되며 향후 변경 사항을 더 쉽게 만들 수 있습니다. 또한 좋은 커밋 메시지를 사용하면 코드 문제를 더 쉽게 디버깅할 수 있습니다. 문제가 발견되면 개발자는 커밋 메시지를 사용하여 언제 어디서 문제가 발생했는지 식별할 수 있다는 장점이 있습니다.

3. 문서화의 기능

적절한 커밋 메시지 규칙은 코드베이스 변경 내역을 제공하는 문서 역할을 할 수 있습니다. 이 기능은 프로젝트를 처음 접하거나 프로젝트에 신속하게 적응해야 하는 개발자에게 특히 유용할 수 있습니다.

이와 같이 잘 만든 git 커밋 메시지는 해당 프로젝트에서 작업하는 다른 개발자와 미래의 자신에게 변경 사항 콘텍스트를 전달하는 가장 좋은 방법입니다.

어떻게 좋은 커밋 메시지를 작성하나요?

일관되고 명확한 git 커밋 메시지 규칙은 생산적인 개발 환경을 유지하고 팀원 간의 협업을 촉진하는 데 중요합니다. git 커밋 메시지를 적절하게 작성하기 위한 방법을 살펴보겠습니다.

1. 앞단에 어떤 내용을 담은 커밋인지 커밋 유형을 지정합니다.

다음은 자주 사용되는 커밋 유형입니다. 커밋 유형을 포함하면 한눈에 알아보기 쉽습니다.

- Feat: 특정 애플리케이션에 추가하는 새로운 기능

- Fix : 버그 수정

- Style : 코드 포맷팅, 코드 오타, 함수명 수정 등 스타일 수정

- Refactor : 코드 리팩토링(똑같은 기능인데 코드만 개선)

- Comment: 주석 수정 및 삭제

- Docs : 문서와 관련된 모든 것

- Chore : 정기적인 코드 유지 관리

2. 다른 사람을 배려하기 위해서 자세하게 커밋 메시지를 작성합니다. 이때 commit body를 사용하면 세부적인 내용을 적을 수 있습니다. 이는 동료 개발자가 변경 사항을 더 잘 이해하는데 도움됩니다.

3. 커밋 메세지는 명령하거나 요청하는 어조를 사용합니다.

4. 불필요한 구두점 제거합니다.

5. 팀에서 정의한 '커밋 컨벤션'을 따릅니다.

커밋 컨벤션이란 무엇일까요?

git 커밋 메시지 컨벤션(Git Commit Message Convention)이란 프로젝트 참여자들이 일관된 형식의 커밋 메시지를 작성하기 위한 규칙을 말합니다. 현재 여러 개발자 사이에서 관습적으로 통용되는 가이드라인이 있지만, 각 프로젝트에 따라서 별도의 규칙을 만들어 적용하기도 합니다.

인포그랩 프로덕트 팀은 어떤 커밋 컨벤션으로 협업하나요?

우리 product 팀은 아래와 깉은 커밋 컨벤션을 사용하고 있습니다. 커밋 종류별로 이모티콘을 추가하여 한눈에 보기 쉽게 만든 것이 특징입니다.


✨Feat(페이지 경로 또는 컴포넌트): 새로운 기능 추가 또는 기능 업데이트
🔨Fix(페이지 경로 또는 컴포넌트): 버그 또는 에러 수정
⭐️Style(페이지 경로 또는 컴포넌트): 코드 포맷팅, 코드 오타, 함수명 수정 등 스타일 수정
🧠Refactor(페이지 경로 또는 컴포넌트): 코드 리팩토링(똑같은 기능인데 코드만 개선)
📁File(페이지 경로 또는 컴포넌트): 파일 이동 또는 제거, 파일명 변경
🎨Design(페이지 경로 또는 컴포넌트): 디자인, 문장 수정
🏷Comment(페이지 경로 또는 컴포넌트): 주석 수정 및 삭제
🍎Chore: 빌드 수정, 패키지 추가, 환경변수 설정
📝Docs: 문서 수정, 블로그 포스트 추가
🔥Hotfix: 핫픽스 수정

그리고 컴포넌트, 페이지와 함수를 구분하기 위해서 컴포넌트는 대문자로 시작하도록 규칙을 정했고, 그 이외 페이지와 함수는 소문자로 표기합니다.

또한 commit body를 사용해서 세부사항을 commit에 추가하여 동료 개발자가 이해를 더 잘할 수 있도록 돕고 있습니다.

- 컴포넌트는 대문자로 시작
- 🎨Design(Login): padding bottom 추가
- 페이지는 소문자로 시작
- ✨Feat(editor): 복사하기 버튼 기능 추가
- store, function 등 소문자로 시작
- ✨Feat(goToSelectedTab): 유틸 함수 추가

이밖에 간결한 커밋 메시지를 위해 ‘function’이라는 단어를 ‘함수’로 줄여 쓰고 있습니다.

맺음말

지금까지 좋은 커밋 메시지의 중요성과 커밋 메시지 잘 쓰는 법을 알아보았습니다.

적절한 git 커밋 메시지 규칙은 건강하고 생산적인 개발 환경을 유지하는 데 중요한 부분입니다. 장기적으로 커밋 메시지를 잘 작성하면 ‘여러분이 얼마나 협력을 잘하는 팀원인지’ 보여줄 수 있습니다. 이는 우리가 커밋 메시지를 잘 써야 할 이유 중 하나입니다.

인포그랩은 GitLab 및 DevOps에 대한 맞춤 기술 지원을 제공합니다. GitLab(Omnibus/Cloud Native Hybrid) 구축 관련한 지원이 필요하시면 문의하기 로 연락 주십시오.

<참고자료>

  1. Git Commit Message Convention Matter
  2. Git 커밋 메시지 컨벤션은 왜 중요할까?
  3. Writing Good Commit Messages: A Practical Guide
  4. How to Write Better Git Commit Messages – A Step-By-Step Guide