본문 바로가기
AI,Notion,GitHub/GitHub

Git-Flow

by 디선 2025. 2. 4.

1. 깃 플로우(Git Flow)란?

깃 플로우(Git Flow)는 Git을 활용한 브랜치 전략 중 하나로, Vincent Driessen이 제안한 워크플로우이다. 협업이 필요한 프로젝트에서 체계적인 브랜치 관리가 가능하도록 설계되었으며, 안정적인 코드 배포를 돕는다.

Git Flow는 장기적으로 유지보수해야 하는 프로젝트나 다수의 개발자가 협업하는 환경에서 특히 유용하다. 또한, 명확한 브랜치 전략을 통해 개발, 테스트, 배포 프로세스를 명확히 구분할 수 있다.

2. 주요 브랜치

Git Flow는 크게 5가지 주요 브랜치를 사용한다.

1) main 브랜치

  • 제품으로 배포되는 최종 안정 버전이 관리되는 브랜치

  • 직접 작업하지 않고 develop 또는 release 브랜치에서 병합됨

  • 배포 후 태그(tag)를 통해 버전 관리

2) develop 브랜치

  • 개발을 진행하는 기본 브랜치

  • 새로운 기능이 추가되거나 수정된 후 이 브랜치로 병합됨

  • 안정화된 상태에서 release 브랜치로 분기됨

3) feature 브랜치

  • 새로운 기능을 개발하는 브랜치

  • develop 브랜치에서 분기하여 개발 후 다시 develop으로 병합됨

  • 독립적으로 개발을 진행할 수 있으며, 팀원 간 충돌을 최소화함

  • 네이밍 규칙: feature/기능명 (예: feature/login-ui)

4) release 브랜치

  • 배포를 준비하는 브랜치

  • develop 브랜치에서 분기하며, 최종 버그 수정 및 테스트 진행 후 main 브랜치로 병합됨

  • main으로 병합 후 버전 태깅을 진행하고, 이후 develop 브랜치로 병합하여 릴리즈된 변경 사항을 반영함

  • 네이밍 규칙: release/x.x.x (예: release/1.0.0)

5) hotfix 브랜치

  • 긴급 버그를 수정하는 브랜치

  • main에서 분기하여 수정 후 maindevelop에 병합됨

  • 프로덕션에서 발생한 심각한 오류를 빠르게 수정할 때 사용됨

  • 네이밍 규칙: hotfix/버그명 (예: hotfix/login-crash)

3. Git Flow의 장점과 단점

장점

  • 체계적인 브랜치 전략으로 협업이 용이함
  • 안정적인 배포 프로세스 지원
  • 긴급 수정 대응이 용이함
  • 여러 기능을 병렬적으로 개발할 수 있어 효율적임
  • 배포 후에도 유지보수가 용이함

단점

  • 브랜치가 많아 관리가 복잡할 수 있음
  • 소규모 프로젝트에는 불필요할 수도 있음
  • 병합 과정이 많아 Git 사용이 익숙하지 않으면 어려울 수 있음
  • 지속적인 브랜치 관리가 필요하여 운영 부담이 증가할 수 있음

4. Git Flow를 사용할 때 고려할 점

  • 프로젝트 규모: 소규모 프로젝트에서는 Git Flow가 불필요하게 복잡할 수 있으며, GitHub Flow와 같은 간단한 전략이 더 적합할 수 있음.

  • 배포 주기: 빠른 배포가 필요한 경우 Git Flow보다는 더 단순한 브랜치 전략을 고려할 필요가 있음.

  • CI/CD 연계: 자동화된 배포 및 테스트 환경을 고려하여 적절한 브랜치 전략을 선택하는 것이 중요함.

  • 팀원의 Git 이해도: Git Flow를 효과적으로 사용하려면 팀원들이 브랜치 전략을 충분히 이해하고 있어야 함.

5. 마무리

Git Flow는 대규모 프로젝트에서 효과적인 브랜치 관리 기법으로 널리 사용된다. 하지만 프로젝트 규모나 팀의 상황에 따라 GitHub Flow, GitLab Flow 등의 대안도 고려할 수 있다. 상황에 맞는 브랜치 전략을 선택하는 것이 중요하다.

특히, 빠른 배포가 중요한 프로젝트에서는 GitHub Flow와 같은 단순한 브랜치 전략이 더 적합할 수도 있으며, CI/CD와의 연계를 고려하여 최적의 방식을 선택하는 것이 중요하다.

반응형