Dev/VCS

Git 브랜치 전략

dragonhyeon 2024. 12. 12. 17:20
728x90
반응형

Git 브랜치 전략

브랜치 전략이란 효율적인 협업과 코드 관리를 위해 버전 관리 시스템 (Version Control System, VCS) 에서 브랜치를 생성하고 병합하는 체계를 정의한 방법론입니다. 대표적인 버전 관리 시스템중 하나인 Git 에서 자주 사용되는 브랜치 전략은 다음과 같습니다.

Git Flow

주요 브랜치

  • main: 항상 배포 가능한 상태로 유지하며, 운영 환경에 배포된 버전을 관리
  • develop: 기능 개발 및 다음 릴리스를 준비하는 기본 브랜치

작업 브랜치

  • feature/*: 새로운 기능 추가를 위한 브랜치
    • develop 에서 분기하여 작업하며, 완료 후 다시 develop 으로 병합
    • 예: feature/user-auth
  • release/*: 릴리스를 준비하기 위한 브랜치
    • develop 에서 분기하여 테스트 및 최종 수정을 진행하며, 완료 후 main 과 develop 으로 병합
    • 예: release/v1.2.0
  • hotfix/*: 운영 환경에서 긴급하게 발생한 문제를 수정하기 위한 브랜치
    • main 에서 분기하여 작업하며, 완료 후 main 과 develop 으로 병합
    • 예: hotfix/critical-bug-fix

특징

  • 장점: 복잡한 프로젝트에서 안정성과 버전 관리를 체계적으로 수행 가능
  • 단점: 브랜치가 많아 관리가 복잡하고, 긴 작업 주기에 적합

GitHub Flow

주요 브랜치

  • main: 항상 배포 가능한 상태를 유지하며, 모든 코드가 여기에 병합

작업 브랜치

  • 모든 작업은 main 에서 분기된 작업 브랜치에서 진행
    • 작업이 완료되면 main 으로 병합
    • 예: feature/add-user-profile

특징

  • 장점: 간단하고 직관적이며, CI/CD 를 활용한 지속적 배포와 잘 맞음
  • 단점: QA 단계가 적어, 대규모 프로젝트에서 관리가 어렵거나 버그가 발생할 가능성이 있음

Trunk-Based Development

주요 브랜치

  • main: 단일 브랜치로, 모든 개발 작업 및 배포를 관리

작업 브랜치

  • 대부분 main 하나만 사용하거나, 임시 브랜치를 사용 후 빠르게 main 으로 병합
    • 브랜치 이름은 작업 내용을 나타내도록 간결하게 작성
    • 예: fix-button-alignment

특징

  • 장점: 배포 주기를 극단적으로 단축 가능하며, CI/CD 를 활용한 지속적 배포와 잘 맞음
  • 단점: 대규모 팀에서 충돌 관리가 어렵고, 코드 품질 관리가 어려울 수 있음
728x90
반응형

'Dev > VCS' 카테고리의 다른 글

Git 협업 방법 clone, fork  (2) 2024.12.17
Git 원격 브랜치, 원격 추적 브랜치, 트래킹 브랜치  (4) 2024.12.17
Git 스테이징 영역  (2) 2024.12.13
git pull vs git fetch  (2) 2024.12.13
Conventional Commits  (1) 2024.12.10