--- id: PERF-JS-OPT-001 category: "10_Wiki/๐Ÿ’ก Topics/AI" confidence_score: 1.0 tags: [javascript, performance, optimization, inp, code-splitting, tree-shaking, web-workers, main-thread] last_reinforced: 2026-04-26 --- # JavaScript Optimization Patterns (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ตœ์ ํ™” ํŒจํ„ด) ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > "์ „์†ก๋˜๋Š” ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ๊ทนํ•œ์œผ๋กœ ๊นŽ๊ณ , ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ์ ์œ ํ•˜๋Š” ๊ธด ์ž‘์—…์„ ์ž˜๊ฒŒ ์ชผ๊ฐœ์–ด(Yield), ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์— ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋Š” '์ˆจ ์‰ด ํ‹ˆ'์„ ํ™•๋ณดํ•˜๋ผ" โ€” INP ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ํ˜„๋Œ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ „๋žต. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **์ถ”์ถœ๋œ ํŒจํ„ด:** "Static Reduction and Runtime Yielding" โ€” ๋นŒ๋“œ ์‹œ์ ์˜ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ ์ œ๊ฑฐ(Tree Shaking)์™€ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ ์œ  ๋ถ„์‚ฐ(Yielding)์„ ๊ฒฐํ•ฉํ•œ ํŒจํ„ด. - **ํ•ต์‹ฌ ์ตœ์ ํ™” ๊ธฐ๋ฒ•:** - **Code Splitting & Tree Shaking:** ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ํ•„์š”ํ•œ ์‹œ์ ์—๋งŒ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•˜์—ฌ ์ดˆ๊ธฐ ํŒŒ์‹ฑ ์‹œ๊ฐ„ ๋‹จ์ถ•. - **Breaking Up Long Tasks:** 50ms ์ด์ƒ์˜ ์ž‘์—…์„ ์ž‘์€ ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ์Šค์ผ€์ค„๋Ÿฌ์—๊ฒŒ ์ œ์–ด๊ถŒ์„ ์–‘๋ณด. - **Web Workers:** ๋ณต์žกํ•œ ์—ฐ์‚ฐ์„ ๋ณ„๋„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์Šค๋ ˆ๋“œ๋กœ ์ด์ „ํ•˜์—ฌ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ํ”„๋ฆฌ์ง• ๋ฐฉ์ง€. - **Debounce & Throttle:** ๊ณ ๋นˆ๋„ ์ด๋ฒคํŠธ(Scroll, Resize, Search)์˜ ํ•ธ๋“ค๋Ÿฌ ์‹คํ–‰ ํšŸ์ˆ˜ ์ œํ•œ. - **requestIdleCallback:** ์ค‘์š”๋„๊ฐ€ ๋‚ฎ์€ ์ž‘์—…์„ ๋ธŒ๋ผ์šฐ์ €์˜ ์œ ํœด ์‹œ๊ฐ„์— ๋ฐฐ์น˜. - **์˜์˜:** ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์œผ๋กœ ์ธํ•œ UI ํ”„๋ฆฌ์ง•์„ ์ œ๊ฑฐํ•˜์—ฌ Core Web Vitals์˜ INP ์ง€ํ‘œ๋ฅผ ํš๊ธฐ์ ์œผ๋กœ ๊ฐœ์„ ํ•˜๊ณ  ์‹ค์งˆ์ ์ธ ์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„๋ฅผ ๋†’์ž„. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ๊ณผ๊ฑฐ์—๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์—ˆ์œผ๋‚˜, ํ˜„๋Œ€ ์ •์ฑ…์€ '๊ฒฝ๋Ÿ‰ ๋ชจ๋“ˆ ์ •์ฑ…'๊ณผ 'ํ•„์š” ์‹œ ๋กœ๋“œ ์ •์ฑ…'์„ ์ตœ์šฐ์„ ์œผ๋กœ ํ•จ. - **์ •์ฑ… ๋ณ€ํ™”:** Antigravity ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  ๋™๊ธฐ์  ๋ฃจํ”„์— ๋Œ€ํ•ด 50ms ์ดˆ๊ณผ ์‹œ ๊ฒฝ๊ณ  ์ •์ฑ…์„ ์‹œํ–‰ํ•˜๋ฉฐ, CPU ์ง‘์•ฝ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋กœ์ง์€ ๋ฐ˜๋“œ์‹œ ์›น ์›Œ์ปค(Web Worker) ์‚ฌ์šฉ ์ •์ฑ…์„ ์ค€์ˆ˜ํ•˜๋„๋ก ํ•จ. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - [[Core-Web-Vitals-Metrics]], [[Interaction-to-Next-Paint-INP]], [[Frontend-Performance-Optimization-Guide]], [[Clean-Code-Principles]] - **Raw Source:** 00_Raw/JavaScript Optimization.md