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