본문 바로가기
쿤즈 Dev/Git

[Git Flow] Git Flow 브랜치 모델

by Koonz:) 2024. 6. 15.
728x90

안녕하세요. 지난 포스팅에서는 Git Flow 소개와 기본개념, 그리고 Git Flow 설치 및 설정을 하는 방법에 대해 알아보았어요. Git이 우선이고 사용을 조금 더 쉽고 편리하게 하기 위한 툴이 Git Flow입니다.

 

이번 글에서는 Git Flow의 브랜치 모델에 대해 자세히 알아보겠습니다. Git Flow는 다양한 브랜치를 사용해 개발 프로세스를 체계적으로 관리할 수 있게 도와줍니다. 각 브랜치는 각각의 역할을 가지고 있으며, 이를 통해 팀 전체가 일관된 방식으로 개발 작업을 진행할 수 있습니다.

 

그럼 Git Flow 브랜치 모델에 대해서 알아볼게요.


Git Flow 브랜치 모델

Git Flow 브랜치 모델에 자주 사용되는 브랜치는 크게 5가지가 있습니다. master, develop, feature, release, hotfix 브랜치입니다. 각 브랜치들은 어떤 역할을 담당하는지 알아볼게요.


master 브랜치

master 브랜치는 배포 준비가 완료된 안정적인 코드를 관리하는 브랜치입니다. Github를 사용해 보셨다면 master 브랜치라는 것이 익숙하실 수도 있습니다. 이 브랜치는 운영 배포가 되는 브랜치입니다. 따라서 항상 안정적인 코드만 존재해야 해요.

master 브랜치는 다음과 같은 특징이 있습니다.

 

  • 배포 준비가 완료된 코드만 포함한다.
  • 각 커밋은 새로운 배포 버전을 의미한다.
  • hotfix 브랜치와 release 브랜치에서 병합된다.

develop 브랜치

develop 브랜치는 최신 개발 버전을 관리하는 브랜치입니다. 새로운 기능과 변경 사항이 이 브랜치로 통합되죠. 개발자들은 이 브랜치를 기준으로 새로운 기능을 개발하고, 그 결과물을 병합합니다.

 

develop 브랜치는 다음과 같은 특징이 있습니다.

 

  • 최신 개발 상태를 반영합니다.
  • feature 브랜치와 release 브랜치에서 병합됩니다.
  • 새로운 기능과 버그 수정 사항이 포함됩니다.

feature 브랜치

feature 브랜치는 새로운 기능을 개발할 때 사용되는 브랜치입니다. 이 브랜치는 develop 브랜치에서 분기되어 새로운 기능 개발을 완료한 후 다시 develop 브랜치로 병합됩니다. 이를 통해 각 기능이 독립적으로 개발되고 테스트될 수 있습니다.

 

feature 브랜치는 다음과 같은 특징이 있습니다.

 

  • develop 브랜치에서 분기됩니다.
  • 기능 개발이 완료되면 develop 브랜치로 병합됩니다.
  • 이름 규칙은 `feature/[feature name]` 으로 만듭니다. (이 부분은 약속이므로 팀에 따라 수정될 수 있습니다.)

release 브랜치

release 브랜치는 배포 준비를 위한 브랜치입니다. 이 브랜치는 develop 브랜치에서 분기되어 최종 테스트와 버그 수정을 거친 후 master 브랜치와 develop 브랜치로 병합됩니다. 이를 통해 배포 준비 과정에서 새로운 기능이 추가되는 것을 방지할 수 있습니다.

 

release 브랜치는 다음과 같은 특징이 있습니다.

 

  • develop 브랜치에서 분기됩니다.
  • 배포 준비가 되면 master와 develop 브랜치로 병합됩니다.
  • 이름 규칙은 `release/[release version]` 으로 만듭니다.

 


hotfix 브랜치

hotfix 브랜치는 긴급 버그 수정을 위해 사용되는 브랜치입니다. 이 브랜치는 master 브랜치에서 분기되어 긴급한 버그를 수정한 후 master 브랜치와 develop 브랜치로 병합됩니다. 이를 통해 배포된 버전에서 발견된 버그를 신속하게 수정할 수 있습니다.

 

hotfix 브랜치는 다음과 같은 특징이 있습니다.

 

  • master 브랜치에서 분기됩니다.
  • 버그 수정이 완료되면 master와 develop 브랜치로 병합됩니다.
  • 이름 규칙은 `hotfix/[hotfix description]` 으로 만듭니다. (때에 따라 배포 버전으로 만들 수도 있습니다.)

Git Flow 브랜치 모델의 장점

Git Flow 브랜치 모델은 소프트웨어 개발에서 많은 장점을 제공합니다. 그중에서도 주요한 몇 가지를 살표 보겠습니다.

 

명확한 역할 분담

각 브랜치가 명확한 역학을 가지고 있어, 코드 관리가 용이합니다. 개발자는 어떤 브랜치를 사용해야 하는지 쉽게 알 수 있습니다.

 

효율적인 협업

여러 개발자가 동시에 작업할 때 충동을 최소화할 수 있습니다. 기능 개발, 배포 준비, 버그 수정이 독립적으로 진행됩니다.

 

안정성 유지

master 브랜치에는 항상 안정적인 코드만 존재하므로, 배포 시 안정성을 보장할 수 있습니다.

 

유연한 개발 프로세스

새로운 기능을 추가하거나 버그를 수정할 때 유연하게 대응할 수 있습니다. 각 브랜치가 독립적으로 존재하므로 개발 속도를 높일 수 있습니다.


Git Flow 브랜치 모델의 단점

Git Flow 브랜치 모델에도 몇 가지 단점이 있을 수 있습니다.

 

복잡성 증가

프로젝트 규모가 작거나 팀원이 적은 경우, Git Flow의 복잡한 브랜치 구조가 오히려 부담이 될 수 있습니다.

 

초기 설정의 어려움

Git Flow를 처음 설정하고 사용하는 데 시간이 걸릴 수 있습니다. 특히 Git에 익숙하지 않은 개발자에게는 어려울 수 있습니다.

 

긴 병합 주기

많은 브랜치를 사용하는 만큼, 병합 과정에서 충돌이 발생할 가능성이 높아집니다. 이를 해결하는 데 시간이 걸릴 수 있습니다.


이번 글에서는 Git Flow의 브랜치 모델에 대해 자세히 알아봤습니다. 각 브랜치의 역할과 특징을 이해하고, 이를 실제 프로젝트에 적용하면 코드 관리가 훨씬 수월해질 것입니다. Git Flow는 팀 전체가 체계적으로 협업할 수 있도록 도와주는 강력한 도구입니다. 다음 챕터에서는 Git Flow를 사용한 실제 예제와 함께 기능 브랜치를 생성하고 병합하는 방법을 더 자세히 알아보겠습니다.

 

이 글을 통해 Git Flow의 기본 개념을 이해하고, 실습을 통해 실제 프로젝트에 적용하는 방법을 배우게 될 것입니다. 다음 글에서는 Git Flow를 실제 어떻게 사용하고 어떻게 동작하는지 자세히 알아보겠습니다.

 

이전 글 보기

2024.06.08 - [쿤즈 DevTool/Git] - [Git Flow] Git & Git flow 소개

2024.06.08 - [쿤즈 DevTool/Git] - [Git Flow] Git Flow 설치 및 설정

댓글