티스토리 뷰
1. 브랜치 전략이란?
- 브랜치(branch) 전략이란 효율적인 소스 코드 관리를 위해 브랜치를 어떻게 생성하고, 관리하며, 병합할지를 정하는 개발 방식
- 협업하는 팀원 간의 원활한 개발 흐름을 유지하고, 안정적인 배포를 보장하기 위한 필수적인 전략
2. 자주 쓰이는 브랜치 전략
1️⃣ Git Flow
🔹 개요: Git Flow는 기능 개발, 릴리즈, 핫픽스를 위한 명확한 브랜치 체계를 제공하는 전략이다. 협업이 필요한 프로젝트에서 많이 사용된다.

🔹 주요 브랜치:
- main 배포용, 안정적인 코드만 존재
- develop 기능 개발이 완료된 코드가 모이는 브랜치
- feature/* 개별 기능 개발 브랜치
- release/* 배포 준비를 위한 브랜치
- hotfix/* 긴급 수정 사항 적용 브랜치
🔹 흐름:
- feature 브랜치에서 기능 개발 → develop 병합
- develop에서 테스트 후 release 생성 → QA 진행 후 main에 병합 및 배포
- hotfix는 긴급 수정 후 main과 develop에 반영
🔹 장점: ✔️ 체계적인 브랜치 관리 가능 ✔️ 여러 기능을 동시에 개발 가능 ✔️ 긴급 패치 대응 가능
🔹 단점: ❌ 브랜치가 많아 복잡할 수 있음 ❌ 소규모 프로젝트에는 오버헤드가 클 수 있음
✅ 언제 사용하면 좋을까?
- 협업이 많고, 배포 주기가 긴 대규모 프로젝트
- 안정성이 중요한 기업용 서비스
2️⃣ GitHub Flow
🔹 개요: GitHub Flow는 단순하고 빠른 개발 프로세스를 제공하는 전략이다. CI/CD와 함께 사용하기 좋으며, GitHub에서 주로 사용된다.

🔹 주요 브랜치:
- main 배포 가능한 코드만 유지
- feature/* 새로운 기능 개발 브랜치
🔹 흐름:
- main에서 feature 브랜치 생성 → 기능 개발
- 완료 후 Pull Request(PR) 생성 → 코드 리뷰 진행
- main에 병합 후 자동 배포(CI/CD 활용)
🔹 장점: ✔️ 브랜치가 적어 관리가 쉬움 ✔️ 빠른 배포 주기에 적합 ✔️ CI/CD와 궁합이 좋음
🔹 단점: ❌ 긴급 수정 핫픽스 브랜치가 없어 직접 해결해야 함 ❌ 장기적인 개발 작업과 병행하기 어려움
✅ 언제 사용하면 좋을까?
- 스타트업, 소규모 프로젝트
- 배포 주기가 짧은 서비스
- CI/CD를 적극 활용하는 경우
3️⃣ GitLab Flow
🔹 개요: GitLab Flow는 GitHub Flow의 단순함과 Git Flow의 안정성을 결합한 전략으로, 환경별 브랜치를 유지하는 것이 특징이다.

🔹 주요 브랜치:
- main 운영 환경 코드
- develop 기능 개발 완료 후 테스트용
- feature/* 기능 개발 브랜치
- production, staging 배포 환경에 따른 브랜치
🔹 흐름:
- feature 브랜치에서 기능 개발 → develop 병합
- develop에서 테스트 후 staging으로 이동
- production으로 배포 후 운영 반영
🔹 장점: ✔️ 환경별 브랜치로 배포 및 테스트 용이 ✔️ GitHub Flow보다 안정적인 운영 가능 ✔️ 중간 테스트 및 QA 과정이 체계적
🔹 단점: ❌ GitHub Flow보다 복잡함 ❌ 환경 브랜치 관리가 필요함
✅ 언제 사용하면 좋을까?
- 중규모 이상 프로젝트
- 개발, 스테이징, 운영 환경이 분리된 프로젝트
4️⃣ Trunk-based Development
🔹 개요: Trunk-based Development(TBD)는 모든 개발자가 하나의 브랜치(주로 main)에 직접 커밋하는 방식이다. CI/CD와 연계하여 빠른 배포를 목표로 한다.

🔹 주요 브랜치:
- main 모든 개발자가 직접 푸시
- short-lived feature branches 짧게 유지되는 브랜치
🔹 흐름:
- main에서 직접 개발 (혹은 짧은 feature 브랜치 생성 후 병합)
- CI/CD를 통해 자동 테스트 및 배포
🔹 장점: ✔️ 개발 속도가 빠름 ✔️ 브랜치 관리 부담이 적음 ✔️ CI/CD와 완벽하게 연계 가능
🔹 단점: ❌ 대규모 협업 시 충돌 관리가 어려움 ❌ 코드 안정성을 유지하기 어려움
✅ 언제 사용하면 좋을까?
- 빠른 배포가 필요한 스타트업
- CI/CD가 완전히 구축된 프로젝트
3. 어떤 브랜치 전략을 선택해야 할까?
브랜치 전략은 프로젝트의 규모, 협업 방식, 배포 주기에 따라 다르게 선택한다.
Git Flow | 안정적, 체계적 | 복잡함 | 대규모 프로젝트, 긴 개발 주기 |
GitHub Flow | 간단, 빠른 배포 | 긴급 대응 어려움 | 스타트업, 소규모 프로젝트 |
GitLab Flow | 환경별 배포 용이 | 환경 브랜치 관리 필요 | 중규모 이상 프로젝트 |
Trunk-based Development | 빠른 개발, CI/CD 최적화 | 충돌 위험, 코드 안정성 문제 | 빠른 배포가 중요한 서비스 |
✔ 소규모 프로젝트 → GitHub Flow or Trunk-based Development
✔ 중규모 프로젝트 → GitLab Flow
✔ 대규모 프로젝트 → Git Flow
'Programming > Git' 카테고리의 다른 글
커밋 다른 브랜치로 옮기기 (0) | 2024.03.04 |
---|---|
.gitignore 반영 안 될 때 (0) | 2024.03.04 |
- Total
- Today
- Yesterday
- style-lint
- prettier
- react-query
- 이브와ICT멘토링
- 핀터레스트
- AI Challeng for Biodiversity
- 쓰로틀링
- 패키지 매니저
- sass
- eslint
- github
- 무한스크롤
- Tanstack-Query
- 최적화
- 네트워크
- 티스토리챌린지
- git
- 오블완
- 디바운싱
- Masonry 레이아웃
- 캡스톤디자인
- zustand
- Firebase
- React Query
- Network
- 알고리즘
- Tanstack Query
- Next.js
- web
- react
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |