Gitflow에서 release와 master 브랜치의 차이

https://ujuc.github.io/2015/12/16/git-flow-github-flow-gitlab-flow/

gitflow에서 도대체 왜 release 브랜치가 존재할까? 내 생각에 release 브랜치는 소규모 조직의 개발자에게는 큰 의미없다. gtiflow가 의미있는 조직은 컴파일된 무언가(executable binary, jar, kernel, …)를 떨구는 거대한 조직에서 쓰기 적합하다.

예를 들어, 애플이 아이폰을 내일 출시한다고 가정해보자. 애플의 개발자들은 내일 출시될 아이폰에 탑재될 iOS를 오늘까지 개발할까? 당연히 그렇지 않다. 애플은 아이폰을 생산한 뒤 iOS가 설치된 채로 어느정도 재고를 생산한 다음에서야 제품을 출시할 수 있다. 그렇다면 첫 아이폰을 생산하여 포장하는 시점 전까지 iOS의 버그 수정이 (바라건데) 모두 끝나야한다. 따라서, 새로운 feature를 추가하는 일 없이-즉, 지금까지 개발된 feature만을 가지고-버그 수정만을 수행하는 기간과 브랜치가 필요하고, 그 브랜치가 곧 release 브랜치다.

웹 개발자와 iOS 시스템 개발자는 배포의 주기가 매우 다르다. 특히나 규모가 작은 웹 서비스들은 release와 master 브랜치 사이의 큰 차이를 찾기 힘든 경우가 더 많다. 그런 조직들은 gitflow가 자신들에게 적합하지 않다고 판단했고, 새로운 flow를 만들어냈다. 위 링크에서 설명된 github-flow와 gitlab-flow가 바로 그것이다.

Posted in dev

Leave a Reply