GitHub Flow로 운영하는 웹 개발 브랜치 전략

GitHub Flow의 master·feature 브랜치 구조와 PR, 코드 리뷰, CI/CD 기반 배포 흐름을 실무 관점에서 정리합니다.

2026-08-14 · 최초 발행 2025-05-23

배포 가능한 master를 중심에 두는 방식

GitHub Flow는 웹 애플리케이션과 같이 기능 추가·수정이 빈번한 프로젝트에서 사용하는 Git 브랜치 운영 방식이다. 복잡한 브랜치 계층 대신 배포 기준이 되는 master와 작업을 분리하는 feature 브랜치에 집중한다.

이 구조는 CI/CD와 연결하기 쉽고, 작은 변경을 빠르게 검토해 반영하는 흐름을 만든다. 변경 단위가 작을수록 PR을 통한 피드백도 빨라진다.

브랜치는 master와 feature로 나뉜다

master는 하나로 유지하며 언제든 프로덕션에 배포할 수 있는 상태여야 한다. 실제 배포되는 코드는 모두 이 브랜치에서 나온다.

feature 브랜치는 기능 추가, 버그 수정, 코드 변경을 위해 master에서 분기한다. 여러 개를 동시에 만들 수 있지만, 각 브랜치에는 하나의 의도만 담는다. 작업이 끝나면 검토와 테스트를 거쳐 다시 master에 병합한다.

변경은 브랜치에서 시작해 배포로 돌아온다

Master 브랜치Feature 브랜치 생성코드 작성 커밋Pull Request 생성코드 리뷰 논의자동화된 테스트 실행Master에 병합배포

먼저 master에서 작업 목적이 드러나는 이름의 feature 브랜치를 만든다.

git checkout -b feature/login-page

기능 개발이나 버그 수정을 진행하면서 변경을 수시로 커밋한다. 커밋 메시지는 무엇이 바뀌었는지 알 수 있게 작성한다.

git add .
git commit -m "Add login form component with validation"

작업을 마치면 원격 저장소에 올리고 Pull Request를 만든다.

git push origin feature/login-page

PR은 변경 사항을 놓고 팀이 검토하고 의견을 나누는 공간이다. 리뷰 과정에서 수정이 필요하면 feature 브랜치에서 보완한다. 이후 CI/CD 파이프라인이 자동화된 테스트를 실행해 품질을 확인하고, 리뷰와 테스트를 모두 통과한 변경만 master에 병합한다. 병합된 코드는 자동 또는 수동으로 프로덕션에 배포된다.

Git Flow와는 브랜치의 역할 수가 다르다

GitHub FlowMasterFeatureGit FlowMasterDevelopFeatureReleaseHotfix

Git Flow는 master, develop, feature, release, hotfix처럼 역할이 나뉜 브랜치 구조를 사용한다. 계획된 릴리스 주기가 있거나 여러 버전을 관리해야 하는 대규모 프로젝트에 맞는다.

반면 GitHub Flow는 master와 feature로 구조를 단순화한다. 지속적 배포를 전제로 하며, 웹 애플리케이션처럼 빠른 피드백이 필요한 프로젝트에 적합하다.

Trunk-Based Development는 개발자가 단일 trunk에 직접 커밋하고 브랜치 사용을 최소화해 병합 충돌을 줄이는 방식이다. 매우 빠른 개발 주기에 맞는다. GitHub Flow는 feature 브랜치로 개발 작업을 격리하고 PR 기반 코드 리뷰를 강조하므로, 협업과 코드 품질 관리에 무게를 둔다.

단순한 흐름이 주는 이점과 제약

GitHub Flow는 익히고 적용하기 쉬우며 CI/CD 파이프라인과 자연스럽게 연결된다. PR을 중심으로 빠른 코드 리뷰와 피드백을 받을 수 있고, 자동화된 통합 테스트를 통해 품질 검증을 장려한다. 여러 개발자가 서로 다른 기능을 병렬로 작업할 수도 있다.

다만 여러 버전을 동시에 관리해야 하는 경우에는 맞지 않을 수 있다. 수십 명의 개발자가 함께 작업하면 병합 충돌 가능성도 커진다. 계획된 릴리스 주기를 따르는 프로젝트에는 제약이 있으며, master가 항상 배포 가능해야 하므로 엄격한 테스트가 필요하다.

SaaS 고객 관리 시스템에서의 운영 예시

대형 SaaS 기업 A사는 고객 관리 시스템 개발에 GitHub Flow를 적용했다. 개발자는 JIRA 티켓 번호를 포함한 feature 브랜치를 만들었다.

feature/TICKET-123-implement-search-filter

기능 구현 후에는 PR 템플릿으로 변경 사항의 상세 설명을 요구했고, 병합에는 최소 2명의 리뷰어 승인이 필요했다. CircleCI가 자동 테스트를 실행했으며, master 병합 뒤에는 스테이징 환경으로 자동 배포했다. QA 팀의 검증을 거쳐 프로덕션 배포를 승인하는 흐름이었다.

이 방식은 팀의 개발 속도를 30% 향상시키고, 배포 후 발생하는 버그를 45% 감소시켰다.

팀의 배포 방식에 맞춰 정할 항목

도입 전에는 팀 규모와 협업 문화를 먼저 살펴야 한다. 자동화된 테스트와 배포를 받쳐 줄 CI/CD 파이프라인이 필요하며, 브랜치 이름도 일관되게 정해야 한다.

feature/[기능명]
fix/[버그명]
refactor/[리팩토링대상]

코드 리뷰가 실제로 작동할 수 있는 프로세스와, 배포 자동화 및 롤백 전략도 함께 마련해야 한다. GitHub Flow의 효과는 단순한 브랜치 구조 자체보다 master를 배포 가능한 상태로 유지하는 팀의 운영 방식에서 나온다.

GitHub Flow브랜치 전략CI/CD코드 리뷰웹 개발