멈추지 않는 기록

"GitFlow 가이드: 협업을 혁신하는 브랜치 관리" 본문

웹 개발/참고 지식

"GitFlow 가이드: 협업을 혁신하는 브랜치 관리"

pangil_kim 2025. 2. 12. 05:42
728x90
서론

 

소프트웨어 개발에서 효율적인 버전 관리 전략은 팀의 협업과 프로젝트의 성공에 중요한 역할을 한다. 다양한 팀이 동시에 작업할 때 발생할 수 있는 충돌을 최소화하고, 각 기능의 개발 및 배포 과정을 원활하게 하기 위해 적절한 전략을 선택하는 것이 필요하다.

 

이번 포스팅에서는 GitFlow와 Trunk-based 전략에 대해 정리해보겠다. 각 전략의 개념과 특징, 예시 상황을 통해 효율적인 버전 관리 방식을 이해할 수 있을 것이다.

 

 

 

GitFlow

 

1) 개념 설명

 

(1) GitFlow의 5개 브랜치 전략 (by Vincent Driessen)

  • main: 최종 배포 버전을 관리하는 브랜치.
  • develop: 개발 중인 기능들을 통합하는 브랜치.
  • feature: 신기능 개발을 위한 브랜치.
  • release: 배포 전 테스트를 위한 브랜치.
  • hotfix: 긴급 수정을 위한 브랜치.

(2) 신기능 개발 프로세스

  1. feature 브랜치 생성: develop 브랜치에서 feature 브랜치를 생성 후 기능 개발을 진행한다.
  2. 병합: 개발이 완료되면 feature 브랜치를 develop에 병합한다.
  3. 배포 준비: 배포 준비가 되면 release 브랜치를 생성하여 테스트를 수행한 후 develop 및 main 브랜치에 병합한다.

(3) 긴급 수정 프로세스

  1. hotfix 브랜치 생성: main 브랜치에서 hotfix 브랜치를 생성하여 수정 작업을 진행한다.
  2. 병합: 수정 후 hotfix 브랜치를 develop 및 main 브랜치에 병합한다.

(4) 특징

  • 장점: 안정적인 버전 관리 및 배포가 가능하다.
  • 단점: CI/CD 환경에서는 비효율적일 수 있다.
  • 참고: 반드시 release 브랜치를 사용할 필요는 없다.

2) 예시 상황

  • 신기능 개발: 신규 로그인 기능을 추가해야 하는 경우, develop 브랜치에서 feature/login 브랜치를 생성하여 작업한다.
  • 배포 준비: 로그인 기능 개발이 완료되면 release 브랜치를 생성해 테스트를 진행한 후 develop 및 main 브랜치에 병합한다.
  • 긴급 수정: 배포된 서비스에서 심각한 버그가 발견된 경우, main 브랜치에서 hotfix/bug-fix 브랜치를 생성하여 수정 후 main과 develop에 병합한다.

 

 

 

Trunk-based

 

1) 개념 설명

(1) Trunk-based 전략

  • 브랜치를 최소화하고 main 브랜치 중심으로 관리한다.

(2) 주요 방식

  1. feature 브랜치 생성: main 브랜치에서 feature 브랜치를 생성하여 기능을 구현한다.
  2. 병합: 구현 완료 후 feature 브랜치를 main 브랜치에 병합한다.
  3. 배포: 사용자에게 main 브랜치에서 배포된 버전을 제공한다.

(3) 특징

  • 장점: 코드가 한 곳(main 브랜치)에 모여 있어 관리가 용이하다.
  • 단점: 잦은 테스트와 빠른 피드백이 필요하다.

2) 예시 상황

  • 신기능 개발: 쇼핑몰에서 상품 리뷰 기능을 추가하는 경우, main 브랜치에서 feature/review 브랜치를 생성하여 작업한다.
  • 배포: 리뷰 기능 개발이 완료되면 바로 main 브랜치에 병합하여 테스트 후 배포한다.
  • 버그 수정: 배포된 서비스에서 오류가 발견되면, main 브랜치에서 직접 수정 후 바로 배포한다.

 

 

 

 


 

결론

GitFlow와 Trunk-based 전략은 각기 다른 상황과 요구에 맞춰 선택할 수 있는 강력한 버전 관리 방법이다. GitFlow는 복잡한 프로젝트에서 안정적인 버전 관리를 제공하는 반면, Trunk-based는 빠른 개발과 배포를 가능하게 한다. 각 전략의 특징을 이해하고, 프로젝트에 적합한 방식을 선택하여 효과적인 협업을 이끌어내자.

 

 

 

참고 자료
728x90