[Github] 브랜치 관리 전략

이지민·2025년 10월 23일

깃허브

목록 보기
13/13

Git Flow 전략

Git Flow 전략이란?

  • main, develop, feature, hotfix, release 5개의 브랜치를 운영하는 전략
    • main 브랜치
    • develop 브랜치 (개발용)
    • feature 브랜치 (develop에 기능추가용)
    • hotfix 브랜치 (main 브랜치 버그해결용)
    • release 브랜치 (develop 브랜치를 main 브랜치에 합치기 전 최종 테스트용)

Git Flow 전략 도식화

  • develop 브랜치를 생성하여 main 브랜치에서 기존 진행 중인 프로젝트를 복사
  • 모든 개발은 develop 브랜치를 중심으로 진행
  • 신기능 개발은 develop 브랜치에서 새로운 feature 브랜치를 만들어 각각 개발 진행
    • 브랜치 작명은 feature/guild, feature/friend 와 같이 / 기호를 사용
  • 각 기능이 완성되면 develop 브랜치에 merge
  • main 브랜치와 바로 합치기에는 위험하므로 release 브랜치를 만들어 테스트 및 QA와 같은 작업 진행
  • release 브랜치에서 검증이 끝나면 완성된 코드를 main 브랜치에 merge
  • 후속 개발의 진행을 위해 develop 브랜치에도 release 브랜치의 코드를 반영
  • 긴급한 버그 픽스나 수정을 위해 hotfix 브랜치를 만들고 해당 브랜치에서 수정 진행
  • 수정이 완료되면 main 브랜치에 merge
  • develop 브랜치에도 merge하여 수정 사항 반영


Git Flow 전략의 장단점

  • 장점
    • 안정적으로 버전 별로 배포 가능 → 안정적인 서비스 운영
    • 각 브랜치의 용도가 명확하게 구분되어 있어 혼동이 적다.
    • 배포용 브랜치(main)와 기능 테스트용 브랜치(release)를 별도로 관리하기 때문에 잘못된 배포로 인한 서비스가 마비되는 현상이 적음
  • 단점
    • 브랜치 관리 규약이 복잡함
    • 자유로운 배포가 불가능하여 CI/CD 측면에서 적합하지 않을 수 있음



Trunk-based 전략

Trunk-based 전략이란?

  • main(trunk) 브랜치와 기능 추가용 feature 브랜치만 운영하는 전략
  • 기능 추가, 버그 픽스 등의 작업 필요하면 그때 그때 새로운 브랜치를 만들어서 작업
  • 작업이 완료되면 main 브랜치에 병합
  • main 브랜치에 있는 코드를 일정 주기 혹은 필요 시 마다 사용자에게 배포
  • 극도로 빠른 통합과 실험에 중점을 두는 브랜치 관리 전략

Trunk-based 전략의 장단점

  • 장점
    • 속도와 실험에 중심을 두는 관리 전략이므로 매우 빠른 배포 가능
    • Git Flow 전략에 비해 브랜치 개수가 적어 구조가 간단하고 직관적
  • 단점
    • 새로운 feature 브랜치를 만들 때, 해당 기능에 대한 명확한 작명이 필요
    • 테스트, 배포 자동화가 제대로 갖춰져 있지 않다면 사용할 수 없는 전략
    • 속도에 초점을 맞추기 때문에 리뷰 품질이 떨어질 수 있음
    • 별도의 테스트 브랜치 없이 바로 main 브랜치에 기능이 반영되므로 빌드가 깨지거나 merge conflict 등의 이유로 인해 서비스가 마비될 수 있음



Github Flow 전략

Github Flow 전략이란?

  • Git Flow 전략에서 develop, release, hotfix 브랜치를 제거한 형태를 취하는 브랜치 관리 전략
  • Trunk-based와 유사하게 단일 브랜치만을 사용하여 개발
  • Trunk-based와 차이점은 merge 전, PR을 중요하게 생각하는 점
    • 테스트 브랜치가 없는 대신, PR에서의 코드 리뷰가 굉장히 엄격한 편이다.
  • PR이 승인된 이후, main에 병합하여 사용자에게 배포
    • 속도보다는 협업에 초점을 두며 안정적으로 빠른 배포를 지향하는 브랜치 관리 전략

Github Flow의 장단점

  • 장점
    • PR로 코드 리뷰를 거치므로 보다 협업에 유리하며 높은 코드 품질을 기대할 수 있음
    • Git Flow 전략에 비해 브랜치 개수가 적어 구조가 간단하고 직관적
    • 속도와 안정성을 모두 일정 수준 이상 보장
  • 단점
    • CI/CD가 자동화되어 있지 않으면 사람이 직접 관련 업무를 진행해야 함
    • Trunk-based와 마찬가지로 main 브랜치를 바로 배포하기 때문에 잘못된 배포로 인한 위험성이 존재
    • 새로운 feature 브랜치를 만들 때, 해당 기능에 대한 명확한 작명이 필요
    • PR의 승인 절차가 느리면, 개발 속도가 느려질 수 있음

인용 자료 출처
(무료) 매우쉽게 알려주는 git & github
[밍글] Github 브랜치 전략 도입하기
매일 배포하는 팀이 되는 여정(1) — 브랜치 전략 개선하기
Git Flow VS Github Flow

profile
모든 것을 다 기억할 수는 없기에 기록합니다.

0개의 댓글