브랜치 전략
브랜치 전략은 소프트웨어 개발에서 코드 변경을 효과적으로 관리하기 위한 방법입니다. 협업을 원활하게 하고, 배포나 테스트 과정에서의 혼란을 줄이기 위해 꼭 필요합니다. 주요 브랜치 전략에는 다음과 같은 것들이 있습니다:
1. Git Flow
복잡하지만 체계적인 전략으로, 릴리즈 주기가 명확한 프로젝트에 적합합니다.
main: 실제 배포(프로덕션)되는 코드
develop: 다음 릴리스를 준비하는 브랜치
feature/: 기능 개발용 브랜치 (ex. feature/login)
release/: 배포 전 테스트 및 안정화 브랜치
hotfix/: 긴급 수정 브랜치
> 사용 예시: main ← hotfix/bugfix
develop ← feature/login
2. GitHub Flow
단순하고 빠른 배포 주기를 가진 프로젝트에 적합. 특히 CI/CD가 잘 갖춰진 환경에 적합.
main: 항상 배포 가능한 상태 유지
feature branch: main에서 파생, PR을 통해 병합
CI에서 테스트 → 리뷰 후 merge
> 사용 예시: main ← PR ← feature/new-ui
3. GitLab Flow
Git Flow와 GitHub Flow의 중간. 이슈 기반 브랜치 전략을 사용하며, 환경(예: staging, production) 중심으로 관리 가능.
main or production
pre-production, staging
issue/bugfix-123 같은 브랜치
> 이슈와 연동되는 점이 특징입니다.
4. Trunk-Based Development
모든 개발자가 하나의 main 브랜치(trunk)에서 작업하고, 짧은 시간 안에 merge.
단기 브랜치만 허용 (1~2일)
feature flags를 자주 사용
> 빠른 배포와 높은 자동화가 가능한 환경에서 효과적입니다.
추천 전략은?
팀 규모 릴리즈 주기 추천 전략
소규모 수시 배포 GitHub Flow
중대형 주기적 배포 Git Flow
DevOps 기반 자동화 중심 Trunk-Based
이슈 중심 개발 다양한 환경 분리 GitLab Flow