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
에서 분기하여 수정 후main
과develop
에 병합됨프로덕션에서 발생한 심각한 오류를 빠르게 수정할 때 사용됨
네이밍 규칙:
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와의 연계를 고려하여 최적의 방식을 선택하는 것이 중요하다.
'AI,Notion,GitHub > GitHub' 카테고리의 다른 글
[GITHUB]Actiond을 통한 Android 자동화 (0) | 2025.02.23 |
---|---|
Library 배포용 Apache License 받기(Android Studio) (0) | 2025.02.18 |