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

Vercel 마이크로프론트엔드 공개 베타 — JSON 설정으로 앱 분할

Vercel이 마이크로프론트엔드(Microfrontends) 지원을 공개 베타로 출시했다. 큰 앱을 독립적인 단위로 분할해 팀별 병렬 개발, 빌드 시간 단축, 레거시 점진적 마이그레이션을 지원한다.

핵심 포인트@vercel/microfrontends 패키지와 microfrontends.json 파일로 분할 구성한다.
  • 라우팅 경로별로 마이크로프론트엔드를 매핑하는 JSON 설정으로 단위를 정의한다.
  • 변경된 마이크로프론트엔드만 재빌드되어 전체 빌드 시간이 단축된다.
  • 프리페칭·프리렌더링으로 마이크로프론트엔드 간 내비게이션이 최적화된다.
  • Vercel Toolbar에서 각 단위를 독립적으로 반복·테스트할 수 있다.
상세 정리
  • 문제: 큰 앱을 여러 팀이 공유하면 배포 병목과 긴 빌드 시간이 발생한다.
  • 설정 1 — 대시보드: Vercel 대시보드 Microfrontends 탭에서 그룹을 생성한다.
  • 설정 2 — 패키지: 각 마이크로프론트엔드 프로젝트에 @vercel/microfrontends를 설치한다.
  • 설정 3 — microfrontends.json: 기본 앱에 JSON 파일을 추가해 단위와 라우팅 경로를 정의한다.
  • JSON 예시: dashboard(기본), docs(/docs 및 하위 경로), marketing(/marketing)처럼 세 단위를 각 경로에 매핑한다.
  • 빌드 최적화: 변경된 마이크로프론트엔드만 재빌드되어 전체 빌드 시간이 단축된다.
  • 레거시 지원: 모놀리식 앱을 한 번에 분리하지 않고 점진적으로 전환 가능하다.
  • 내비게이션 최적화: 프리페칭·프리렌더링으로 단위 간 페이지 전환이 빠르다.
  • 개발 도구: Vercel Toolbar에서 각 마이크로프론트엔드를 독립적으로 반복·테스트 가능하다.
왜 읽나여러 팀이 하나의 프론트엔드를 공유하면서 배포 병목과 긴 빌드 시간을 겪는 프론트엔드 아키텍트와 팀 리드에게 유용하다.
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