Git 전략
브랜치 구조
| 브랜치 | 설명 |
main | 운영 배포 브랜치 (직접 커밋 금지) |
develop | 개발 통합 브랜치 |
feature/* | 기능 개발 브랜치 |
fix/* | 버그 수정 브랜치 |
hotfix/* | 운영 긴급 패치 브랜치 |
main # 운영 배포 (직접 커밋 금지)
└── develop # 개발 통합
├── feature/* # 기능 개발
├── fix/* # 버그 수정
└── hotfix/* # 긴급 패치
브랜치 네이밍
# 기능 개발
feature/add-user-search
# 버그 수정
fix/user-pagination-error
# 긴급 패치
hotfix/login-token-expired
커밋 메시지 형식
type(scope): subject
예시:
feat(user): 사용자 검색 기능 추가
fix(auth): 토큰 만료 처리 오류 수정
docs(guide): 네이밍 컨벤션 가이드 작성
refactor(service): UserService 메서드 분리
test(user): 사용자 등록 테스트 추가
커밋 타입
| 타입 | 사용 상황 |
feat | 새 기능 추가 |
fix | 버그 수정 |
docs | 문서 작성/수정 |
refactor | 코드 리팩토링 (기능 변경 없음) |
test | 테스트 추가/수정 |
style | 포매팅, 세미콜론 등 (코드 변경 없음) |
chore | 빌드, 의존성 등 기타 작업 |
PR 규칙
develop → main PR은 코드 리뷰 필수
- 리뷰어 최소 1명 승인 후 머지
- PR 제목: 커밋 메시지 형식과 동일하게 작성
- PR 설명: 변경 내용, 테스트 방법 포함
작업 흐름
# 1. develop에서 브랜치 생성
git checkout develop
git pull origin develop
git checkout -b feature/add-user-search
# 2. 개발 및 커밋
git add src/main/java/.../UserController.java
git commit -m "feat(user): 사용자 검색 기능 추가"
# 3. 원격 브랜치 push
git push origin feature/add-user-search
# 4. PR 생성 (feature → develop)
# 5. 코드 리뷰 → 승인 → 머지
# 6. develop → main PR (리뷰어 최소 1명 승인 필수)
# 7. 머지 후 브랜치 삭제
git branch -d feature/add-user-search
.gitignore 필수 항목
# 빌드 결과물
build/
.gradle/
out/
# 민감 정보 — 절대 커밋 금지
.env
.env.*
application-prod.yml
application-local.yml
*.env
*.pem
*.key
# IDE
.idea/
*.iml
*.iws
# OS
.DS_Store
Thumbs.db
# 로그
*.log
logs/
주의사항
main 브랜치 직접 push 금지
application-prod.yml, .env 파일 커밋 절대 금지
- SSH 키 (
*.pem) 파일 커밋 절대 금지
- git 히스토리에 민감 정보 포함 시 → BFG Repo-Cleaner 사용
develop → main 머지: Squash Merge 권장