머지 큐는 배포 안전성을 위해 도입되지만, CI 반복 실행과 긴 대기 시간으로 개발 속도를 저하시킨다. Vercel의 배포 자동 승격 비활성화와 프로모션 API/CLI를 조합하면, 머지 큐 없이도 통합 테스트 통과 후에만 프로덕션으로 승격하는 안전한 워크플로우를 구현할 수 있다.
핵심 포인트- Vercel은 PR 머지와 동시에 배포를 생성하지만, 자동 프로덕션 승격을 비활성화하면 원하는 시점에만 승격할 수 있다
- deployment_status 웹훅으로 배포 완료를 감지한 뒤 통합 테스트를 실행하고, 통과 시 CLI/API로 수동 승격한다
- npx vercel promote 명령으로 특정 배포를 프로덕션으로 승격할 수 있다
- 머지 큐의 반복 CI 실행 문제를 없애면서도 프로덕션 안전성을 유지한다
- Vercel 자체 배포 파이프라인도 이 방식을 사용한다
상세 정리- 머지 큐 문제점: 여러 PR이 동시에 ready 상태가 되면 순서대로 병합·CI 재실행·대기가 반복돼 하루 배포 횟수가 크게 줄어든다.
- Vercel 기본 동작: PR 머지 즉시 배포 빌드 시작 + 프로덕션 자동 승격. 커스텀 검사 없이 바로 사용자에게 노출된다.
- 자동 승격 비활성화: Vercel 프로젝트 설정에서 프로덕션 배포 자동 승격을 끄면 배포가 생성되지만 프로덕션으로 승격되지 않는다.
- 웹훅 연동: deployment_status 이벤트를 구독해 배포가 빌드 완료됐을 때 통합 테스트 스위트를 트리거.
- 조건부 승격: 통합 테스트가 전부 통과하면 CLI로 승격 — npx vercel --scope {scope} --token {token} promote {deploymentId}.
- 실패 시 차단: 통합 테스트 실패 시 승격하지 않으면 결함 있는 코드가 프로덕션에 노출되지 않는다. Slack 알림 등 추가 워크플로우와 연동 가능.
- 병렬 처리: 여러 PR을 동시에 머지해도 각자 독립적으로 배포 빌드 + 테스트 + 승격이 진행돼 머지 큐의 직렬화 병목이 없다.
- Vercel 내부 사용: Vercel 자체 배포 파이프라인도 동일 패턴 — deployment_status 수신 → 통합 테스트 → 성공 시 promote 호출.
왜 읽나CI/CD 파이프라인에서 머지 큐 병목 없이 안전한 프로덕션 배포 워크플로우를 설계하려는 DevOps·풀스택 엔지니어.