피드로 돌아가기
emulate - 로컬에서 GitHub·Vercel·Google API를 완전 복제해 실행하기
GeekNewsGeekNews
Backend

emulate - 로컬에서 GitHub·Vercel·Google API를 완전 복제해 실행하기

Vercel이 GitHub·Vercel·Google API를 로컬에서 완전 복제하는 emulate 도구를 개발해 CI 환경과 네트워크 차단 상황에서 프로덕션 동일 상태의 테스트 실행 가능

xguru2026년 3월 24일4intermediate

Context

CI 파이프라인과 네트워크 차단 환경에서 외부 API(GitHub, Vercel, Google)에 실제 요청을 보낼 수 없어 통합 테스트와 OAuth 플로우 검증이 어려웠다. 기존 mock 도구는 프로덕션의 상태와 응답 구조를 정확히 재현하지 못해 테스트 신뢰도가 낮았다.

Technical Solution

  • 세 가지 주요 서비스(Vercel·GitHub·Google)를 로컬 에뮬레이터로 구동: npx emulate 한 줄 명령어로 각각 포트 4000, 4001, 4002에 시작
  • CLI 인터페이스로 서비스 선택, 포트 지정, seed 데이터 주입, 설정 생성 기능 제공
  • Node API(createEmulator() 호출)를 통해 Vitest/Jest 테스트 코드 내에서 직접 에뮬레이터 제어 및 자동 초기화·리셋·종료 지원
  • config.yaml 또는 JSON으로 사용자, 팀, 프로젝트, OAuth 앱 구성 정의
  • GitHub App, OAuth, Webhook 이벤트를 실제 동작처럼 재현하고, 세 서비스의 주요 REST 엔드포인트 전부 구현
  • 완전 상태 저장형 in-memory Store 구조로 CRUD, 필터, 페이지네이션 내장 지원

Key Takeaway

로컬 API 에뮬레이션을 단순 mock이 아닌 프로덕션 동일 상태의 완전 구현으로 제공하면, CI 환경과 오프라인 개발 상황에서도 신뢰도 높은 통합 테스트와 외부 서비스 플로우 검증을 가능하게 한다.


GitHub, Vercel, Google 서비스와 연동하는 Node.js 애플리케이션 개발 팀에서 emulate를 CI 파이프라인과 로컬 테스트 환경에 통합하면, 외부 API 의존성을 제거해 테스트 실행 속도를 높이고 OAuth 플로우·Webhook 이벤트 처리를 안정적으로 검증할 수 있다.

원문 읽기