--- id: P-REINFORCE-AUTO-3862CA category: "10_Wiki/๐Ÿ’ก Topics/AI" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Web Performance Optimization" --- # [[Web Performance Optimization|Web Performance Optimization]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”(Web Performance Optimization)๋Š” ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ๋А๊ปด์ง€๋Š”์ง€(์ธ์ง€๋œ ์„ฑ๋Šฅ)๋ฅผ ์ธก์ •ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค [1]. ๋А๋ฆฐ ์›น์‚ฌ์ดํŠธ๋Š” ์‚ฌ์šฉ์ž์˜ ์ขŒ์ ˆ๊ฐ์„ ์œ ๋ฐœํ•˜๊ณ  ์ดํƒˆ๋ฅ ์„ ๋†’์ด๋ฉฐ ๊ฒ€์ƒ‰ ์—”์ง„ ์ˆœ์œ„(SEO)์—๋„ ์•…์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ, ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ(Core Web Vitals)๊ณผ ๊ฐ™์€ ํ‘œ์ค€ํ™”๋œ ์ง€ํ‘œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋”ฉ ์†๋„, ์ƒํ˜ธ์ž‘์šฉ์„ฑ, ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ด๋‹ค [1-5]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์ฃผ์š” ์„ฑ๋Šฅ ์ธก์ • ์ง€ํ‘œ (Core Web Vitals ๋“ฑ)** * Google์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด LCP(Largest Contentful Paint, ์ตœ๋Œ€ ์ฝ˜ํ…์ธ  ๋ Œ๋”๋ง ์‹œ๊ฐ„), INP(Interaction to Next Paint, ๋‹ค์Œ ํŽ˜์ธํŠธ์— ๋Œ€ํ•œ ์ƒํ˜ธ์ž‘์šฉ), CLS(Cumulative Layout Shift, ๋ˆ„์  ๋ ˆ์ด์•„์›ƒ ์ด๋™)๋ฅผ ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ ์ง€ํ‘œ๋กœ ์‚ฌ์šฉํ•œ๋‹ค [2, 6]. * INP๋Š” ์ฒซ ๋ฒˆ์งธ ์ƒํ˜ธ์ž‘์šฉ๋งŒ ์ธก์ •ํ•˜๋˜ ๊ธฐ์กด์˜ FID(First Input Delay)๋ฅผ ๋Œ€์ฒดํ•œ ์ง€ํ‘œ๋กœ, ํŽ˜์ด์ง€ ๋ฐฉ๋ฌธ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ํด๋ฆญ์ด๋‚˜ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๋“ฑ์˜ ์ „์ฒด ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜์—ฌ ๋”์šฑ ํ˜„์‹ค์ ์ธ ๋ฐ˜์‘์„ฑ์„ ๋ฐ˜์˜ํ•œ๋‹ค [7-10]. * ์ด ์™ธ์—๋„ TTFB(Time to First Byte), TTI(Time to Interactive), TBT(Total Blocking Time) ๋“ฑ์˜ ๋ณด์กฐ ์ง€ํ‘œ๊ฐ€ ์„ฑ๋Šฅ ํ‰๊ฐ€์— ํ™œ์šฉ๋œ๋‹ค [11, 12]. * **๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„ ๋ฐฉ์‹** * **์‹คํ—˜์‹ค ๋ฐ์ดํ„ฐ(Lab Data):** Lighthouse๋‚˜ WebPageTest์™€ ๊ฐ™์ด ํ†ต์ œ๋œ ๊ธฐ๊ธฐ์™€ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ์ˆ˜์ง‘๋˜๋Š” ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ(Synthetic Testing) ๋ฐ์ดํ„ฐ๋กœ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค [13-15]. * **ํ•„๋“œ ๋ฐ์ดํ„ฐ(Field Data):** CrUX(Chrome User Experience Report)๋‚˜ ์‹ค์ œ ์‚ฌ์šฉ์ž ๋ชจ๋‹ˆํ„ฐ๋ง(RUM) ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒช๋Š” ์„ฑ๋Šฅ์„ ์ธก์ •ํ•œ ๋ฐ์ดํ„ฐ์ด๋‹ค [16, 17]. ์†Œ์ˆ˜ ์˜ˆ์™ธ ๊ฐ’์— ์˜ํ•œ ํ‰๊ท ์˜ ์™œ๊ณก์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์•™๊ฐ’(p50)์ด๋‚˜ 75๋ฐฑ๋ถ„์œ„์ˆ˜(p75), 95๋ฐฑ๋ถ„์œ„์ˆ˜ ๋“ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•œ๋‹ค [18-20]. * **์ผ๋ฐ˜์ ์ธ ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•** * **JavaScript ๋ฐ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ตœ์ ํ™”:** 50ms๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ธด ์ž‘์—…(Long tasks)์„ ์ž‘๊ฒŒ ์ชผ๊ฐœ๊ฑฐ๋‚˜ ์›น ์›Œ์ปค(Web workers)๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ํ•„์ˆ˜์ ์ด์ง€ ์•Š์€ JS์˜ ๋กœ๋“œ๋ฅผ ์ง€์—ฐ(Defer)์‹œ์ผœ์•ผ ํ•œ๋‹ค [21, 22]. Firefox ๋“ฑ์—์„œ ์ง€์›ํ•˜๋Š” Scheduler API(`scheduler.yield()`)๋ฅผ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ € ์Šค์ผ€์ค„๋Ÿฌ์— ์ œ์–ด๊ถŒ์„ ์–‘๋ณดํ•˜์—ฌ ์ƒํ˜ธ์ž‘์šฉ ์ง€์—ฐ์„ ์ค„์ผ ์ˆ˜๋„ ์žˆ๋‹ค [23]. * **์ด๋ฏธ์ง€ ๋ฐ ๋ Œ๋”๋ง ์ตœ์ ํ™”:** WebP, AVIF, JPEG XL ๋“ฑ ํšจ์œจ์ ์ธ ์ตœ์‹  ์ด๋ฏธ์ง€ ํฌ๋งท์„ ์‚ฌ์šฉํ•˜๊ณ , ๋ทฐํฌํŠธ ํฌ๊ธฐ์— ๋งž๋Š” ์ ์ ˆํ•œ ํ•ด์ƒ๋„๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค [24-29]. ๋˜ํ•œ ํ™”๋ฉด ๋ฐ– ์ฝ˜ํ…์ธ ์˜ ๋ Œ๋”๋ง์„ ๊ฑด๋„ˆ๋›ฐ๋Š” CSS `content-visibility` ์†์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค [30, 31]. ๊ฐ•์ œ ๋™๊ธฐ์‹ ๋ ˆ์ด์•„์›ƒ(Layout thrashing)์„ ์œ ๋ฐœํ•˜๋Š” ์ฝ”๋“œ๋Š” ํ”ผํ•ด์•ผ ํ•œ๋‹ค [32, 33]. * **์ถ”์ธก ๊ทœ์น™(Speculation Rules):** ์‚ฌ์šฉ์ž๊ฐ€ ๋งํฌ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋“ฑ์˜ ์ƒํ˜ธ์ž‘์šฉ ์‹œ, ํ–ฅํ›„ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋‚˜ ํŽ˜์ด์ง€๋ฅผ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง ๋ฐ ๋กœ๋“œํ•˜์—ฌ ํƒ์ƒ‰ ์†๋„๋ฅผ ๋Œ€ํญ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค [34, 35]. * **3D ์›น ๊ทธ๋ž˜ํ”ฝ (WebGL / WebGPU) ์„ฑ๋Šฅ ์ตœ์ ํ™”** * WebGL ํ™˜๊ฒฝ์—์„œ๋Š” CPU์™€ GPU ๊ฐ„์˜ ํ†ต์‹ ๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์œ ๋ฐœํ•˜๋ฏ€๋กœ, ๋“œ๋กœ์šฐ ์ฝœ(Draw calls) ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”(๋ฐฐ์นญ, ์ธ์Šคํ„ด์‹ฑ ๋“ฑ)ํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋ฐ”์ผ๊ณผ ๋ฐ์Šคํฌํ†ฑ ๋ชจ๋‘์—์„œ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ํ•ต์‹ฌ์ด๋‹ค [36-42]. * WebGPU๋Š” WebGL์˜ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๊ตฌ์กฐ๋ฅผ ๋ฒ—์–ด๋‚˜ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋ช…๋ น ์ƒ์„ฑ(Multi-threaded command generation)๊ณผ ์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute shader)๋ฅผ ์ œ๊ณตํ•œ๋‹ค [43-45]. ์ด๋ฅผ ํ†ตํ•ด ์ž…์ž ์‹œ๋ฎฌ๋ ˆ์ด์…˜, 3D ๊ฐ€์šฐ์‹œ์•ˆ ์Šคํ”Œ๋ž˜ํŒ…(3DGS)์—์„œ์˜ ์‹ฌ๋„ ์ •๋ ฌ(Depth sorting) ๋“ฑ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์„ GPU๋กœ ์™„์ „ํžˆ ์˜คํ”„๋กœ๋“œํ•˜์—ฌ CPU ๋ณ‘๋ชฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ˆ˜ ๋ฐฐ ์ด์ƒ์˜ ํ”„๋ ˆ์ž„ ์†๋„ ํ–ฅ์ƒ์„ ์ด๋Œ์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค [45-51]. * Cesium๊ณผ ๊ฐ™์€ 3D ์—”์ง„์€ ์”ฌ(Scene)์ด ์ •์ ์ผ ๋•Œ ์ผ์ • ํ”„๋ ˆ์ž„ ์†๋„๋กœ ๊ณ„์† ๋ Œ๋”๋งํ•˜๋Š” ๋Œ€์‹ , ์นด๋ฉ”๋ผ์˜ ์›€์ง์ž„์ด๋‚˜ ๋ฐ์ดํ„ฐ ๋กœ๋“œ, ์‹œ๊ฐ„์˜ ๋ณ€ํ™” ๋“ฑ ๊ผญ ํ•„์š”ํ•  ๋•Œ๋งŒ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…์‹œ์  ๋ Œ๋”๋ง(Explicit Rendering) ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ํœด ์ƒํƒœ์˜ CPU ์‚ฌ์šฉ๋Ÿ‰์„ 25%๋Œ€์—์„œ 3%๋Œ€๋กœ ํฌ๊ฒŒ ๊ฐ์†Œ์‹œ์ผฐ๋‹ค [52-55]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** AI ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Core Web Vitals|Core Web Vitals]], Largest Contentful Paint, Interaction to Next Paint, Cumulative Layout Shift, [[WebGPU|WebGPU]], [[WebGL|WebGL]] - **Projects/Contexts:** [[Chrome DevTools|Chrome DevTools]], [[Lighthouse|Lighthouse]], Chrome User Experience Report, WebPageTest - **Contradictions/Notes:** FID(First Input Delay)๋Š” ์‚ฌ์šฉ์ž์˜ ์ฒซ ๋ฒˆ์งธ ์ƒํ˜ธ์ž‘์šฉ ์ง€์—ฐ ์‹œ๊ฐ„๋งŒ์„ ์ธก์ •ํ•˜๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์–ด, ํŽ˜์ด์ง€ ์ƒ๋ช…์ฃผ๊ธฐ ์ „์ฒด์˜ ๋ชจ๋“  ์ƒํ˜ธ์ž‘์šฉ ์‘๋‹ต์„ฑ์„ ์ถ”์ ํ•˜๋Š” INP๋กœ ๋Œ€์ฒด๋˜์—ˆ๋‹ค [7-10]. ๋˜ํ•œ, WebGL์€ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๋ช…๋ น ์ œ์ถœ ๊ตฌ์กฐ๋กœ ์ธํ•ด GPU๊ฐ€ ์œ ํœด ์ƒํƒœ์ž„์—๋„ CPU ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•˜๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์—ˆ์œผ๋‚˜, WebGPU๋Š” ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋ช…๋ น ์ƒ์„ฑ๊ณผ ์ปดํ“จํŠธ ์…ฐ์ด๋”๋ฅผ ํ†ตํ•ด ์ด๋Ÿฌํ•œ ์•„ํ‚คํ…์ฒ˜์  ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค [44, 45, 56-59]. --- *Last updated: 2026-04-19* ---