DevOps/Git

Git-flow를 활용한 협업 방식

SeungbeomKim 2022. 12. 28. 16:31

이번 Umc 3기에서, 프론트엔드(Android, IOS) 학우들과 함께 협업을 하기 위해서 Git-flow를 이용해 팀프로젝트를 꾸려 나갈 것 같습니다.

우선, Git-flow를 왜 사용하는지와 구성요소, 그리고 기존 Git과의 차이점과 사용하였을 때의 장점들을 설명드리려고 합니다.

 

 Git-flow를 사용한 Branch 전략

 

Git-flow란 무엇인가 ?

  • branch를 어떻게 운영할 것인지에 대한 유용한 사례
  • 이러한 사례를 쉽게 실수없이 운영할 있게 도와주는 프로그램

으로 볼 수 있습니다. 현재 Git으로 개발할 때, 표준으로 사용되고 있는 방법론이라고도 볼 수 있습니다.

 

Git-flow에는 5가지의 branch가 존재합니다.

  • master : 제품으로 출시될 수 있는 branch, 제품을 배포하는 기준 branch이다.
  • develop : 개발 branch로서, 사람들이 작업한 기능들을 merge 시키는 branch이다.
  • feature : 단위(unit) 기능들을 개발하는 branch로서, 작업한 기능 검증이 완료되면 develop branch로 merge 하는 branch이다.
  • release : 배포를 위해 master branch로 보내기 전에, 먼저 QA(품질 검사, 검증)을 하기 위한 branch이다. (오류 방지)
  • hotfix : master branch로 배포했을 때, 버그가 생기면 긴급하게 수정할 수 있는 branch이다. 

주요 branch는 master, develop이고, 나머지는 개발과 배포 그리고 검증을 위한 부가적인 branch로 볼 수 있다.

 

Git-flow 흐름도

  1.  master branch에서 start
  2.  동일한 branch를 develop에도 생성한다. 개발자들은 develop branch에서 개발을 진행한다.
  3.  개발을 진행하다가, 단위 기능(ex) 로그인, 댓글 작성 및 수정..) 구현이 필요하면 개발자들은 각자 develop branch에서 feature branch에서 각각의 단위 기능들을 구현한다.
  4. 완료된 feature branch는 검토를 거쳐 다시 develop branch에 merge 한다.
  5. 이제 모든 기능들을 구현했으면, develop branch를 release branch로 만든다. 그리고 QA를 통해 오류 수정을 한다.
  6. 모든 것이 완료되면 이제 release branch를 master, develop branch로 보낸다. master branch에서는 버전 추가를 위해 태그를 생성하고 배포한다.
  7. 배포를 하고 난 이후, 오류를 발견하게 되면 hotfix branch 만들어 이를 통해 긴급 오류를 수정하고, 바로 수정 배포를 한다.

React, Bootstrap과 같이 대규모 개발과 같은 경우에는 기존 Fork와 Pull request를 통해 개발한다.

 

Fork는 Branch와 비슷하지만, 프로젝트 주최자의 Repository를 통째로 복제해서 개발을 진행하는 방식입니다. 이를 통해 개발자들이 기능 구현을 하고 Pull Request를 던져 주최자와 reviewer가 이를 확인하고 오류가 없고, 가독성이 좋은 코드라고 판단되면 만든 기능들을 Merge 해준다.

 

기존 Fork, Pull Request 방식과 다른 Git-flow 방식은 관리하고, 신경 써야 할 branch들은 더욱 많아졌지만, 그만큼 체계적인 branch 전략이라고 생각합니다. branch를 세분화해서 개발환경을 구축한다면, 그만큼 안정성에서는 뛰어날 것이라고 판단됩니다. 우선적으로 개발 유형이 소규모인지, 대규모인지 잘 생각해보고, 이에 걸맞게 자신만의 branch 전략을 구축하는 것이 중요하다고 생각합니다. Git-flow 설치 및 사용법을 개발을 하면서 숙지하는 방향으로 가려고 합니다.

 

 

<참고 자료>

https://techblog.woowahan.com/2553/

 

우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합

techblog.woowahan.com

https://ux.stories.pe.kr/183

 

Git Flow 개념 이해하기

Git으로 협업을 하는 것이 매우 좋다라고는 알고 있으나 실제로 서로 다른 그 사람들이 어떻게 각자 작성한 코드를 합치고 배포하는지가 궁금해 졌습니다. Git-flow 이해하기 Git-flow는 Git이 새롭게

ux.stories.pe.kr