피드로 돌아가기
Dev.toFrontend
원문 읽기
Rust 기반 Rolldown 도입으로 빌드 속도 최대 30배 향상
Rust Ate the JavaScript Toolchain. Then Cloudflare Bought It
AI 요약
Context
Dev server의 esbuild와 Production의 Rollup을 혼용하던 이원화 구조로 인한 설정 중복 및 환경 간 결과물 불일치 문제 발생. 번들러 분리로 인한 유지보수 비용 증가와 빌드 파이프라인의 병목 지점 존재.
Technical Solution
- Rust 기반의 단일 번들러 Rolldown을 도입하여 Dev와 Prod 환경의 파이프라인 통합
- Oxc 파서를 하단에 배치하여 TypeScript 및 JSX 변환 과정을 고속화한 단일 언어 파이프라인 구축
- Rollup Plugin API 호환 계층을 구현하여 기존 생태계의 마이그레이션 비용 최소화
- transformWithEsbuild를 transformWithOxc로 대체하여 외부 의존성 제거 및 실행 속도 최적화
- Bundler 변경과 Major 버전 업데이트를 분리하는 단계적 마이그레이션 전략 채택
Impact
- Linear 프로젝트 기준 Production 빌드 시간 46초에서 6초로 단축
- 기존 Rollup 경로 대비 빌드 속도 10배에서 30배 향상
- 대규모 프로젝트 기준 일반적으로 3배에서 8배의 성능 개선 확인
Key Takeaway
컴파일 언어로의 도구 체인 재작성을 통한 성능 비약적 향상과 기존 API 호환성 유지를 통한 'Boring Migration' 전략의 중요성 확인.
실천 포인트
1. rolldown-vite 패키지를 통해 Vite 7 환경에서 번들러 변경 사항 우선 검증
2. transformWithEsbuild 호출 플러그인의 Oxc 전환 또는 Peer Dependency 추가 여부 확인
3. build.rollupOptions 설정의 build.rolldownOptions 명칭 변경 사항 반영
4. Yarn PnP 환경 사용 시 CJS Interop 동작 차이에 따른 추가 테스트 수행