피드로 돌아가기
I got tired of waiting for deploys, so I built a local Lambda runner
Dev.toDev.to
DevOps

cdk.out 분석 기반 Hot Reload 구현으로 배포 사이클 10분에서 1초로 단축

I got tired of waiting for deploys, so I built a local Lambda runner

math2026년 6월 6일6intermediate

Context

CDK 기반 Lambda 개발 시 CloudFormation 스택 업데이트로 인한 5~10분의 반복적 대기 시간 발생. SAM CLI의 템플릿 이중 관리 부담과 LocalStack의 무거운 리소스 오버헤드 및 비용 문제가 개발 생산성을 저해하는 병목 지점으로 작용.

Technical Solution

  • cdk synth 결과물인 cdk.out CloudFormation 템플릿을 Single Source of Truth로 활용한 설정 자동화
  • Extract 단계에서 템플릿 내 Route, Handler, Authorizer 정보를 분석하여 매니페스트 파일로 변환하는 구조 설계
  • esbuild의 번들 메타데이터를 역추적하여 TypeScript 소스 파일과 핸들러 간의 매핑 관계 복원
  • Express 서버 기반의 Serve 단계에서 요청 시점에 해당 핸들러만 On-demand 번들링하여 실행하는 동적 런타임 구현
  • 파일 변경 시 전체 재시작 없이 특정 핸들러의 캐시만 무효화하는 세밀한 Hot Reload 메커니즘 적용
  • APIGatewayProxyEvent 객체 모사를 통해 실제 AWS 환경과 유사한 요청/응답 인터페이스 제공

인프라 정의서(IaC)의 중간 산출물을 분석하여 로컬 런타임 설정을 자동 생성함으로써 설정 드리프트를 원천 차단하는 전략적 접근 필요

원문 읽기