Skip to content
Go back

Claude Code로 Git 워크플로우 자동화하기 - 스마트 커밋 커맨드 만들기

Published:  at  11:32 AM

개발자라면 누구나 Git 커밋을 작성할 때 고민에 빠집니다. “이 변경사항을 어떻게 그룹핑할까?”, “커밋 메시지는 어떻게 작성하지?”, “티켓 번호는 제대로 포함했나?” 같은 질문들이 매번 반복됩니다. Claude Code의 커스텀 커맨드 기능을 활용하면 이런 반복적인 작업을 완전히 자동화할 수 있습니다.

Claude Code 커맨드란?

Claude Code는 반복적인 작업을 자동화하기 위한 커스텀 커맨드 기능을 제공합니다. /add-command 명령어로 자신만의 워크플로우를 정의하고, 이후 간단한 명령어로 복잡한 작업을 수행할 수 있습니다.

# 커맨드 추가
/add-command git-smart-commit

# 이후 사용
/git-smart-commit

스마트 Git 커밋 자동화 시스템 구축하기

1. 브랜치 패턴 인식과 티켓 번호 추출

개발팀에서는 보통 feat/PROJ-1234, fix/TASK-5678 같은 이슈 트래킹 시스템 기반 패턴으로 브랜치를 생성합니다. 이 패턴을 자동으로 인식하여 커밋 메시지에 이슈 번호를 포함시킬 수 있습니다.

## Branch Pattern Recognition

- Pattern: `{prefix}/{PROJECT}-{issue-number}`
- Examples:
  - `feat/PROJ-1234``feat: PROJ-1234 {description}`
  - `fix/TASK-5678``fix: TASK-5678 {description}`
  - `chore/ISSUE-999``chore: ISSUE-999 {description}`

2. 지능적인 변경사항 그룹핑

모든 변경사항을 하나의 커밋으로 만드는 git add .의 시대는 끝났습니다. Claude Code는 변경사항을 논리적 단위로 자동 분류합니다:

## Intelligent Commit Grouping

- **Configuration:** package.json, env files
- **Documentation:** README, docs, comments
- **Core Features:** Business logic
- **Styling/UI:** CSS, UI components
- **Tests:** Test files and configs
- **Dependencies:** Package updates
- **Refactoring:** Code improvements
- **Bug Fixes:** Error corrections

각 그룹은 독립적인 커밋으로 생성되어 깔끔한 히스토리를 유지합니다.

3. 실제 구현 예제

다음은 Claude Code 커맨드로 등록할 수 있는 Requirements 전체 내용입니다:

# Requirements

## 1. Branch Detection & Commit Message Formatting

- **Development Branch:** `develop`
- **Branch Pattern Recognition:**
  - If current branch follows `feat/PROJ-1234`, `fix/TASK-5678`:
    - Extract prefix and issue number
    - **Commit messages in Korean**
    - Format: `{prefix}: {issue} {description}`
    - Example: `feat: PROJ-1234 사용자 인증 기능 추가`

## 2. Intelligent Commit Grouping

- Analyze all changes into logical units
- Stage changes by category (not `git add .`)
- Create separate commits per group
- Examples:
  - `config: 운영 환경 빌드 설정 수정`
  - `feat: PROJ-1234 사용자 인증 로직 구현`
  - `style: 모바일 디자인 개선`
  - `test: 인증 서비스 단위 테스트 추가`

## 3. Automated Workflow

- Stage and commit by category
- Push to current branch
- Prompt: "develop 브랜치에 병합할까요?"
- If yes: merge to develop

4. 사용 시나리오

시나리오 1: 기능 개발 브랜치에서 작업

# 현재 브랜치: feat/PROJ-1234
$ /git-smart-commit

# Claude Code가 자동으로 수행:
# 1. 변경사항 분석
# 2. 카테고리별 그룹핑
# 3. 커밋 생성:
#    - "feat: PROJ-1234 사용자 인증 API 구현"
#    - "test: PROJ-1234 인증 API 테스트 추가"
#    - "docs: PROJ-1234 API 문서 업데이트"
# 4. Push 실행
# 5. "develop 브랜치에 병합할까요?" 프롬프트

시나리오 2: 핫픽스 작업

# 현재 브랜치: hotfix/BUG-9999
$ /git-smart-commit

# 자동 생성되는 커밋:
# - "fix: BUG-9999 로그인 세션 만료 버그 수정"
# - "test: BUG-9999 세션 만료 테스트 케이스 추가"

5. 커맨드 등록 방법

Claude Code에서 다음과 같이 커맨드를 등록합니다:

/add-command git-smart-commit

프롬프트가 나타나면 위의 Requirements 내용을 붙여넣기합니다.

6. 고급 기능들

자동 충돌 해결

## Conflict Resolution

- Auto-resolve simple conflicts
- If complex: show conflicted files
- Provide Korean guidance

커밋 메시지 AI 생성

브랜치 이름에 이슈 번호가 없는 경우, Claude Code가 코드 변경사항을 분석하여 적절한 커밋 메시지를 자동 생성합니다:

# 브랜치: feature/new-dashboard
# AI가 코드를 분석하여 생성:
"feat: 대시보드 실시간 차트 컴포넌트 추가"
"style: 대시보드 반응형 레이아웃 구현"

실제 적용 효과

Before: 수동 커밋 프로세스

git add src/auth/*
git commit -m "Add auth"
git add tests/*
git commit -m "Add tests"
git add README.md
git commit -m "Update docs"
git push
# 이슈 번호 빼먹음... 다시 수정...

After: 자동화된 프로세스

/git-smart-commit
# 끝!

팀 전체 생산성 향상

이 시스템을 팀에 도입하면:

  1. 일관된 커밋 메시지: 모든 개발자가 동일한 형식 사용
  2. 이슈 추적성: 자동으로 이슈 번호가 포함되어 이슈 트래커 연동 완벽
  3. 코드 리뷰 효율성: 논리적으로 그룹화된 커밋으로 리뷰 시간 단축
  4. 온보딩 간소화: 신입 개발자도 즉시 팀 컨벤션 준수

커스터마이징 아이디어

1. 프로젝트별 설정

## Project-Specific Rules

- Frontend: Separate component/style/test commits
- Backend: Group by layer (controller/service/repository)
- Mobile: Platform-specific commits (ios/android/common)

2. 자동 PR 생성

## Auto PR Creation

- After push, create PR automatically
- Fill PR template with commit summaries
- Add reviewers based on changed files

GitHub PR 자동화까지 한 번에

Claude Code는 커밋 자동화를 넘어 GitHub Pull Request 생성까지 완전히 자동화할 수 있습니다. gh CLI와 연동하여 PR 템플릿을 자동으로 채우고, 적절한 리뷰어를 할당하는 것까지 가능합니다.

PR 자동화 Requirements 예제

# Pull Request Policy

## 1. Base Branch for PR
- PR은 원격 저장소의 `develop`, `main`, `release/*` 중 적절한 브랜치로 생성
- GitHub CLI (`gh` command)를 사용하여 PR 생성

## 2. PR 제목 형식
- 브랜치 이름 `feat/PROJ-1234`에서 prefix와 이슈 번호 추출
- 형식: `{prefix}: {issue-number} {간단한 설명}`
- 예: `feat: PROJ-1234 사용자 인증 기능 추가`

## 3. PR 설명 템플릿
- 아래 템플릿에 따라 자동으로 내용 작성
- 커밋 분석을 통해 변경 사항 자동 체크
- 모든 내용은 한국어로 작성

## PR Description Template
## 📝 작업 내용
<!-- 이 PR에서 구현한 주요 기능이나 수정사항을 설명해주세요 -->

### 🎯 변경 사항
<!-- 변경된 내용을 구체적으로 나열해주세요 -->
- [ ] 새로운 기능 추가
- [ ] 버그 수정
- [ ] 성능 개선
- [ ] 리팩토링
- [ ] 문서 업데이트
- [ ] 테스트 추가/수정

### 🔗 관련 이슈
- Resolves: #PROJ-1234

### ✅ 체크리스트
- [ ] 코드 리뷰 요청 전 자가 검토 완료
- [ ] 테스트 코드 작성/수정
- [ ] 문서 업데이트 (필요한 경우)
- [ ] 로컬 환경에서 테스트 완료

### 📸 스크린샷 (UI 변경사항이 있는 경우)
<!-- UI 변경이 있다면 스크린샷을 첨부해주세요 -->

### 💡 리뷰어를 위한 참고사항
<!-- 리뷰어가 특별히 주의 깊게 봐야 할 부분이나 맥락을 공유해주세요 -->

PR 자동화 실행 예시

# 현재 브랜치: feat/PROJ-1234
$ /git-smart-pr

# Claude Code가 자동으로:
# 1. 모든 커밋 푸시
# 2. PR 제목 생성: "feat: PROJ-1234 사용자 인증 API 구현"
# 3. 커밋 내용 분석하여 PR 본문 작성:
#    - 변경 사항 체크박스 자동 체크
#    - 관련 이슈 링크
#    - 변경된 컴포넌트 목록 작성
# 4. gh 명령어로 PR 생성
# 5. 적절한 리뷰어 자동 할당

고급 PR 자동화 기능

스마트 리뷰어 할당

## Reviewer Assignment Rules
- Frontend 변경: @frontend-team
- Backend 변경: @backend-team
- DB 스키마 변경: @dba-team + @tech-lead
- 보안 관련: @security-team

자동 라벨링

## Auto Labeling
- feat/* → "enhancement" 라벨
- fix/* → "bug" 라벨
- docs/* → "documentation" 라벨
- 파일 수 > 30 → "large-pr" 라벨

Draft PR 자동 전환

## Draft PR Management
- WIP 커밋이 있으면 Draft PR로 생성
- 모든 테스트 통과 시 Ready for Review로 자동 전환

실제 활용 시나리오

# 작업 완료 후 한 번에 PR까지
$ /git-smart-commit-and-pr

# Claude Code 실행 과정:
# 1. 변경사항 분석 및 커밋 그룹핑
# 2. 카테고리별 커밋 생성
# 3. 원격 저장소 푸시
# 4. PR 템플릿 자동 작성
# 5. GitHub에 PR 생성
# 6. Slack으로 팀에 알림 (옵션)

 PR이 성공적으로 생성되었습니다!
📎 https://github.com/team/project/pull/123

3. 릴리즈 노트 생성

## Release Notes Generation

- Collect commits since last tag
- Group by feature/fix/chore
- Generate CHANGELOG.md

트러블슈팅

문제: 한글 커밋 메시지 인코딩

# Git 설정으로 해결
git config --global core.quotepath false
git config --global i18n.commitencoding utf-8

문제: 커밋 그룹이 너무 세분화됨

Requirements에서 그룹핑 규칙을 조정:

## Simplified Grouping

- Features & Tests: Combined commits
- Config & Docs: Combined commits
- Styles: Separate only if >10 files

모범 사례

1. 커밋 메시지 템플릿 활용

## Commit Template

{prefix}: {ticket} {what-changed}

# Why: {reason}

# How: {implementation-detail}

# Impact: {affected-areas}

2. 프리커밋 훅과 연동

# .pre-commit-config.yaml
repos:
  - repo: local
    hooks:
      - id: claude-code-commit-check
        name: Validate commit format
        entry: check-commit-format
        language: system

3. 팀 컨벤션 문서화

# .claude/commands/git-commit.md

Team-specific git commit rules...

성능 최적화 팁

  1. 대용량 파일 처리: Binary 파일은 별도 커밋으로 분리
  2. 히스토리 정리: 자동 squash 옵션 추가
  3. 병렬 처리: 독립적인 변경사항은 동시에 처리

미래 전망

Claude Code의 커맨드 기능은 계속 발전하고 있습니다. 앞으로 기대할 수 있는 기능들:

PR 자동화의 실제 효과

시간 절약 측정

품질 향상 지표

결론

Claude Code의 커스텀 커맨드를 활용한 Git 자동화는 단순한 시간 절약을 넘어 팀 전체의 개발 문화를 개선합니다. 커밋 자동화부터 PR 생성까지, 일관된 히스토리와 완벽한 이슈 추적이 가능해집니다.

이제 /git-smart-commit-and-pr 하나로 완벽한 Git 워크플로우를 경험해보세요. 한 번 사용하면 수동 프로세스로 돌아갈 수 없을 것입니다.


Claude Code는 개발자의 생산성을 극대화하기 위해 계속 진화하고 있습니다. 여러분만의 창의적인 커맨드를 만들어 공유해주세요. 함께 더 나은 개발 환경을 만들어갑시다.


Share this post on:

Previous Post
TypeScript의 변성(Variance) 완벽 이해하기
Next Post
맥 개발자를 위한 개발 환경 구축 가이드