Etc

브랜치 전략

kikiplus 2025. 5. 26. 21:58
반응형

브랜치 전략은 소프트웨어 개발에서 코드 변경을 효과적으로 관리하기 위한 방법입니다. 협업을 원활하게 하고, 배포나 테스트 과정에서의 혼란을 줄이기 위해 꼭 필요합니다. 주요 브랜치 전략에는 다음과 같은 것들이 있습니다:



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






반응형