| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 캐글
- python 기초
- ASR
- 에이전트
- 알고리즘
- 소프트웨어 개발
- TTS
- dementional reduction
- 객체지향
- 랭그래프
- Transformer
- 데이터 시각화
- CNN
- python기초
- UMAP
- RNN
- 머신러닝
- CLIP
- LangGraph
- 기초
- 자연어처리
- 데이터엔지니어
- 정보처리기사
- 딥러닝
- 힙정렬
- 트랜스포머
- RDBMS
- SQL
- 생성형 인공지능
- Python
Archives
- Today
- Total
수달이네 기술 블로그
5. 깃 브랜치 전략 본문
Git 브랜치 전략
여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow
- Git의 유연한 구조를 활용 개발자들의 혼란 감소시키도록 소스코드를 관리
- 브랜치 생성에 규칙을 만들어 협업을 유연하게 만드는 방법론
브랜치 전략이 없을때?
- 어떤 브랜치가 최신 브랜치지?
- 어떤 브랜치를 끌어와서 개발해야하지?
- 어디에 push를 보내야하지?
- hotfix를 해야하는데 어떤 브랜치를 기준으로 수정하지?
- 배포버전은 어떤걸 고랄야하지?
Git Flow

브랜치 종류
- feature, develop, release, hotfix, master
메인 브랜치
- master, develop
- 항시 유지되는 브랜치
보조 브랜치
- feature, release, hotfix
- 병합시 사라지는 보조 브랜치
GitFlow에서의 브랜치별 역할

master

- 라이브 서버에 제품으로 출시되는 브랜치
- 배포 가능한 상태만을 관리하는 브랜치임.
develop
- 다음 출시 버전을 대비해 개발하는 브랜치
- 즉, 평소엔 해당 브랜치에서 개발함.
feature(develop브랜치에서 뻗어나옴)

- 추가 기능을 개발하는 브랜치
- develop브랜치로 병합됨.
release(develop에서 뻗어나옴)

- 다음 버전 출시를 준비하는 브랜치
- 즉, 배포를 위한 최종 버그 수정을 개발을 수행하는 브랜치
- develop브랜치를 release브랜치로 옮기고 QA, 테스트를 진행하고 master브랜치로 병합
- 병합시 버전태그를 달고 추가
- 수정 사항은 develop에도 적용함. 따라서 master, develop모두 병합
hotfix(master에서 뻗어나옴)

- master브랜치에서 발생한 버그를 수정하는 브랜치
- 해당 내용이 master(tag로 기록)와 develop모두에 적용하기 위해 병합한다.
- 1회성 브랜치로 버그 해결시 보통 브랜치를 제거함.
전략 흐름 - 신규 기능 개발
- master브랜치에서 발생한 버그를 수정하는 브랜치
- 해당 내용이 master(tag로 기록)와 develop모두에 적용하기 위해 병합한다.
- 1회성 브랜치로 버그 해결시 보통 브랜치를 제거함.
전략 흐름 - 신규 기능 개발

- develop브랜치로부터 신규 개발할 기능을 위한 feature브랜치를 생성
- 해당 브랜치에서 작업후 develop브랜치로 병합
전략흐름 - 배포

- feature브랜치가 모두 develop브랜치로 병합된 상태에서 release브랜치를 생성
- 해당 브랜치에서 오류를 확인하고, 발견할 경우 오류를 수정
- 테스트 통과 시 master브랜치로 병합 + develop브랜치에도 병합
전락흐름 - 사후 관리

- 버그가 발생했을 경우 hotfix브랜치를 생성해 디버깅 진행
- 디버깅 후 develop과 master에 모두 병합해 동기화
GitHub Flow전략

흐름
1. 브랜치 생성
체계적인 분류가 없으므로 브랜치 명으로 의도를 드러냄.(새 브랜치 생성 → 뭘 개발할 브랜치임)
- master브랜치는 항상 최신 상태이며, 안정적인 상태로 배포되므로 엄격한 규칙 적용
- 새로운 브랜치는 항상 master브랜치에서 갈라져 나와야함.
- feature브랜치나 develop브랜치가 없음.
- 기능마다 브랜치를 따서 사용함.
2. 개발 커밋 푸쉬
개발을 진행하면서 커밋을 남김
- 커밋을 최대한 상세하게 적어줘야한다.
- 원격저장소에 수시로 push해줌
- 다른사람도 확인할 수 있도록 함.
- 작업 내용이 사라져도 원격 저장소 코드를 받아 작업 가능함
3. PR생성 및 자동화된 테스트
피드백이나 도움이 필요할 때, 병합 준비가 완료되었을 때 pr생성
- 생성시 자동화된 테스트 실행
4. 리뷰 토의
브랜치 쪽에 합쳐지는 것은 라이브 서버 배포이므로 상세한 리뷰 토의가 이루어져야한다.
- 통과 후 코드 리뷰
5. Master로의 병합
코드 리뷰 및 토의 후 master로의 병합 진행
- 자동으로 라이브 서버로 배포됨.
사용처
1개월 이상의 긴 호흡으로 개발하여 주기적으로 배포, 테스트, hotfix등을 수행할 수 있는 여력이 있는 팀이면 gitflow
수시로 배포되어야할 필요가 있는 서비스를 지속적으로 테스트하고 배포하는 팀이라면 github flow(간단)
'학교공부 > 오픈소스SW' 카테고리의 다른 글
| 4. 브랜치 병합과 충돌 (0) | 2026.04.22 |
|---|---|
| 3. 소스트리(GUI버전관리) + 깃허브 상세 (0) | 2026.04.22 |
| 2. Git, Github 개념 (1) | 2026.04.21 |
| 1. 오픈소스의 개념, 역사, 라이센스 (0) | 2026.04.21 |