GitHub 연동 배포
저장소를 한 번 연결하면 push마다 자동 빌드·배포 | 공식 문서: Vercel for GitHub
1. 동작 원리
Vercel for GitHub는 GitHub 저장소를 Vercel 프로젝트에 연결해 자동 배포하는 통합입니다. 한 번 연결하면 기본적으로 모든 push를 배포합니다(브랜치 push와 pull request 포함).
저장소 한 번 연결(Import) │ ├── main 브랜치에 push / merge ─────▶ Production 배포 (실서비스 도메인 갱신) │ └── 그 외 브랜치 push / PR 열기 ─────▶ Preview 배포 (고유 미리보기 URL + PR 자동 코멘트)
핵심은 "내가 빌드 명령을 직접 실행하지 않는다"는 점입니다. 코드를 GitHub에 올리는 행위(git push) 자체가 배포 트리거이고, 빌드는 Vercel의 서버에서 자동으로 일어납니다.
2. 저장소 Import 절차
공식 흐름은 Add New… → Project → Import Git Repository입니다.
- Vercel 대시보드 우상단 Add New ▾ → Project(또는 New Project) 클릭
- 연결된 Git 계정에서 Vercel GitHub App에 접근 권한을 준(설치 범위에 포함된) 저장소가 표시됨 — 배포할 저장소 선택(Import). 원하는 저장소가 보이지 않으면 GitHub App 설치 화면의 Configure에서 그 저장소를 접근 범위에 추가하세요(아래 3절의 연결 자격 규칙도 함께 적용됩니다)
- 구성 페이지에서 다음을 확인·설정: 프로젝트 이름, Framework Preset(자동 감지), Root Directory, Build & Output 설정, Environment Variables
- Deploy 클릭 → 첫 빌드가 시작되고, 완료되면 라이브 URL 발급
아래는 Import 화면의 구조를 단순화한 예시입니다(실제 색·배치는 다를 수 있습니다).
3. GitHub 권한
Vercel for GitHub 통합은 저장소를 빌드·배포·상태표시하기 위해 일정 권한을 요구합니다. 공식 문서가 명시하는 주요 Repository 권한:
| 권한 | 용도(요약) |
|---|---|
Contents | 코드 읽기(빌드 대상) |
Deployments | GitHub 내 배포 상태 표시 |
Pull Requests · Checks · Commit Statuses | PR 코멘트·체크 표시 |
Web Hooks | push 이벤트 수신(배포 트리거) |
Metadata · Administration 등 | 저장소 메타데이터·설치 관리 |
누가 연결할 수 있나
- 개인 저장소: 저장소의 Owner여야 Import/연결 가능 (개인 저장소의 Collaborator는 불가)
- 조직 저장소: 조직 Owner 또는 저장소 접근권이 있는 Member (Outside Collaborator는 불가)
4. 프로덕션 vs 프리뷰 브랜치
| 구분 | 트리거 | 결과 |
|---|---|---|
| Production | Production 브랜치(보통 main)에 push / merge | 프로덕션 배포 생성 → 커스텀 도메인이 최신 배포로 갱신 |
| Preview | 그 외 모든 브랜치 push, PR 열기 | 고유 미리보기 URL 생성(프로덕션에 영향 없음) |
Production 브랜치는 단 하나이고, 그 외 모든 브랜치는 미리보기로 배포됩니다. Production 브랜치 자동 선택 순서는 main → 없으면 master → 저장소 기본 브랜치입니다. 프로젝트 Settings → Environments → Production → Branch Tracking에서 변경할 수 있습니다.
5. PR 미리보기 코멘트
PR을 열면 Vercel이 그 변경에 대한 고유 미리보기 배포를 만들고, 그 URL을 PR에 자동으로 코멘트로 남깁니다. GitHub의 Deployments API로 배포 상태를 GitHub 안에서 보여 주고, GitHub Checks로 다른 서비스와도 연동됩니다.
| Project | Status | Preview |
| my-first-app | ✓ Ready | Visit Preview ↗ |
봇 코멘트가 너무 잦으면 프로젝트 Settings → Git에서 끌 수 있습니다(특정 브랜치만 끄는 것은 현재 불가).
6. 빌드 설정 자동 감지
구성 페이지에서 Framework Preset을 감지하면 아래 3개가 자동으로 채워집니다. 필요할 때만 수동 변경하면 됩니다.
| 설정 | 의미 |
|---|---|
| Build Command | 빌드를 실행하는 명령(예: Next.js는 next build). 프레임워크 기준 자동 설정 |
| Output Directory | 빌드 결과가 출력되는 폴더. 이 폴더 내용만 서빙됨 |
| Install Command | 의존성 설치 방식(npm install, pnpm install 등) |
| Root Directory | 소스 코드 위치(저장소 루트 기준). 모노레포에서 하위 폴더를 가리킬 때 사용 |
이 값들은 대시보드 Settings 또는 저장소 루트의 vercel.json에서도 바꿀 수 있습니다(vercel.json 상세는 ③ 섹션 참고).
7. 모노레포 & 고급 옵션
- Monorepo: 한 저장소 안에 여러 앱이 있으면, 배포할 폴더마다 별도 Vercel 프로젝트를 만들고 각자의 Root Directory를 그 폴더로 지정합니다.
- Skipping unaffected projects(GitHub 전용): 변경된 프로젝트만 빌드해 시간을 아낍니다(workspace 구성 필요). 빌드 슬롯을 점유하지 않는 것이 장점입니다.
- Ignored Build Step: 특정 조건에서 빌드를 건너뜁니다.
vercel.json의ignoreCommand로 제어합니다. 예:git diff --quiet HEAD^ HEAD ./
8. GitLab · Bitbucket · Azure DevOps
Vercel은 GitHub 외에도 GitLab, Bitbucket, Azure DevOps Pipelines 저장소의 자동 배포를 지원합니다. 동작 방식(push 트리거, 프로덕션/프리뷰 분리, PR 코멘트)은 GitHub과 동일한 모델입니다. self-hosted 저장소나 목록에 없는 provider는 Vercel CLI로 배포할 수 있습니다(③ 섹션).
참고 링크
다음 문서: GitHub 연동 실습 예시 → · ③ MCP·CLI·v0 직접 배포 →