--- id: p5e4r3f2-a1b2-4c3d-8e9f-0a1b2c3d4e5f category: Unified confidence_score: 0.99 tags: [performance, memory-leak, debugging, optimization, react, devtools, core-web-vitals] last_reinforced: 2026-05-01 github_commit: "wikification-performance-memory" --- # Frontend Performance & Memory Management ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ๋‹จ์ˆœํžˆ ๋ Œ๋”๋ง์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์‚ฌ์šฉ์ž ์ฒด๊ฐ ์„ฑ๋Šฅ(LCP, CLS, FID)์„ ๊ฐœ์„ ํ•˜๊ณ  ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ๋ฐ ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ ์œ ์œจ์„ ์ •๋ฐ€ํ•˜๊ฒŒ ํƒ€๊ฒฉํ•˜๋Š” ์—”์ง€๋‹ˆ์–ด๋ง์ด๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) ### 1. ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ ๋ฐ ๋ฆฌ๋ Œ๋”๋ง ์ตœ์ ํ™” - **๋ฉ”๋ชจ์ด์ œ์ด์…˜**: `React.memo`, `useMemo`, `useCallback`์„ ์ ์žฌ์ ์†Œ์— ๋ฐฐ์น˜ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๊ฐ€์ƒ DOM ์—ฐ์‚ฐ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. - **Concurrent Mode**: React 18์˜ `useTransition`, `useDeferredValue`๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์—…๋ฐ์ดํŠธ๋ฅผ ๋’ค๋กœ ๋ฏธ๋ฃธ์œผ๋กœ์จ UI ๋ฐ˜์‘์„ฑ์„ ์œ ์ง€ํ•œ๋‹ค. - **Code Splitting**: `React.lazy`์™€ ๋™์  ์ž„ํฌํŠธ๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ํ•„์š”ํ•œ ์‹œ์ ์— ์ฝ”๋“œ๋ฅผ ๋กœ๋“œํ•œ๋‹ค. ### 2. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐ ๋ˆ„์ˆ˜ ํƒ์ง€ - **๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์œ ํ˜•**: ์ „์—ญ ๋ณ€์ˆ˜ ๋‚จ์šฉ, ํ•ด์ œ๋˜์ง€ ์•Š์€ ํƒ€์ด๋จธ/์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ, ํด๋กœ์ €์— ์˜ํ•œ ์ฐธ์กฐ ์œ ์ง€, **Detached DOM Nodes** ๋“ฑ์ด ์ฃผ์š” ์›์ธ์ด๋‹ค. - **Heap Snapshot**: ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ Memory ํƒญ์„ ํ†ตํ•ด ํž™ ์Šค๋ƒ…์ƒท์„ ๋น„๊ตํ•˜๊ณ , ๊ฐ์ฒด๊ฐ€ ์˜๋„์น˜ ์•Š๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ### 3. ๋””๋ฒ„๊น… ๋ฐ ๋ถ„์„ ๋„๊ตฌ - **React DevTools Profiler**: ์ปดํฌ๋„ŒํŠธ๋ณ„ ๋ Œ๋”๋ง ์‹œ๊ฐ„๊ณผ ์›์ธ์„ ํŒŒ์•…ํ•˜์—ฌ ๋ณ‘๋ชฉ ์ง€์ ์„ ์ฐพ๋Š”๋‹ค. - **Lighthouse & Core Web Vitals**: LCP(์ตœ๋Œ€ ์ฝ˜ํ…์ธ  ํŽ˜์ธํŠธ), CLS(๋ˆ„์  ๋ ˆ์ด์•„์›ƒ ์ด๋™), INP(๋‹ค์Œ ์ƒํ˜ธ์ž‘์šฉ์— ๋Œ€ํ•œ ์‘๋‹ต) ์ง€ํ‘œ๋ฅผ ์ธก์ •ํ•˜๊ณ  ์ตœ์ ํ™”ํ•œ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๋ฌด๋ถ„๋ณ„ํ•œ ๋ฉ”๋ชจ์ด์ œ์ด์…˜**: ๋ชจ๋“  ๊ณณ์— `useMemo`๋ฅผ ์“ฐ๋Š” ๊ฒƒ์€ ์˜คํžˆ๋ ค ๋ฉ”๋ชจ๋ฆฌ ์ ์œ ์œจ์„ ๋†’์ด๊ณ  ์–•์€ ๋น„๊ต ๋น„์šฉ์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ์ธก์ •(Profiling) ํ›„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์›์น™์ด๋‹ค. - **๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ํ•œ๊ณ„**: JS๋Š” ์ž๋™ GC๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐธ์กฐ ๊ณ ๋ฆฌ(Reference chain)๋ฅผ ๋Š์–ด์ฃผ์ง€ ์•Š์œผ๋ฉด GC๋Š” ์ด๋ฅผ ํšŒ์ˆ˜ํ•  ์ˆ˜ ์—†๋‹ค. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Parent**: 10_Wiki/Topics/Development - **Related**: [[Vite Build System|Vite Build System]], Zustand, [[React Compiler|React Compiler]] - **Raw Source**: 00_Raw/แ„‹แ…ฐแ†ธ แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช(Core Web Vitals) แ„€แ…ขแ„‰แ…ฅแ†ซ แ„Œแ…กแ†จแ„‹แ…ฅแ†ธ, 00_Raw/Vite + React แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช, 00_Raw/Frontend Performance Debugging, 00_Raw/JavaScript Memory Management, 00_Raw/Memory Leak Detection, 00_Raw/Detached DOM Nodes ## ๐Ÿ’ป GitHub ๋™๊ธฐํ™” ์ž๋™ํ™” ์›Œํฌํ”Œ๋กœ์šฐ 1. Stage: git add . 2. Commit: `git commit -m "[P-Reinforce] Wikify Frontend Performance and Memory Management Guide"` 3. Push: `git push origin main`