pile·
프론트엔드·vercel-blogVercel Blog·

Turbopack, Next.js 모노레포로 이전 — 빌드 속도 개선 본격화

Vercel은 Turbopack의 소스 코드를 독립 저장소(vercel/turbo)에서 Next.js 모노레포(vercel/next.js)로 이전한다. 두 저장소의 릴리즈 주기와 의존성 동기화 마찰을 해소해 개발 속도를 높이는 것이 목적이다. 현재 Next.js 개발 테스트 스위트 100%와 상위 300개 npm 패키지 호환성을 통과한 상태다.

핵심 포인트
  • Turbopack은 Rust로 작성된 함수 단위 세분화 캐싱 아키텍처를 갖춰 변경된 파일의 영향 범위만 재계산한다
  • 저장소 분리로 인한 릴리즈 주기 불일치, 커스텀 동기화 도구 유지, IDE 플러그인 업스트림 수정 등의 마찰이 이전 결정 배경이다
  • 이전 방법은 git-subtree와 git-filter-branch를 조합해 커밋 이력을 보존하며 이관한다
  • 메모리 소비 감소를 위한 캐시 축출 개선과 온디스크 영속 캐싱이 현재 우선 개발과제다
  • 프로덕션 빌드(next build --turbo)는 트리 셰이킹 등 최적화 완료 후 안정화 예정이다
상세 정리
  • Turbopack 현황: next dev --turbo로 개발 서버 적용 가능. Next.js 개발 테스트 100% 통과, 상위 300개 npm 패키지 호환. webpack 로더도 지원.
  • 분리 저장소 문제: Turbopack과 Next.js가 각각 독립 릴리즈를 하면서 버전 동기화용 커스텀 도구가 생겼고 IDE 플러그인도 양쪽 소스를 별도 유지해야 했다.
  • 이전 결정: 코드 공유와 공동 개발을 빠르게 가능하게 하기 위해 Next.js 모노레포에 합류. 릴리즈 파이프라인도 통합된다.
  • 이전 방법: git-subtree와 git-filter-branch를 조합해 커밋 이력 보존하며 Next.js 레포로 이식.
  • 빌드 시스템 구조: Rust 컴파일러 설계에서 영감 받은 함수 수준 세분화 캐싱(fine-grained function-level caching). 빌드 중 변경된 파일의 영향 범위만 재계산.
  • Cargo 워크스페이스: 이전 후 최상위 레벨에 Cargo 워크스페이스를 도입해 Rust 패키지를 JS 모노레포 방식으로 관리할 계획.
  • 메모리 개선: 캐시 축출 전략 개선으로 메모리 사용량을 줄이는 작업이 진행 중.
  • 온디스크 캐싱: 프로세스 종료 후에도 캐시를 유지하는 영속 캐시를 프로토타입으로 개발 중. 재시작 후에도 빠른 빌드 가능.
  • 프로덕션 빌드: 트리 셰이킹, 청크 최적화 등 프로덕션 수준 최적화 추가 후 next build --turbo 안정화 예정.
왜 읽나Next.js 프로젝트에서 Turbopack 도입 시점을 검토하거나 Rust 기반 JS 빌드 도구의 아키텍처와 로드맵을 이해하려는 프론트엔드·인프라 엔지니어.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2