From e087458f51366328539924cbd876d2462725550f Mon Sep 17 00:00:00 2001 From: Antigravity Agent Date: Sun, 26 Apr 2026 21:34:52 +0900 Subject: [PATCH] chore: Delete processed raw file (Code Splitting) --- ...ตœ์ ํ™”(Code Splitting & Performance Optimization).md | 36 ------------------- ...g-and-Frontend-Performance-Optimization.md | 29 +++++++++++++++ 2 files changed, 29 insertions(+), 36 deletions(-) delete mode 100644 00_Raw/์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”(Code Splitting & Performance Optimization).md create mode 100644 10_Wiki/Topics/AI/Code-Splitting-and-Frontend-Performance-Optimization.md diff --git a/00_Raw/์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”(Code Splitting & Performance Optimization).md b/00_Raw/์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”(Code Splitting & Performance Optimization).md deleted file mode 100644 index 21a42515..00000000 --- a/00_Raw/์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”(Code Splitting & Performance Optimization).md +++ /dev/null @@ -1,36 +0,0 @@ -# [[์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”(Code Splitting & Performance Optimization)]] - -## ๐Ÿ“Œ Brief Summary -์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…์€ ๊ฑฐ๋Œ€ํ•œ JavaScript ๋ฒˆ๋“ค์„ ์ž‘์€ ์ฒญํฌ(Chunk)๋กœ ๋‚˜๋ˆ„์–ด ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”๋กœ ํ•  ๋•Œ๋งŒ ๋กœ๋“œํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ๊ฐ„์„ ํš๊ธฐ์ ์œผ๋กœ ๋‹จ์ถ•ํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค [1-3]. ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง ๋ฐฉ์ง€, ๋™์‹œ์„ฑ ๋ Œ๋”๋ง, ๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„ ์ง€์ •, ์ด๋ฏธ์ง€ ์ง€์—ฐ ๋กœ๋”ฉ ๋“ฑ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ˜์‘์„ฑ๊ณผ ๋Ÿฐํƒ€์ž„ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค [4, 5]. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ LCP(Largest Contentful Paint), INP(Interaction to Next Paint)์™€ ๊ฐ™์€ Core Web Vitals ์ง€ํ‘œ๋ฅผ ๊ฐœ์„ ํ•˜๊ณ  ์›ํ™œํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 6, 7]. - -## ๐Ÿ“– Core Content -* **์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ์ง€์—ฐ ๋กœ๋”ฉ (Code Splitting & Lazy Loading)** - * **๊ฐœ๋… ๋ฐ ํšจ๊ณผ:** ๋Œ€๊ทœ๋ชจ JavaScript ๋ฒˆ๋“ค์€ ๋ธŒ๋ผ์šฐ์ €์˜ ํŒŒ์‹ฑ ๋ฐ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์ง€์—ฐ์‹œ์ผœ TTI(Time to Interactive) ๋ฐ FCP ๋“ฑ์˜ ์ง€ํ‘œ๋ฅผ ์•…ํ™”์‹œํ‚ต๋‹ˆ๋‹ค [3, 8]. ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…์„ ์‚ฌ์šฉํ•˜๋ฉด ์ดˆ๊ธฐ ๋กœ๋“œ์— ํ•„์š”ํ•œ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2]. - * **๊ตฌํ˜„ ๊ธฐ๋ฒ•:** React์—์„œ๋Š” `React.lazy()`์™€ ``๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ์šฐํŠธ ๋ ˆ๋ฒจ์ด๋‚˜ ๋ฌด๊ฑฐ์šด UI ์ปดํฌ๋„ŒํŠธ(์ฐจํŠธ, ์—๋””ํ„ฐ ๋“ฑ) ๋‹จ์œ„๋กœ ๋™์  ์ž„ํฌํŠธ(Dynamic Imports)๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค [9-11]. - * **๋ฒˆ๋“ค ๋ถ„ํ•  (Chunking):** Vite์™€ ๊ฐ™์€ ํ˜„๋Œ€์ ์ธ ๋นŒ๋“œ ๋„๊ตฌ์—์„œ๋Š” `manualChunks` ์„ค์ •์„ ํ†ตํ•ด React ์ฝ”์–ด์ฒ˜๋Ÿผ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฌด๊ฑฐ์šด ๋ฒค๋” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ณ„๋„์˜ ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [11-13]. - -* **๋ฆฌ๋ Œ๋”๋ง ๋ฐ ๋Ÿฐํƒ€์ž„ ์ตœ์ ํ™” (Re-render & Runtime Optimization)** - * **๋ฉ”๋ชจ์ด์ œ์ด์…˜:** ์ปดํฌ๋„ŒํŠธ์˜ ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด `React.memo()`, `useCallback`, `useMemo`๋ฅผ ์ „๋žต์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [14-16]. ์ธ๋ผ์ธ ์ต๋ช… ํ•จ์ˆ˜๋‚˜ ๊ฐ์ฒด๋Š” ๋ Œ๋”๋ง ์‹œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ฐธ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ์ด์ œ์ด์…˜๋œ ์ปดํฌ๋„ŒํŠธ๋ผ๋„ ๋ฆฌ๋ Œ๋”๋ง์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค [17-19]. - * **React Compiler:** React 19 ์ด์ƒ์„ ์ง€์›ํ•˜๋Š” React Compiler๋ฅผ ๋„์ž…ํ•˜๋ฉด ๋นŒ๋“œ ํƒ€์ž„์— ์ž๋™์œผ๋กœ ์ƒํƒœ์™€ UI ์š”์†Œ๋ฅผ ์„ธ๋ถ„ํ™”ํ•˜์—ฌ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•˜๋ฏ€๋กœ, ์ˆ˜๋™ ์ตœ์ ํ™”์— ๋”ฐ๋ฅธ ๋ณต์žก๋„์™€ ์˜ค๋ฅ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [12, 20-22]. - * **๋ฆฌ์ŠคํŠธ ๊ฐ€์ƒํ™” (Virtualization):** ์ˆ˜์ฒœ ๊ฐœ์˜ ํ•ญ๋ชฉ์„ ํฌํ•จํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ๋Š” `react-window` ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™”๋ฉด์— ๋ณด์ด๋Š” ํ•ญ๋ชฉ(Viewport)๋งŒ ๋ Œ๋”๋งํ•จ์œผ๋กœ์จ DOM ๋น„๋Œ€ํ™”๋ฅผ ๋ง‰๊ณ  ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ์‘๋‹ต์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค [1, 23-25]. - * **๋””๋ฐ”์šด์Šค ๋ฐ ์“ฐ๋กœํ‹€๋ง:** ๊ฒ€์ƒ‰ ์ž…๋ ฅ ๋“ฑ ๋นˆ๋ฒˆํ•œ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ๋””๋ฐ”์šด์‹ฑ(Debounce)๊ณผ ์“ฐ๋กœํ‹€๋ง(Throttle)์„ ์ ์šฉํ•˜์—ฌ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด๋‚˜ API ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค [23, 26]. - -* **์ƒํƒœ ๊ด€๋ฆฌ ๋ฐ ๋™์‹œ์„ฑ ์ œ์–ด (State Management & Concurrency)** - * **Context API ํ•œ๊ณ„ ๊ทน๋ณต:** React Context API๋Š” ๋‚ด๋ถ€์˜ ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ๋ณ€๊ฒฝ๋˜๋ฉด ํ•ด๋‹น ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ๋…ํ•˜๋Š” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”๋ง์‹œํ‚ต๋‹ˆ๋‹ค [27-29]. ๋นˆ๋ฒˆํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธ๋˜๋Š” ์ „์—ญ ์ƒํƒœ์˜ ๊ฒฝ์šฐ, Context์˜ ๋„๋ฉ”์ธ์„ ์ž˜๊ฒŒ ์ชผ๊ฐœ๊ฑฐ๋‚˜, Zustand ๋“ฑ ํŠน์ • ์ƒํƒœ ์Šฌ๋ผ์ด์Šค(Slice)๋งŒ ๊ตฌ๋…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์ƒ ํ›จ์”ฌ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค [30-32]. - * **๋™์‹œ์„ฑ ๋ Œ๋”๋ง (Concurrent Features):** `useTransition`์„ ์‚ฌ์šฉํ•ด ๋ฌด๊ฑฐ์šด UI ์—…๋ฐ์ดํŠธ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”๊ณ , `useDeferredValue`๋กœ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์„ ์ง€์—ฐ์‹œํ‚ด์œผ๋กœ์จ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ๊ณผ ๊ฐ™์€ ์ค‘์š” ์ธํ„ฐ๋ž™์…˜์ด ์ฐจ๋‹จ๋˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค [33-35]. - * **Server Components:** Next.js์˜ React Server Components(RSC)๋ฅผ ํ™œ์šฉํ•˜๋ฉด, ์ธํ„ฐ๋ž™์…˜์ด ์—†๋Š” ์ •์  UI๋ฅผ ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋งํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋Š” JavaScript ์–‘์„ ๋Œ€ํญ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [36-38]. - -* **๋„คํŠธ์›Œํฌ ๋ฐ ๋ฆฌ์†Œ์Šค ์ตœ์ ํ™” (Network & Resource Optimization)** - * **ํฌ๋ฆฌํ‹ฐ์ปฌ ๋ Œ๋”๋ง ํŒจ์Šค:** CSS์™€ ๊ฐ™์€ ๋ Œ๋”๋ง ์ฐจ๋‹จ ๋ฆฌ์†Œ์Šค๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ , `async`์™€ `defer`๋ฅผ ํ™œ์šฉํ•ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹œ์ ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค [4]. - * **์ด๋ฏธ์ง€ ๋ฐ ๋ฆฌ์†Œ์Šค ์šฐ์„ ์ˆœ์œ„:** WebP, AVIF ๋“ฑ ์ตœ์‹  ์ด๋ฏธ์ง€ ํฌ๋งท์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ™”๋ฉด ์•„๋ž˜์˜ ์ด๋ฏธ์ง€๋Š” `loading="lazy"` ์†์„ฑ์œผ๋กœ ์ง€์—ฐ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ํ™”๋ฉด ์ƒ๋‹จ์˜ ํ•ต์‹ฌ ์ด๋ฏธ์ง€๋Š” `fetchpriority` ์†์„ฑ์ด๋‚˜ `preload`, `preconnect` ๋“ฑ์˜ ๋ฆฌ์†Œ์Šค ํžŒํŠธ๋ฅผ ํ™œ์šฉํ•ด ๋น ๋ฅด๊ฒŒ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค [39-41]. - -* **์ธก์ • ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง (Measurement & Monitoring)** - * ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ์ถ”์ธก์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. "์ธก์ •ํ•˜์ง€ ์•Š์€ ๊ฒƒ์€ ์ตœ์ ํ™”ํ•˜์ง€ ๋งˆ๋ผ"๋Š” ์›์น™์— ๋”ฐ๋ผ React DevTools Profiler, why-did-you-render, Chrome ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์„ฑ๋Šฅ ํƒญ ๋“ฑ์„ ํ™œ์šฉํ•ด ๋ Œ๋”๋ง ๋ณ‘๋ชฉ์„ ํ”„๋กœํŒŒ์ผ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [26, 42-44]. - -## ๐Ÿ”— Knowledge Connections -- **Related Topics:** [[๋ฉ”๋ชจ์ด์ œ์ด์…˜(Memoization)]], [[๊ฐ€์ƒํ™”(Virtualization)]], [[๋™์‹œ์„ฑ ๋ Œ๋”๋ง(Concurrent Rendering)]], [[Core Web Vitals]] -- **Projects/Contexts:** [[๋Œ€๊ทœ๋ชจ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์•„ํ‚คํ…์ฒ˜]], [[Vite ๋ฐ Next.js ๊ธฐ๋ฐ˜ ์„ฑ๋Šฅ ํŠœ๋‹ ํ™˜๊ฒฝ]] -- **Contradictions/Notes:** ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ `React.memo`, `useMemo`, `useCallback`๊ณผ ๊ฐ™์€ ์ˆ˜๋™ ์ตœ์ ํ™” ๋„๊ตฌ์˜ ๋‚จ์šฉ์„ ๊ฒฝ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋Š” ๋น„๊ต ์—ฐ์‚ฐ์— ๋น„์šฉ์ด ๋“ค๊ธฐ ๋•Œ๋ฌธ์—, ๋ Œ๋”๋ง ๋น„์šฉ์ด ๊ฐ€๋ณ๊ฑฐ๋‚˜ prop์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ์‚ฌ์šฉํ•˜๋ฉด ์˜คํžˆ๋ ค ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ์ธก์ • ํ›„์— ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [45, 46]. ๋˜ํ•œ, React Context API๋Š” ๋„์ž…์ด ์‰ฝ์ง€๋งŒ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ์— ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์‹ฌ๊ฐํ•œ ๋ฆฌ๋ Œ๋”๋ง ํญํ’(Re-render storm)์„ ์ผ์œผํ‚ค๋ฏ€๋กœ, ๋™์ ์ธ ์ƒํƒœ์—๋Š” Zustand์™€ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ๋” ์ ํ•ฉํ•˜๋‹ค๊ณ  ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค [28, 29, 47]. - ---- -*Last updated: 2026-04-26* \ No newline at end of file diff --git a/10_Wiki/Topics/AI/Code-Splitting-and-Frontend-Performance-Optimization.md b/10_Wiki/Topics/AI/Code-Splitting-and-Frontend-Performance-Optimization.md new file mode 100644 index 00000000..3c3db684 --- /dev/null +++ b/10_Wiki/Topics/AI/Code-Splitting-and-Frontend-Performance-Optimization.md @@ -0,0 +1,29 @@ +--- +id: FE-PERF-CODE-SPLIT-001 +category: "[[10_Wiki/๐Ÿ’ก Topics/AI]]" +confidence_score: 1.0 +tags: [performance, code-splitting, optimization, lazy-loading, suspense, bundling, vite, nextjs, core-web-vitals] +last_reinforced: 2026-04-26 +--- + +# [[Code Splitting and Frontend Performance Optimization (์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™”)]] + +## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) +> "ํ•œ๊บผ๋ฒˆ์— ์ „์†ก๋˜๋Š” ๊ฑฐ๋Œ€ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค์€ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋‹ค๋ฆผ์„ ๊ณ ํ†ต์œผ๋กœ ๋ฐ”๊พผ๋‹ค. ๋ฒˆ๋“ค์„ ์˜๋ฏธ ์žˆ๋Š” ์กฐ๊ฐ(Chunks)์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ํ•„์š”ํ•  ๋•Œ๋งŒ ํ˜ธ์ถœ(On-demand)ํ•˜์—ฌ, ์ฒซ ํ™”๋ฉด์˜ ์ฃผ์ธ๊ณต์„ 0.1์ดˆ๋ผ๋„ ๋นจ๋ฆฌ ๋ฌด๋Œ€์— ์˜ฌ๋ ค๋ผ" โ€” ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„์™€ ๋Ÿฐํƒ€์ž„ ๋ฐ˜์‘์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ํ•ต์‹ฌ ์ „๋žต. + +## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) +- **์ถ”์ถœ๋œ ํŒจํ„ด:** "Granular Bundling and Adaptive Resource Loading" โ€” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ๋ฅผ ๋ผ์šฐํŠธ, ์ปดํฌ๋„ŒํŠธ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹จ์œ„๋กœ ์„ธ๋ถ„ํ™”ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ์Šค์ผ€์ค„์— ๋งž์ถฐ ๋กœ๋”ฉ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์กฐ์ •ํ•˜๋Š” ํŒจํ„ด. +- **ํ•ต์‹ฌ ์ตœ์ ํ™” ๊ธฐ๋ฒ•:** + - **Route-based Splitting:** ์‚ฌ์šฉ์ž๊ฐ€ ํ˜„์žฌ ๋ณด์ง€ ์•Š๋Š” ํŽ˜์ด์ง€์˜ ์ฝ”๋“œ๋ฅผ ๋กœ๋“œํ•˜์ง€ ์•Š๋„๋ก ๋ผ์šฐํ„ฐ ์ˆ˜์ค€์—์„œ ์ง€์—ฐ ๋กœ๋”ฉ(`React.lazy`) ์ ์šฉ. + - **Component-level Lazy Loading:** ๋ฌด๊ฑฐ์šด ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์ฐจํŠธ, ์—๋””ํ„ฐ)๋‚˜ ํŠน์ • ์ƒํ˜ธ์ž‘์šฉ ํ›„์—๋งŒ ํ•„์š”ํ•œ UI ์š”์†Œ๋ฅผ ๋ณ„๋„ ์ฒญํฌ๋กœ ๋ถ„๋ฆฌ. + - **Vendor Splitting (Manual Chunks):** ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ณ€๊ฒฝ์ด ์ ์€ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(`react`, `react-dom`)๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ ํšจ์œจ ๊ทน๋Œ€ํ™”. + - **Resource Prioritization:** `preload`, `prefetch` ํžŒํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์Œ์— ํ•„์š”ํ•œ ์ž์‚ฐ์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฏธ๋ฆฌ ์ค€๋น„. +- **์˜์˜:** LCP์™€ INP ์ง€ํ‘œ๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๊ฐœ์„ ํ•˜์—ฌ ๊ฒ€์ƒ‰ ์—”์ง„ ์ˆœ์œ„์™€ ์‚ฌ์šฉ์ž ์ „ํ™˜์œจ(Conversion Rate)์„ ๋™์‹œ์— ๋†’์ž„. + +## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) +- **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” HTTP/1.1 ํ™˜๊ฒฝ์—์„œ ์š”์ฒญ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ๋ฒˆ๋“ค(One big bundle)์ด ์œ ๋ฆฌํ–ˆ์œผ๋‚˜, ํ˜„๋Œ€ ์ •์ฑ…์€ HTTP/2 ์ด์ƒ์˜ ๋‹ค์ค‘ํ™”(Multiplexing) ํ™˜๊ฒฝ์— ์ตœ์ ํ™”๋œ '๋‹ค์ค‘ ์ฒญํฌ ์ •์ฑ…'์„ ๊ถŒ์žฅํ•จ. +- **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” 200KB ์ด์ƒ์˜ ๋‹จ์ผ JS ํŒŒ์ผ ์ƒ์„ฑ์„ ๊ธˆ์ง€ ์ •์ฑ…์œผ๋กœ ํ•˜๋ฉฐ, ๋ชจ๋“  ๋™์  ์ž„ํฌํŠธ ์‹œ ๋กœ๋”ฉ ์ƒํƒœ(Loading Spinner/Skeleton) ์ œ๊ณต ์ •์ฑ…์„ ์˜๋ฌดํ™”ํ•จ. + +## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) +- [[JavaScript-Optimization-Patterns]], [[Largest-Contentful-Paint-LCP]], [[Interaction-to-Next-Paint-INP]], [[Vite-Build-Optimization]], [[Modern-Frontend-Engineering-Architecture]] +- **Raw Source:** [[00_Raw/์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ… ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”(Code Splitting & Performance Optimization).md]]