| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 깃플로우
- springboot 크롤링
- llm연동
- 자바스크립트
- 자바스크립트기초
- 브랜치관리전략
- 스프링부트
- rest api
- CRUD
- SpringBoot
- 모던 자바스크립트
- 깃허브
- modelcontextprotocol
- 회원관리
- github
- mcpserver
- restful
- Github action
- selenium
- mcp
- 개발자튜토리얼
- springframework
- Nan
- CI/CD
- 네이버 크롤링
- spring
- gitflow
- SQLD
- 백엔드개발
- springboot크롤링
Archives
- Today
- Total
JUNEee
[Git] Git Flow 란? 브랜치 전략 세우기 본문
반응형

Git Flow(깃 플로우)
들어가기 전..
깃 플로우 전략을 이해하기 위해서는 먼저 Git 관련 지식들이 선행되어 있어야 한다.- branch, commit, merge 등 git에 대한 기본 개념
- git branch, git add, git checkout, git push 등 기본적인 깃 사용 명령어
- 코드 리뷰 등 git을 사용한 전반적인 개발 프로세스에 대한 이해
Git Flow 란 무엇인가?
git flow 는 한마디로 브랜치 관리 전략이다. 만약 여러분이 git 을 사용하여 여러사람과 프로젝트를 진행 하는데 팀원들 끼리의 약속 없이 마구잡이로 브랜치를 생성하고, 병합하고, 푸시 한다면 코드가 뒤죽박죽 섞이거나 충돌이 발생하여 이를 수정하는데에 많은 시간이 소요될 것이며 그만큼 서비스 배포도 지연될 것이다..
이러한 혼란스러운 상황을 예방하고자 git flow 라는 브랜치 관리 전략을 사용하여 일정하게 브랜치를 관리하고 병합하고 배포하는 것이다
(git flow 이외에도 여러 전략들이 존재한다 github flow, trunk based 등)
Git Flow 가 제시한 브랜치 전략
총 5가지의 브랜치가 존재하며 각각의 역할이 다르다!- 주 브랜치
- main/master : 해당 브랜치는 실제 운영 환경에 배포될 수 있는 프로젝트 파일이 존재하여야 함을 가정한다
- develop : 다음에 배포될 것을 개발하는 브랜치로 개발에 기준이 되는 브랜치 이다
- 보조 브랜치
- feature : 새로운 기능을 추가해야 할 때 develop 브랜치에서 분기하여 개발하기 위해 사용한다
- release : develop 브랜치에서 완성된 프로젝트를 바로 main/master 브랜치로 병합하지 않고 release 브랜치를 만들어 테스트 후 병합한다
- hotfix : 실제 서비스 환경에서 급히 수정해야할 상황이 발생하였을 때 main/master 브랜치에서 분기하여 수정하기 위해 사용한다
Git Flow 의 장단점?
<장점>- feature 브랜치를 사용하여 여러 개발자가 서로 방해받지 않고 기능을 동시에 개발할 수 있다
- 다양한 버전에서 프로젝트를 관리 할 수 있다. 예를 들면 실제 서비스 버전 / 테스트 버전 등..
- 코드 병합 전 검토와 승인 과정이 포함되어있어 코드 품질이 보장된다
<단점>
- 새로운 팀이 학습하기에는 다소 복잡한 패턴 이므로 어느정도의 학습 곡선이 존재한다
- git flow 특성상 많은 브랜치를 사용하기 때문에 유지 관리가 부담스러울 수 있다
- git flow 는 엄격한 규칙을 따라야 하기 때문에 빠른 개발과 배포에는 적절하지 않다
- Git Flow 흐름
다음은 git flow의 개발 과정을 나타낸 그림 이다
시간의 흐름대로 위에서 아래로 천천히 브랜치를 따라가보면 된다
반응형