[POB#03] 커밋 컨벤션 정리

dongwon·2021년 7월 28일
1

원티드-프리온보딩

목록 보기
3/25
post-thumbnail

첫 페어 프로그래밍을 하며 그동안 얼마나 근본 없는 커밋 메세지를 날렸는지 느끼며 커밋, 코드 컨벤션에 대해 정리해봤습니다.
컨벤션을 함께 지킬 팀원들이 공유한 사이트들을 참고하여 작성했습니다.

❓ 컨벤션을 왜 지켜야 할까

컨벤션은 협약이라는 의미처럼 여러 사람이 지켜야 할 일종의 룰입니다. 따라서 개발자들이 협업 과정에서 컨벤션을 지킨다면 다음과 같은 이점이 있습니다.

  1. 더 좋은 가독성
  2. 더 좋은 유지 보수
  3. 더 좋은 협업과 관리

📄 커밋 컨벤션

커밋 컨벤션은 git 커밋 메세지를 위한 컨벤션입니다. git 커밋을 이용해 더 나은 로그 가독성, 리뷰 프로세스, 코드 유지 보수를 할 수 있습니다.

커밋 메세지 구조

커밋 메세지는 제목, 본문, 꼬리말로 구성되어 있고 각자 빈 줄을 두어 구분합니다. 제목을 제외한 나머지는 옵션이지만 웬만하면 지키고 싶어 옵션을 지웠습니다. ( 꼬리말은 제외 )

타입 : [#이슈 번호 - ] 제목

본문

꼬리말(옵션)

타입

커밋 메세지가 어떤 의도를 가진 메세지인지 알립니다.
태그와 제목으로 구성되어 있고 사용법은 태그: 제목의 형태입니다. (: 뒤에만 space가 있다 !)

태그 종류들

태그 의도 태그 의도
✔️ Feat 새 기능 추가 ✔️ Fix 버그 수정
✔️ Design CSS, UI 변경 ✔️ Style 포맷 변경 등 코드 수정이 없는 경우
✔️ Refactor 코드 리팩토링 ✔️ Comment 주석 추가
✔️ Docs 문서 수정 Test 테스트 추가, 리팩토링
✔️ Rename 파일명 수정, 이동 ✔️Remove 파일 삭제
Chore 패키지 매니저 설정 !HOTFIX 급한 버그 수정
!BREAKING
CHANGE
커다란 API 변경

제목

제목은 메세지의 짧은 요약입니다. 다음과 같은 규칙을 가집니다.

  1. "고침", "추가", "변경" 등 명령조로 시작합니다. ( 영어의 경우 동사 원형 )
  2. 총 글자는 50자 이내
  3. 마지막에 특수문자 삽입 X
  4. 개조식 구문 ( 간결, 요점적인 서술 )

Feat: "추가 Infinty Scroll 기능"

본문

본문은 다음과 같은 규칙을 가집니다.

  1. 한 줄 당 72자 내외
  2. 최대한 상세히 작성
  3. 어떻게보단 무엇, 왜에 중점적으로

Feat: "추가 Infinity Scroll 기능"

  • react-intersection-observer 패키지 사용
  • intersection 관측 시 다음 page API 호출

꼬리말

  1. 이슈 트래커 ID를 작성합니다. "유형: #이슈 번호"
  2. 여러 개의 이슈 번호는 쉼표로 구분합니다.
  3. 이슈 트래커 유형
    • Fixes: 이슈 수정 중 ( 아직 미해결 )
    • Resolves: 이슈 해결
    • Ref: 참고할 이슈
    • Related to: 해당 커밋과 관련된 이슈 번호 ( 아직 미해결 )

Feat: "추가 Infinity Scroll 기능"

  • react-intersection-observer 패키지 사용
  • intersection 관측 시 다음 page API 호출

Reslves: #321

🔗 관련 링크

팀 커밋 컨벤션을 작성한 레파지토리입니다.

Coconut Commit Convetion

참고한 게시글입니다.

참고 1

참고 2

profile
데이원컴퍼니 프론트엔드 개발자입니다.

0개의 댓글