pile·
아키텍처·vercel-blogVercel Blog·

프레임워크 정의 인프라 (Framework-defined Infrastructure)

프레임워크 정의 인프라(FdI, Framework-defined Infrastructure)는 Infrastructure as Code의 진화형으로, 빌드 타임 프로그램이 프레임워크 코드를 파싱해 클라우드 인프라를 자동으로 프로비저닝하는 개념이다. 개발자가 Next.js에서 getServerSideProps를 쓰면 Lambda가 자동 생성되고, getStaticProps로 바꾸면 정적 파일 서빙 인프라로 전환된다. 코드 변경 한 줄이 인프라 결정을 대체하며, Immutable deployment와 결합해 각 Git 커밋이 독립적인 가상 서버리스 인프라를 갖는다.

핵심 포인트
  • FdI는 IaC를 추상화한다 — 개발자는 인프라 설정 없이 프레임워크 컨벤션을 따르면 플랫폼이 최적 인프라를 자동 프로비저닝한다.
  • getServerSideProps 감지 시 AWS Lambda 자동 생성, getStaticProps 감지 시 정적 파일 인프라 자동 선택 — 함수 시그니처 하나가 인프라 비용과 성능을 결정한다.
  • Gatsby DSG(지연 정적 생성), SvelteKit/Remix form action, Next.js Middleware·Image 등 다양한 프레임워크 프리미티브가 FdI로 각각 적절한 인프라를 자동 구성한다.
  • 프레임워크의 inversion of control(헐리우드 원칙)이 FdI의 기반 — 프레임워크가 고수준 흐름을 제어하므로 빌드 타임 분석으로 개발자 의도를 읽을 수 있다.
  • Immutable deployment와 결합하면 각 커밋마다 완전히 새로운 서버리스 인프라가 생성되어 배포 이력이 인프라 이력과 1:1 매핑된다.
상세 정리
  • IaC 진화 배경: SSH 수동 설정 → IaC(버전 관리 가능한 인프라 정의) → FdI(인프라 설정 자체를 프레임워크 코드에서 자동 도출). 각 단계마다 추상화 레벨이 높아진다.
  • FdI 핵심 원리: 빌드 타임 프로그램이 소스 코드를 파싱해 개발자의 의도를 읽고 IaC 설정을 자동 생성한다. 프레임워크의 예측 가능한 구조(inversion of control)가 이 분석을 가능하게 한다.
  • Next.js getServerSideProps: 이 함수를 감지하면 Lambda(서버리스 컴퓨트 리소스)를 자동 프로비저닝하고 라우팅 테이블을 업데이트한다.
  • Next.js getStaticProps: 정적 생성 신호를 감지하면 Lambda 대신 정적 파일 서빙 인프라를 선택하고 빌드 시점에 HTML을 사전 생성한다. 코드 한 줄 교체로 인프라 비용과 응답 특성이 완전히 달라진다.
  • Gatsby DSG: Deferred Static Generation을 감지하면 지연 생성용 Lambda + S3 저장 + 글로벌 서빙 인프라를 자동 설정한다.
  • SvelteKit·Remix form action: form action 패턴을 감지해 서버리스 함수를 자동 생성한다.
  • Next.js Middleware: 미들웨어 파일을 감지해 엣지 컴퓨팅 리소스를 자동 프로비저닝한다.
  • Build Output API: 모든 프레임워크 프리미티브가 내부적으로 Vercel Build Output API(선언형 IaC 설정)로 컴파일되어 플랫폼이 이를 소비하는 구조다. 인프라 이식성의 기반이 된다.
  • 로컬 개발 문제 해결: 서버리스는 로컬 환경과 프로덕션 동기화 유지가 어렵다. FdI는 프레임워크가 프로덕션 동작을 결정하므로 로컬 개발 도구가 곧 프로덕션과 동일하다.
  • Immutable deployment 연계: 각 커밋마다 완전히 새로운 가상 서버리스 인프라를 생성하고 기존 배포는 수정하지 않는다. 서버리스의 zero-scale 덕분에 물리 자원 고갈 없이 수천 개의 배포 버전 인프라를 동시 유지할 수 있다.
  • Terraform 비교: Lambda 하나를 위해 IAM role, 소스 코드 해시, 런타임, 환경변수를 명시적으로 정의해야 하는 Terraform과 달리, FdI에선 getServerSideProps 작성 하나로 동일한 결과가 나온다.
왜 읽나Vercel·Netlify 같은 프레임워크 기반 배포 플랫폼의 작동 원리를 이해하거나, IaC를 추상화하는 플랫폼 아키텍처를 설계하는 인프라·백엔드 엔지니어에게 개념과 구현 사례를 함께 제공한다.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 아키텍처·dropbox-techDropbox Tech·

    Dropbox의 통합 콘텐츠 처리 플랫폼 Riviera, AI 시대로의 진화

    Dropbox가 파일 미리보기 생성용 내부 서비스로 출발한 콘텐츠 처리 플랫폼 Riviera가 약 10년에 걸쳐 Search·Replay·Sign·Dash가 공유하는 플랫폼으로, 나아가 AI 시대의 문서 처리 인프라로 진화한 과정을 다룬다. 미리보기를 '재사용 가능한 변환들의 조합'으로 재정의한 설계가 확장의 핵심이었고, 지금은 100개 넘는 변환 능력으로 초당 수십만 건을 처리한다. 최근엔 공개 API와 MCP로 외부 개발자에게도 열렸다.

  2. 아키텍처·github-engGitHub Engineering·

    AI 시대에 달라진 '예스'의 비용

    GitHub Engineering 에서 AI 코드 생성 도구가 보편화되면서 소프트웨어 엔지니어링 경제학이 어떻게 달라졌는지를 다룬다. 코드를 작성하는 비용은 낮아졌지만 그 코드를 소유하고 유지보수하는 비용은 그대로라는 점을 핵심 논지로, 엔지니어링 팀의 의사결정 방식도 달라져야 한다고 주장한다.

    #engineering-process#ai-code-generation#code-ownership+1
  3. 아키텍처·당근당근 테크블로그·

    천만 MAU를 지탱하는 커뮤니티 시스템 아키텍처

    당근 커뮤니티실이 2021년 약 100 RPS에서 현재 약 20,000 RPS를 처리하는 규모로 성장한 과정과, 이를 가능하게 한 "여러 웹앱 + 하나의 서버앱" 모듈형 모놀리스 아키텍처를 다룬다. 동네생활, 모임, 카페, 아파트 서비스를 소규모 팀이 장기 운영 가능한 구조로 설계한 원칙과, 장애 경험에서 도출한 resilience 패턴까지 단계별로 정리했다.

    #event-driven#kafka#postgres+2