## πŸ“Œ Brief Summary Vite λΉŒλ“œ λ²ˆλ“€ μ΅œμ ν™”λŠ” 초기 λ‘œλ”© 속도와 μΊμ‹œ νš¨μœ¨μ„ κ·ΉλŒ€ν™”ν•˜κΈ° μœ„ν•΄ JavaScript λ²ˆλ“€ 크기λ₯Ό 쀄이고 λ‘œλ”© ꡬ쑰λ₯Ό μ΅œμ ν™”ν•˜λŠ” 과정이닀. Rollup μ˜΅μ…˜μ„ ν†΅ν•œ 벀더 라이브러리 뢄리(`manualChunks`)와 μ§€μ—° λ‘œλ”©(`React.lazy`)을 κ²°ν•©ν•˜μ—¬, μ‚¬μš©μžκ°€ ν•„μš”ν•œ μ‹œμ μ— ν•„μš”ν•œ μ½”λ“œλ§Œ λ‹€μš΄λ‘œλ“œν•˜λ„λ‘ μ„€κ³„ν•˜λŠ” 것이 핡심이닀. ## πŸ“– Core Content 1. **λŒ€κ·œλͺ¨ λ²ˆλ“€ 이슈 ν•΄κ²°** - 기본적으둜 ν•˜λ‚˜μ˜ κ±°λŒ€ν•œ `index.js`둜 λ¬Άμ΄λŠ” 문제λ₯Ό ν•΄κ²°ν•˜μ—¬ FCP, LCP λ“± Core Web Vitals μ§€ν‘œλ₯Ό κ°œμ„ ν•œλ‹€. 2. **manualChunksλ₯Ό ν†΅ν•œ 벀더 뢄리** - 자주 λ°”λ€Œμ§€ μ•ŠλŠ” `react`, `react-dom` λ“± μ™ΈλΆ€ 라이브러리λ₯Ό 별도 청크둜 λΆ„λ¦¬ν•˜μ—¬ λΈŒλΌμš°μ € 캐싱 νš¨μœ¨μ„ κ·ΉλŒ€ν™”ν•œλ‹€. 3. **라우트 레벨 μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…** - `React.lazy`와 ``λ₯Ό ν™œμš©ν•΄ νŽ˜μ΄μ§€ λ‹¨μœ„λ‘œ μ½”λ“œλ₯Ό μͺΌκ°œμ–΄ 초기 μ§„μž… μ‹œ λ‹€μš΄λ‘œλ“œλ˜λŠ” λ¦¬μ†ŒμŠ€λ₯Ό μ΅œμ†Œν™”ν•œλ‹€. 4. **λ²ˆλ“€ μ‹œκ°ν™” 및 뢄석** - `rollup-plugin-visualizer`λ₯Ό 톡해 λ²ˆλ“€ λ‚΄λΆ€λ₯Ό μ‹œκ°μ μœΌλ‘œ λΆ„μ„ν•˜κ³ , λΆˆν•„μš”ν•˜κ²Œ λΉ„λŒ€ν•΄μ§„ λͺ¨λ“ˆμ„ μ°Ύμ•„ 트리 쉐이킹(Tree-shaking)을 μ μš©ν•˜κ±°λ‚˜ λŒ€μ²΄ν•œλ‹€. ## βš–οΈ Trade-offs & Caveats - **청크 νŒŒνŽΈν™”**: λ²ˆλ“€μ„ λ„ˆλ¬΄ 잘게 μͺΌκ°€ 경우 HTTP μš”μ²­ νšŸμˆ˜κ°€ κΈ‰μ¦ν•˜μ—¬ 였히렀 λ„€νŠΈμ›Œν¬ 병λͺ©κ³Ό Waterfall ν˜„μƒμ΄ λ°œμƒν•  수 μžˆλ‹€. - **개발 vs ν”„λ‘œλ•μ…˜ 차이**: ViteλŠ” 개발 μ‹œ λ„€μ΄ν‹°λΈŒ ESM을 μ‚¬μš©ν•˜μ§€λ§Œ ν”„λ‘œλ•μ…˜μ€ Rollup을 μ‚¬μš©ν•˜λ―€λ‘œ, λΉŒλ“œ κ²°κ³Όλ¬Όμ—μ„œλ§Œ λ°œμƒν•˜λŠ” μ„±λŠ₯ μ΄μŠˆλ‚˜ κ²½κ³ λ₯Ό μƒμ‹œ 확인해야 ν•œλ‹€. - **μΊμ‹œ λ¬΄νš¨ν™”**: 벀더 λ²ˆλ“€μ„ λ„ˆλ¬΄ 크게 묢으면 라이브러리 ν•˜λ‚˜λ§Œ μ—…λ°μ΄νŠΈν•΄λ„ κ±°λŒ€ν•œ 벀더 파일 μ „μ²΄μ˜ μΊμ‹œκ°€ λ¬΄νš¨ν™”λ˜λŠ” νŠΈλ ˆμ΄λ“œμ˜€ν”„κ°€ μžˆλ‹€. ## πŸ”— Knowledge Connections ### Related Concepts - **Rollup**: Vite의 ν”„λ‘œλ•μ…˜ λΉŒλ“œ μ—”μ§„ (관계: ꡬ동 원리) - **React.lazy & Suspense**: μ½”λ“œ μŠ€ν”Œλ¦¬νŒ…μ˜ μ‹€μ²œ μˆ˜λ‹¨ (관계: κ΅¬ν˜„ 도ꡬ) - **Core Web Vitals**: μ΅œμ ν™”μ˜ μ΅œμ’… λͺ©μ μ§€ (관계: μ„±λŠ₯ μ§€ν‘œ) ### Deeper Research Questions 1. `manualChunks`λ₯Ό μ„Έλ°€ν•˜κ²Œ μ„€μ •ν•  λ•Œ, λ„€νŠΈμ›Œν¬ μ˜€λ²„ν—€λ“œλ₯Ό μ΅œμ†Œν™”ν•˜λ©΄μ„œ μΊμ‹œ νžˆνŠΈμœ¨μ„ κ·ΉλŒ€ν™”ν•˜λŠ” 졜적의 청크 크기 기쀀은? 2. Vite의 ESM 기반 개발 μ„œλ²„μ™€ Rollup 기반 λΉŒλ“œ ν™˜κ²½ κ°„μ˜ 차이둜 인해 λ°œμƒν•˜λŠ” 'Silent Errors' 사둀와 방지책은? 3. 동적 μž„ν¬νŠΈλ‘œ μͺΌκ°œμ§„ 청크듀을 μ‚¬μš©μžκ°€ ν΄λ¦­ν•˜κΈ° 전에 미리 λΆˆλŸ¬μ˜€λŠ” 'Prefetching' μ „λž΅μ˜ Vite μžλ™ν™” 방법은? 4. 트리 쉐이킹이 μž‘λ™ν•˜μ§€ μ•ŠλŠ” CommonJS 기반 라이브러리λ₯Ό ESM으둜 μ•ˆμ „ν•˜κ²Œ λ³€ν™˜ν•˜κ±°λ‚˜ λŒ€μ²΄ν•˜λŠ” κ°€μ΄λ“œλΌμΈμ€? 5. HTTP/2 λ˜λŠ” HTTP/3 ν™˜κ²½μ—μ„œ λ‹€μˆ˜μ˜ μž‘μ€ 청크 전솑이 λ²ˆλ“€λ§λœ ν•˜λ‚˜μ˜ 큰 파일 전솑보닀 μœ λ¦¬ν•΄μ§€λŠ” ꡬ체적 쑰건은? ### Practical Application Contexts - **μ„±λŠ₯ κ²½κ³  ν•΄κ²°**: "Chunks are larger than 500 kB" λΉŒλ“œ κ²½κ³  λ°œμƒ μ‹œ 즉각적인 λŒ€μ‘. - **μ‚¬μš©μž κ²½ν—˜ κ°œμ„ **: 느린 λ„€νŠΈμ›Œν¬ ν™˜κ²½μ˜ μ‚¬μš©μžλ₯Ό μœ„ν•œ 초기 λ‘œλ”© μ΅œμ ν™” 및 μ•ˆμ •μ  μΈν„°λž™μ…˜ 제곡. ### Adjacent Topics - **Service Worker & Caching Strategy** - **React Server Components (RSC)** - **Modern Build Tools (Turbopack, Rspack) Comparison**