도입
프로젝트를 진행할 때 적절한 브랜치 전략이 필요합니다. 유명한 전략으로 git-flow
, gitlab-flow
, github-flow
이 있습니다.
각각에 대해 간단히 살펴본 후 저에게 맞는 브랜치 전략을 선정하기로 했습니다. https://wiki.yowu.dev/ko/dev/Git/about-git-github-gitlab-flow 블로그에서 이해에 도움을 많이 받았습니다. 아래에 나오는 모든 예시 사진은 이 블로그에서 가져온 그림입니다.
git-flow
git-flow
는 가장 많은 기능을 포함한 브랜치 전략입니다.
- 완전히 안전한 코드의
main
브랜치 - 긴급한 수정을 위한
hotfix
브랜치 - 개발을 위한
develop
브랜치 - 세부적인 기능을 개발하는 데 사용되는
feature
브랜치 - 개발 후 품질 보증(QA, Quality Assuarance)를 위한
release
브랜치
git-flow
는 이렇게 명확한 브랜치 구조를 가져서 현재 상황을 쉽게 파악할 수 있고, 안정성과 복구, 관리와 제어에 용이합니다. 하지만 그러다보니 개발 속도가 느려지고 작은 변경에 대한 수정도 오래 걸립니다. 또한 브랜치가 많다보니, 병합에 의한 충돌의 가능성이 높아져 CI/CD에 적합하지 않습니다.
gitlab-flow
gitlab-flow
는 git-flow
보단 가볍고, github-flow
보단 무거운 브랜치 전략입니다.
- 안정적인 코드가 저장되는
main
브랜치 - 기능이 개발되는
feature
브랜치 - 다양한 환경에 맞는 코드를 관리하는
environment
브랜치, 여기에는development
,staging
,production
환경에 대한 브랜치가 있을 수 있습니다.
gitlab-flow
는 GitLab에서 제공하는 기능들과 밀접하게 연관되어 있습니다. 또한 다양한 환경에서의 배포와 관리를 중시합니다. 하지만 이번 프로젝트는 개인 프로젝트로, 다양한 환경을 고려하진 않습니다.
github-flow
github-flow
는 가장 가벼운 브랜치 전략입니다.
- 안전한 코드가 있는
main
브랜치 - 기능을 개발하는
feature
브랜치
이때 배포는main
브랜치에 병합된 코드를 즉시 배포합니다. 매우 단순한 브랜치 전략으로, CI/CD가 신속하게 이루어집니다. 프로젝트가 복잡해지거나, 여러 개발자가 협업하다 보면 브랜치 관리에 어려움을 가질 수 있습니다.
선정
저는 개인 프로젝트로 진행하기에 단순하며, 빠르게 개발 가능한 github-flow
를 따르기로 했습니다. 하지만 docs를 지속적으로 정리하고 관리하고 싶어, docs 브랜치를 따로 생성하여 지속적으로 사용하려 합니다.
* 이후 개발하면서 git-flow로 변경하게 되었습니다. https://dbwp031.tistory.com/78
'Project > Project_OurWorldCup' 카테고리의 다른 글
[Project/OurWorldcup] release v1.0 리뷰 (0) | 2023.10.06 |
---|---|
[Project/OurWorldcup] 로그인 OAuth2 + JWT - #1 도메인 추가 및 수정 (0) | 2023.09.21 |
[Project: OurWorldCup] API 명세서 작성하기 (0) | 2023.08.31 |
[Project: OurWorldCup] ERD 설계하기 (0) | 2023.08.31 |
[Project: OurWorldCup] Figma로 프로젝트 설계하기 (0) | 2023.08.31 |