"매 ship-only-what-you-execute". 매 Code Splitting 은 single bundle 을 route/component-bound chunk 로 분할하여 initial JS payload 의 minimization. Lazy Loading 은 매 chunk 를 user-interaction 시점에 fetch. 매 2026 의 standard 는 Vite + React.lazy + dynamic import + RSC (React Server Components) hybrid.
매 핵심
매 split 차원
Route-based: 매 page 의 lazy import — /dashboard, /settings.
Component-based: 매 heavy widget (chart, code-editor) 의 deferred load.
Vendor split: 매 third-party (React, lodash) 의 separate chunk → long-term cache.
Dynamic feature flag: 매 A/B variant 의 gated import.
매 핵심 메커니즘
Dynamic import(): 매 ES module spec — Promise 반환.
Bundler chunk splitting: Webpack/Vite 의 splitChunks heuristic.
HTTP/2 push 의 deprecation: 매 modern preload + modulepreload 로 대체.
Streaming SSR + RSC: 매 chunk 의 server-streamed delivery.
기본값: Vite + React.lazy(route) + intent-prefetch on hover.
🔗 Graph
부모: Web Performance
변형: Module Federation
응용: React Server Components — 경계 의식
Adjacent: Vite · Rollup · esbuild
🤖 LLM 활용
언제: bundle analysis 의 chunk strategy 추천, lazy boundary 후보 식별, manualChunks rule 작성.
언제 X: 매 production runtime 의 dynamic decision — 매 bundler-time static analysis 의 영역.
❌ 안티패턴
Over-splitting: 매 component 마다 lazy — 매 too many waterfalls. 매 100KB+ threshold.
Suspense boundary 의 미사용: 매 React.lazy 의 fallback 없음 → throw.
Preload everything: 매 idle prefetch 의 abuse — bandwidth waste.
Dynamic import in render: 매 매 render 마다 import() 호출 → re-fetch.
🧪 검증 / 중복
Verified (web.dev code-splitting docs, Vite docs, React.lazy spec, RFC#118).