Git 커밋 메시지 작성 가이드 정리

1. 커밋 메시지 구조

[type]: [summary]
 
[optional body]
 
[optional footer]

구성 요소:

  1. [type]: 변경 사항의 유형 (예: feat, fix 등).
  2. [summary]: 변경 내용을 간결하게 요약 (50자 이내).
  3. Body (선택 사항): 변경 이유 및 세부 설명 (한 줄당 72자 이내).
  4. Footer (선택 사항): 관련 이슈, 브레이킹 체인지 등 참고 정보.

2. 커밋 타입 (type)

타입설명예시
feat새로운 기능 추가feat: 사용자 로그인 기능 추가
fix버그 수정fix: 로그인 리다이렉트 문제 해결
docs문서 변경docs: 사용법 예시 README에 추가
style코드 스타일 변경 (로직 변경 없음)style: Prettier 포맷 적용
refactor리팩토링 (기능 변경 없음)refactor: 사용자 검증 로직 단순화
test테스트 추가 또는 수정test: 로그인 API 단위 테스트 추가
chore유지보수 작업 (예: 의존성, CI/CD 설정 변경)chore: npm 의존성 업데이트
build빌드 시스템 변경 (예: webpack, npm)build: Webpack 번들링 설정 추가
ciCI/CD 구성 변경ci: GitHub Actions 테스트 워크플로우 업데이트

3. 좋은 커밋 메시지 작성법

  1. 현재 시제 사용: “기능 추가” (Add)처럼 작성.
  2. 요약은 50자 이내로 작성.
  3. 본문 줄바꿈은 72자로 제한.
  4. 왜 변경했는지 설명: 변경 이유와 맥락을 포함.
  5. 관련 이슈 참조: 예: Closes #123 (이슈 자동 닫기).

4. 커밋 메시지 예시

간단한 예시

feat: 사용자 프로필 편집 기능 추가

상세한 예시

fix: 잘못된 입력에 대한 API 응답 상태 수정
 
- 잘못된 요청에 대한 HTTP 상태를 200에서 400으로 변경
- 경계 조건에 대한 단위 테스트 추가
- Closes #123

5. Docker 관련 커밋 메시지 예시

예시 1: Docker Compose와 .dockerignore 업데이트

chore: Docker Compose 서비스 이름 변경 및 .dockerignore 추가
 
- Docker Compose 서비스 이름을 더 명확하게 수정:
  - `frontend` -> `web`
  - `backend` -> `api`
- 빌드 컨텍스트 최적화를 위해 .dockerignore 추가:
  - node_modules, 로그, pycache 등 불필요 파일 제외

예시 2: 이슈 참조 포함

chore: Docker 구성 개선 (#123)
 
- docker-compose.yml에서 서비스 이름 수정:
  - `frontend` -> `web`
  - `backend` -> `api`
- .dockerignore 추가로 빌드 컨텍스트 크기 감소:
  - 불필요한 파일 및 폴더 제외 (node_modules, 로그, 캐시 등)
- Closes #123