02-01 브랜치 전략
팀의 배포 흐름을 결정하는 브랜치 운영 규칙 — 상황에 맞는 전략을 고르는 법.
팀의 배포 흐름을 결정하는 브랜치 운영 규칙 — 상황에 맞는 전략을 고르는 법.
목표: 팀 규모·릴리스 주기에 맞는 전략을 근거를 들어 선택
🎯 왜 전략이 필요한가
브랜치 전략 = 배포 흐름의 설계도. 잘못 고르면 통합 지옥, 배포 지연, 핫픽스 혼란이 생긴다. 선택 기준은 팀 규모와 릴리스 주기.
1️⃣ GitHub Flow — 단순·지속적 배포
graph LR
MAIN["main (항상 배포 가능)"] -->|"브랜치"| FEAT["feature/*"]
FEAT -->|"PR + CI"| REVIEW["리뷰"]
REVIEW -->|"머지"| MAIN
MAIN -->|"자동 배포"| PROD["Production"]
main은 항상 배포 가능, 모든 작업은 feature 브랜치 → PR → 머지- 장점: 단순, 빠른 배포, 이해 쉬움
- 단점: 버전 관리·릴리스 단계가 명시적이지 않음
- 적합: 웹 서비스, SaaS, 소~중규모 팀, CD 환경
2️⃣ Git Flow — 명확한 릴리스 주기
graph TB
MAIN["main (프로덕션)"] --> HOT["hotfix/*"]
MAIN --> REL["release/*"]
REL --> DEV["develop (통합)"]
DEV --> FEAT["feature/*"]
FEAT --> DEV
DEV --> REL
REL --> MAIN
HOT --> MAIN
HOT --> DEV
| 브랜치 | 역할 |
|---|---|
main | 프로덕션 릴리스(태그) |
develop | 다음 릴리스 통합 |
feature/* | 개별 기능 |
release/* | 릴리스 준비(QA·버그픽스) |
hotfix/* | 프로덕션 긴급 수정 |
- 장점: 버전·릴리스 단계 명확, 병렬 개발 관리
- 단점: 복잡, 브랜치 많음, 지속적 배포와 상충
- 적합: 버전 릴리스 제품(설치형 SW, 모바일 앱), 정해진 릴리스 주기
3️⃣ GitLab Flow — 환경 브랜치
graph LR
FEAT["feature/*"] --> MAIN["main"]
MAIN -->|"배포"| STAGE["staging"]
STAGE -->|"배포"| PROD["production"]
- main + 환경별 브랜치(staging, production)로 배포 단계를 브랜치로 표현
- GitHub Flow의 단순함 + 환경 분리. 적합: 다단계 배포 환경
4️⃣ Trunk-Based — 대규모·고자동화
graph LR
TRUNK["main (trunk)"] -->|"짧은 브랜치(1~2일)"| SHORT["feature"]
SHORT -->|"자주 머지"| TRUNK
TRUNK -->|"미완성은 Feature Flag로 숨김"| PROD["Production"]
- 모두가
main에 하루 단위로 짧게 머지, 미완성 기능은 Feature Flag로 비활성 - 장점: 통합 지옥 회피, CI/CD 궁합 최고, 머지 충돌 최소
- 단점: 높은 테스트 자동화·Feature Flag 인프라 필요
- 적합: 대규모 팀, 성숙한 CI/CD, Google·Meta식 개발
⚖️ 전략 비교
| 전략 | 복잡도 | 배포 빈도 | 브랜치 수명 | 적합 |
|---|---|---|---|---|
| GitHub Flow | 낮음 | 높음 | 짧음 | 웹/SaaS, 중소팀 |
| Git Flow | 높음 | 낮음 | 긺 | 버전 릴리스 제품 |
| GitLab Flow | 중간 | 중간 | 짧음 | 다단계 배포 |
| Trunk-Based | 중간 | 매우 높음 | 매우 짧음 | 대규모·고자동화 |
🏷️ 브랜치 네이밍 컨벤션
feature/login-oauth # 기능
fix/null-pointer # 버그
hotfix/payment-crash # 긴급
release/v1.2.0 # 릴리스
chore/update-deps # 잡무
- 접두사로 유형 구분, 이슈 번호 포함도 흔함:
feature/123-login
📋 체크리스트
- 네 전략의 구조·장단점 설명
- 팀 상황에 맞는 전략 선택 근거 제시
- Feature Flag와 Trunk-Based의 관계 이해
- 브랜치 네이밍 컨벤션 수립
- 전략 ↔ CI/CD 파이프라인 연결
🔗 관련 노트
- 01-05-되돌리기와-복구 — 이전
- 02-02-PR과-코드-리뷰 — 다음: PR
- 01-02-버전관리-Git — DevOps 관점 전략
- 01-01-CI-CD-개념 — 전략과 파이프라인
마지막 업데이트: 2026-06-02