핵심 요약
Turbopack 정식 출시 후 사내 Next 17 모노레포 전환. dev HMR 평균 1.4s → 180ms, production 빌드 5분 → 47초. Loader 호환, CSS-in-JS, 일부 plugin은 여전히 막힘 — 사후 정리.
1. 켜는 법
{
"scripts": {
"dev": "next dev --turbo",
"build": "next build --turbo"
}
}
옵트인 끝. 동작 안 하는 loader는 빌드 로그에서 명시.
2. 실측
| 지표 | Webpack | Turbopack |
|---|---|---|
| dev 시작 | 19s | 3.2s |
| HMR(저장→화면) | 1.4s | 180ms |
| prod 빌드 | 5m 02s | 47s |
| 캐시 hit 빌드 | 1m 48s | 12s |
3. 호환 문제
- styled-components SSR — 17.1+에서 공식 지원, 그 전 hydration 미스매치
- @svgr/webpack — Turbopack 자체 SVG loader로 대체
- raw-loader, mdx-bundler — config 다름, next.config.mjs 분기 처리
- sentry-cli source map — postbuild script로 후처리
4. 캐시 전략
CI에서 .next/cache/turbopack 디렉토리 영속화 시 두 번째 빌드 12s. GitHub Actions cache action에서 hash 키로 next.config.mjs + package-lock.json.
5. 함정
- custom webpack config — next.config.mjs의 webpack() 함수는 무시됨, 명시 마이그레이션
- Module Federation — 미지원, 17.2 로드맵
- Babel plugin — SWC 대체 필요, .babelrc 자동 무시
- 에러 메시지 형식 변경 — 모니터링 alert 정규식 수정

댓글 0