Skip to content
tutorials

Mega-PR에 대항하는 GitHub의 무기

거대한 Pull Request는 팀의 속도와 코드 품질을 저해하는 보이지 않는 주범입니다. GitHub가 수년 만에 내놓은 가장 큰 릴리스는 마침내 이에 대한 네이티브 솔루션을 제공하지만, 이는 워크플로우에 대한 새로운 사고방식을 요구합니다.

Dani Roth
Mega-PR에 대항하는 GitHub의 무기

PR이 병목 현상이 되는 이유

Mega-PR은 개발 속도를 저하시킵니다. 수백, 때로는 수천 줄의 코드를 검토하는 것은 불가능에 가까운 작업이 되어, 버그를 놓치거나 형식적인 검토에 그치고 심각한 검토 피로를 유발합니다. 이러한 거대한 변경 사항은 다른 개발자들이 자신의 작업을 통합하는 것을 방해하여 광범위한 병목 현상을 야기합니다.

결과: 병합 충돌 증가, 코드 브랜치의 빠른 노후화, 그리고 릴리스의 극적인 지연. 이러한 비효율적인 주기는 수많은 엔지니어링 시간을 낭비하고, 코드베이스에 상당한 위험을 초래하며, 내재된 복잡성으로 인해 개발 팀의 좌절감을 유발합니다.

GitHub는 이제 이 고질적인 문제에 대한 공식적이고 플랫폼 네이티브한 답변인 Stacked PRs를 제공합니다. 이 강력한 기능은 임시방편적인 커뮤니티 해결책을 넘어, 강력한 의존성 관리를 워크플로우에 직접 통합합니다.

핵심 개념은 간단합니다. 큰 코드 변경 사항을 더 작고 의존적인 Pull Request 체인으로 나누는 것입니다. 각 PR은 이전 PR을 기반으로 구축되므로 전체 기능을 차단하지 않고도 독립적인 검토, 승인 및 병합이 가능합니다.

이 의존성 체인을 예로 들어보겠습니다. 첫 번째 기반(foundational) PR은 main을 타겟으로 합니다(예: 중요한 데이터베이스 스키마 마이그레이션). 그 다음, 두 번째 PR은 첫 번째 PR을 타겟으로 하여 업데이트된 스키마에 의존하는 새로운 API 경로를 구현합니다. 마지막으로, 세 번째 PR은 두 번째 PR을 타겟으로 하여 새로운 API를 사용하는 UI 컴포넌트를 추가합니다. 이는 복잡한 기능을 명확하고 논리적이며 관리 가능한 방식으로 진행하게 합니다.

새로운 워크플로우: Stack, Add, Submit

GitHub CLI를 사용하여 Stacked PR을 구현하면 간소화되고 효율적인 워크플로우를 구축할 수 있습니다. gh stack init [branch-name]으로 새로운 스택을 시작하세요. 이 명령은 기반 브랜치를 설정하며, 일반적으로 main인 저장소의 기본 브랜치를 자동으로 베이스로 삼습니다. 이를 통해 가장 낮은 수준의 변경 사항이 먼저 준비되도록 보장합니다.

추가적인 변경 사항을 더해 점진적으로 개발을 진행하세요. gh stack add [branch-name]을 사용하여 스택의 이전 브랜치를 자동으로 베이스로 하는 새 브랜치를 만드세요. 이는 명확한 의존성 체인을 구축하여, 기반 타입부터 API 경로까지 각 후속 변경 사항이 이전 변경 사항 위에 논리적으로 쌓이도록 합니다.

중요한 점은 이러한 CLI 편의성 아래에서도 표준 Git 작업은 그대로 유지된다는 것입니다. 각 gh stack add 명령은 결과적으로 새로운 Git 브랜치를 생성하며, 스택 내의 어떤 브랜치에서든 여러 커밋을 포함할 수 있는 유연성을 유지합니다. 이는 커밋 기록에 대한 세밀한 제어를 희생하지 않으면서도 구조화된 개발을 제공합니다.

스택 전반의 모든 변경 사항이 완료되면 gh stack submit이라는 단일 명령으로 작업을 통합하세요. 이 명령은 스택의 모든 브랜치를 GitHub에 동시에 푸시하고, 각각에 대한 개별 Pull Request를 생성합니다. 그러면 GitHub는 이를 UI에서 응집력 있는 stacked PR로 렌더링하여 검토를 단순화합니다.

GitHub CLI가 강력한 자동화와 편의성을 제공하지만, 이것이 엄격한 필수 조건은 아닙니다. 개발자는 각 Pull Request가 올바른 이전 베이스 브랜치를 명시적으로 타겟팅하도록 함으로써 수동으로 스택을 구성할 수 있습니다. GitHub는 CLI 오케스트레이션 없이도 이러한 의존성을 지능적으로 감지하고 시각화하여, 동일한 UI 이점과 검토 경험을 제공합니다.

CLI를 넘어: 실전에서의 Stacks

GitHub은 일류 UI 지원을 통해 Stacked PR을 한 단계 더 발전시켰습니다. 이제 풀 리퀘스트 목록 페이지에 표시되는 고유한 스택 아이콘을 통해 해당 PR이 더 큰 종속성 체인의 일부임을 즉시 확인할 수 있습니다. 이 시각적 지표는 상호 연결된 작업을 식별하고 관리하는 과정을 간소화하여 전반적인 프로젝트 가시성을 향상시킵니다.

스택 내의 모든 PR을 클릭하여 전용 스택 뷰(stack view)를 활용해 보세요. 이 강력한 인터페이스는 전체 종속성 체인을 시각화하여 각 PR의 위치, 대상 브랜치, 현재 리뷰 상태를 명확하게 매핑합니다. 복잡한 기능 세트에 대한 즉각적인 명확성을 확보하고 종속성과 진행 상황을 한눈에 파악할 수 있습니다. 풀 리퀘스트 및 새로운 Stacked 기능에 대한 자세한 내용은 About stacked pull requests - GitHub Docs를 참조하세요.

진정한 효율성은 Merge stack 버튼에서 시작됩니다. 스택 내의 모든 개별 PR이 승인되면, 클릭 한 번으로 승인된 전체 체인을 메인 브랜치에 병합할 수 있습니다. GitHub은 리베이스(rebasing) 및 브랜치 업데이트와 같은 모든 중간 단계를 처리하며 순차적인 병합을 자동으로 실행합니다. 이 원자적 작업은 수동 개입 없이 깔끔하고 통합된 병합을 보장하여, 딜리버리 파이프라인을 가속화하고 병합 충돌을 최소화합니다.

이 글이 마음에 드셨나요? 매일 아침 이런 글을 메일로 받아보세요.

하루 한 통 · 두 번의 클릭으로 구독 취소 · 제3자 추적 없음

스택은 인간만을 위한 것이 아닙니다

더 작고 집중된 diff는 리뷰어의 차단을 즉시 해제하여 리뷰 주기를 획기적으로 단축합니다. 컨텍스트 전환과 인지 부하가 줄어들어 더 빠른 승인과 더 높은 품질의 피드백이 가능해집니다. 이제 팀은 더 빠르게 반복하고 전례 없는 효율성으로 기능을 배포할 수 있습니다.

인간의 워크플로우를 넘어, Stacked PRs는 AI를 위한 강력한 미래를 열어줍니다. 이제 AI 에이전트는 복잡한 다중 파트 기능을 구조화된 종속적 풀 리퀘스트로 제출할 수 있습니다. 이는 거대한 AI 생성 코드를 관리 가능하고 검토 가능한 단위로 분할합니다. 단일 대규모 코드 덤프 대신, 에이전트는 인간이 검토할 수 있는 종속성 체인을 출력하여 정교한 AI 기여를 통합하기 위한 명확하고 감사 가능한 경로를 제공합니다.

이 기능은 단순한 워크플로우 최적화를 넘어 협업 개발 관행의 근본적인 변화를 의미합니다. 이는 팀이 복잡한 기능 전달과 동시 작업에 접근하는 방식을 근본적으로 재정의합니다. 개발자들의 반응은 압도적으로 긍정적이며, 핵심 개발을 발전시키려는 GitHub의 비전을 입증하고 있습니다. 팀 속도(team velocity)와 전반적인 프로젝트 처리량의 즉각적이고 상당한 향상을 기대할 수 있습니다.

자주 묻는 질문

GitHub Stacked PR이란 무엇인가요?

독립적으로 검토하고 하나의 단위로 병합할 수 있는 더 작고 종속적인 풀 리퀘스트 체인을 생성하기 위한 네이티브 GitHub 기능입니다.

Stacked PR을 사용하려면 GitHub CLI가 필요한가요?

아니요. CLI(gh stack 명령어 사용)를 사용하면 프로세스가 간소화되지만, 이전 PR의 브랜치를 대상으로 후속 PR을 생성하여 수동으로 스택을 만들 수도 있습니다. GitHub은 자동으로 스택을 감지합니다.

스택은 단순히 PR을 체인으로 연결하는 것과 어떻게 다른가요?

Git 개념은 비슷하지만, GitHub은 이제 이러한 체인을 공식적으로 '스택'으로 인식합니다. 이를 통해 이전에는 수동으로 처리해야 했던 전체 스택을 관리, 시각화 및 병합할 수 있는 전용 UI를 제공합니다.

활성 스택이 있는 동안 다른 브랜치에서 작업할 수 있나요?

네. 스택은 Git 위의 관리 계층입니다. git checkout과 같은 표준 Git 명령어를 사용하여 관련 없는 브랜치로 전환한 다음, 나중에 문제 없이 스택 내의 브랜치로 돌아올 수 있습니다.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$500 · AI tools & software only