--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Web Performance Optimization|Web Performance Optimization]] last_updated: 2026-05-02 --- # [[Web Performance Optimization|Web Performance Optimization]] ## ๐Ÿ“Œ Brief Summary > ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”(Web [[Performance Optimization|Performance Optimization]])๋Š” ์›น์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅด๊ฒŒ ๋А๊ปด์ง€๋Š”์ง€(์ธ์ง€๋œ ์„ฑ๋Šฅ)๋ฅผ ์ธก์ •ํ•˜๊ณ  ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค [1]. ๋А๋ฆฐ ์›น์‚ฌ์ดํŠธ๋Š” ์‚ฌ์šฉ์ž์˜ ์ขŒ์ ˆ๊ฐ์„ ์œ ๋ฐœํ•˜๊ณ  ์ดํƒˆ๋ฅ ์„ ๋†’์ด๋ฉฐ ๊ฒ€์ƒ‰ ์—”์ง„ ์ˆœ์œ„(SEO)์—๋„ ์•…์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ, ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ([[Core Web Vitals|Core Web Vitals]])๊ณผ ๊ฐ™์€ ํ‘œ์ค€ํ™”๋œ ์ง€ํ‘œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋”ฉ ์†๋„, ์ƒํ˜ธ์ž‘์šฉ์„ฑ, ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜์ ์ด๋‹ค [1-5]. --- ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ์›น ํŽ˜์ด์ง€๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋˜๊ณ , ์›ํ™œํ•˜๊ฒŒ ๋ Œ๋”๋ง๋˜๋ฉฐ, ์‚ฌ์šฉ์ž์˜ ์ƒํ˜ธ์ž‘์šฉ์— ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋„๋ก ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ ๊ณผ ์ „๋žต์„ ์˜๋ฏธํ•œ๋‹ค [1-3]. ์ด๋Š” ์ค‘์š” ๋ Œ๋”๋ง ๊ฒฝ๋กœ([[Critical Rendering Path|Critical Rendering Path]])๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ๋ฆฌํ”Œ๋กœ์šฐ(Reflow)์™€ ๋ฆฌํŽ˜์ธํŠธ(Repaint)๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ , ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ์†๋„์™€ ํšจ์œจ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๊ณผ์ •์„ ํฌํ•จํ•œ๋‹ค [4-7]. ํ˜„๋Œ€์˜ ํ”„๋ก ํŠธ์—”๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” ์ ์ ˆํ•œ ๋ Œ๋”๋ง ์ „๋žต(CSR, SSR, SSG ๋“ฑ)์˜ ์„ ํƒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค ํฌ๊ธฐ ์ถ•์†Œ, ๊ทธ๋ฆฌ๊ณ  ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•œ ๋ Œ๋”๋ง ํšŸ์ˆ˜ ํ†ต์ œ๊ฐ€ ํ•ต์‹ฌ์ ์ธ ์ตœ์ ํ™” ๋ชฉํ‘œ๋กœ ๋‹ค๋ฃจ์–ด์ง„๋‹ค [8-11]. ## ๐Ÿ“– Core Content * **์ฃผ์š” ์„ฑ๋Šฅ ์ธก์ • ์ง€ํ‘œ (Core Web Vitals ๋“ฑ)** * Google์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด LCP(Largest Contentful Paint, ์ตœ๋Œ€ ์ฝ˜ํ…์ธ  ๋ Œ๋”๋ง ์‹œ๊ฐ„), INP(Interaction to Next Paint, ๋‹ค์Œ ํŽ˜์ธํŠธ์— ๋Œ€ํ•œ ์ƒํ˜ธ์ž‘์šฉ), CLS(Cumulative Layout [[Shift|Shift]], ๋ˆ„์  ๋ ˆ์ด์•„์›ƒ ์ด๋™)๋ฅผ ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ ์ง€ํ‘œ๋กœ ์‚ฌ์šฉํ•œ๋‹ค [2, 6]. * INP๋Š” ์ฒซ ๋ฒˆ์งธ ์ƒํ˜ธ์ž‘์šฉ๋งŒ ์ธก์ •ํ•˜๋˜ ๊ธฐ์กด์˜ FID(First Input Delay)๋ฅผ ๋Œ€์ฒดํ•œ ์ง€ํ‘œ๋กœ, ํŽ˜์ด์ง€ ๋ฐฉ๋ฌธ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ํด๋ฆญ์ด๋‚˜ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๋“ฑ์˜ ์ „์ฒด ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜์—ฌ ๋”์šฑ ํ˜„์‹ค์ ์ธ ๋ฐ˜์‘์„ฑ์„ ๋ฐ˜์˜ํ•œ๋‹ค [7-10]. * ์ด ์™ธ์—๋„ TTFB(Time to First Byte), TTI(Time to Interactive), TBT(Total [[Blocking|Blocking]] Time) ๋“ฑ์˜ ๋ณด์กฐ ์ง€ํ‘œ๊ฐ€ ์„ฑ๋Šฅ ํ‰๊ฐ€์— ํ™œ์šฉ๋œ๋‹ค [11, 12]. * **๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„ ๋ฐฉ์‹** * **์‹คํ—˜์‹ค ๋ฐ์ดํ„ฐ(Lab Data):** [[Lighthouse|Lighthouse]]๋‚˜ WebPageTest์™€ ๊ฐ™์ด ํ†ต์ œ๋œ ๊ธฐ๊ธฐ์™€ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์—์„œ ์ˆ˜์ง‘๋˜๋Š” ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ(Synthetic [[Testing|Testing]]) ๋ฐ์ดํ„ฐ๋กœ, ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค [13-15]. * **ํ•„๋“œ ๋ฐ์ดํ„ฐ(Field Data):** [[CrUX|CrUX]]([[Chrome|Chrome]] User Experience Report)๋‚˜ ์‹ค์ œ ์‚ฌ์šฉ์ž ๋ชจ๋‹ˆํ„ฐ๋ง(RUM) ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒช๋Š” ์„ฑ๋Šฅ์„ ์ธก์ •ํ•œ ๋ฐ์ดํ„ฐ์ด๋‹ค [16, 17]. ์†Œ์ˆ˜ ์˜ˆ์™ธ ๊ฐ’์— ์˜ํ•œ ํ‰๊ท ์˜ ์™œ๊ณก์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์•™๊ฐ’(p50)์ด๋‚˜ 75๋ฐฑ๋ถ„์œ„์ˆ˜(p75), 95๋ฐฑ๋ถ„์œ„์ˆ˜ ๋“ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•œ๋‹ค [18-20]. * **์ผ๋ฐ˜์ ์ธ ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•** * **[[JavaScript|JavaScript]] ๋ฐ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ตœ์ ํ™”:** 50ms๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ธด ์ž‘์—…([[Long Tasks|Long Tasks]])์„ ์ž‘๊ฒŒ ์ชผ๊ฐœ๊ฑฐ๋‚˜ ์›น ์›Œ์ปค(Web workers)๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ํ•„์ˆ˜์ ์ด์ง€ ์•Š์€ JS์˜ ๋กœ๋“œ๋ฅผ ์ง€์—ฐ(Defer)์‹œ์ผœ์•ผ ํ•œ๋‹ค [21, 22]. Firefox ๋“ฑ์—์„œ ์ง€์›ํ•˜๋Š” [[Scheduler API|Scheduler API]](`scheduler.yield()`)๋ฅผ ํ†ตํ•ด ๋ธŒ๋ผ์šฐ์ € ์Šค์ผ€์ค„๋Ÿฌ์— ์ œ์–ด๊ถŒ์„ ์–‘๋ณดํ•˜์—ฌ ์ƒํ˜ธ์ž‘์šฉ ์ง€์—ฐ์„ ์ค„์ผ ์ˆ˜๋„ ์žˆ๋‹ค [23]. * **์ด๋ฏธ์ง€ ๋ฐ ๋ Œ๋”๋ง ์ตœ์ ํ™”:** WebP, AVIF, [[JPEG XL|JPEG XL]] ๋“ฑ ํšจ์œจ์ ์ธ ์ตœ์‹  ์ด๋ฏธ์ง€ ํฌ๋งท์„ ์‚ฌ์šฉํ•˜๊ณ , ๋ทฐํฌํŠธ ํฌ๊ธฐ์— ๋งž๋Š” ์ ์ ˆํ•œ ํ•ด์ƒ๋„๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค [24-29]. ๋˜ํ•œ ํ™”๋ฉด ๋ฐ– ์ฝ˜ํ…์ธ ์˜ ๋ Œ๋”๋ง์„ ๊ฑด๋„ˆ๋›ฐ๋Š” CSS `content-visibility` ์†์„ฑ์„ ํ™œ์šฉํ•˜๋ฉด ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค [30, 31]. ๊ฐ•์ œ ๋™๊ธฐ์‹ ๋ ˆ์ด์•„์›ƒ([[Layout Thrashing|Layout Thrashing]])์„ ์œ ๋ฐœํ•˜๋Š” ์ฝ”๋“œ๋Š” ํ”ผํ•ด์•ผ ํ•œ๋‹ค [32, 33]. * **์ถ”์ธก ๊ทœ์น™(Speculation Rules):** ์‚ฌ์šฉ์ž๊ฐ€ ๋งํฌ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋“ฑ์˜ ์ƒํ˜ธ์ž‘์šฉ ์‹œ, ํ–ฅํ›„ ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋‚˜ ํŽ˜์ด์ง€๋ฅผ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง ๋ฐ ๋กœ๋“œํ•˜์—ฌ ํƒ์ƒ‰ ์†๋„๋ฅผ ๋Œ€ํญ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค [34, 35]. * **3D ์›น ๊ทธ๋ž˜ํ”ฝ ([[WebGL|WebGL]] / [[WebGPU|WebGPU]]) ์„ฑ๋Šฅ ์ตœ์ ํ™”** * WebGL ํ™˜๊ฒฝ์—์„œ๋Š” CPU์™€ GPU ๊ฐ„์˜ ํ†ต์‹ ๊ณผ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์œ ๋ฐœํ•˜๋ฏ€๋กœ, ๋“œ๋กœ์šฐ ์ฝœ([[Draw Call|Draw Call]]s) ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”(๋ฐฐ์นญ, ์ธ์Šคํ„ด์‹ฑ ๋“ฑ)ํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋ฐ”์ผ๊ณผ ๋ฐ์Šคํฌํ†ฑ ๋ชจ๋‘์—์„œ ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ํ•ต์‹ฌ์ด๋‹ค [36-42]. * WebGPU๋Š” WebGL์˜ ๋‹จ์ผ ์Šค๋ ˆ๋“œ ๊ตฌ์กฐ๋ฅผ ๋ฒ—์–ด๋‚˜ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๋ช…๋ น ์ƒ์„ฑ(Multi-threaded command generation)๊ณผ ์ปดํ“จํŠธ ์…ฐ์ด๋”([[Compute Shader|Compute Shader]])๋ฅผ ์ œ๊ณตํ•œ๋‹ค [43-45]. ์ด๋ฅผ ํ†ตํ•ด ์ž…์ž ์‹œ๋ฎฌ๋ ˆ์ด์…˜, 3D ๊ฐ€์šฐ์‹œ์•ˆ ์Šคํ”Œ๋ž˜ํŒ…(3DGS)์—์„œ์˜ ์‹ฌ๋„ ์ •๋ ฌ(Depth [[Sorting|Sorting]]) ๋“ฑ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์„ GPU๋กœ ์™„์ „ํžˆ ์˜คํ”„๋กœ๋“œํ•˜์—ฌ CPU ๋ณ‘๋ชฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ˆ˜ ๋ฐฐ ์ด์ƒ์˜ ํ”„๋ ˆ์ž„ ์†๋„ ํ–ฅ์ƒ์„ ์ด๋Œ์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค [45-51]. * [[Cesium|Cesium]]๊ณผ ๊ฐ™์€ 3D ์—”์ง„์€ ์”ฌ(Scene)์ด ์ •์ ์ผ ๋•Œ ์ผ์ • ํ”„๋ ˆ์ž„ ์†๋„๋กœ ๊ณ„์† ๋ Œ๋”๋งํ•˜๋Š” ๋Œ€์‹ , ์นด๋ฉ”๋ผ์˜ ์›€์ง์ž„์ด๋‚˜ ๋ฐ์ดํ„ฐ ๋กœ๋“œ, ์‹œ๊ฐ„์˜ ๋ณ€ํ™” ๋“ฑ ๊ผญ ํ•„์š”ํ•  ๋•Œ๋งŒ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช…์‹œ์  ๋ Œ๋”๋ง(Explicit Rendering) ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ํœด ์ƒํƒœ์˜ CPU ์‚ฌ์šฉ๋Ÿ‰์„ 25%๋Œ€์—์„œ 3%๋Œ€๋กœ ํฌ๊ฒŒ ๊ฐ์†Œ์‹œ์ผฐ๋‹ค [52-55]. --- * **์ค‘์š” ๋ Œ๋”๋ง ๊ฒฝ๋กœ(Critical Rendering Path, CRP) ์ตœ์ ํ™”:** ๋ธŒ๋ผ์šฐ์ €๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋ฐ›์€ HTML๊ณผ CSS๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ DOM๊ณผ [[CSSOM|CSSOM]] ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ๊ฒฐํ•ฉํ•ด ๋ Œ๋” ํŠธ๋ฆฌ(Render Tree)๋ฅผ ๊ตฌ์ถ•ํ•œ ๋’ค, ์š”์†Œ์˜ ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐ(Layout)ํ•˜๊ณ  ํ™”๋ฉด์˜ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜(Paint)ํ•˜๋Š” ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค [5, 12-14]. ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์‹œ๊ฐ„์„ ์ค„์ด๋ ค๋ฉด ๋ Œ๋”๋ง์„ ์ฐจ๋‹จํ•˜๋Š” CSS๋‚˜ ํŒŒ์‹ฑ์„ ์ฐจ๋‹จํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(Render-Blocking & [[Parser|Parser]]-blocking resources)์˜ ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œ ์ˆœ์„œ๋ฅผ ์ตœ์ ํ™”ํ•ด์•ผ ํ•œ๋‹ค [15-18]. ๋˜ํ•œ DOM ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๋ ˆ์ด์•„์›ƒ๊ณผ ํŽ˜์ธํŠธ ๋‹จ๊ณ„์˜ ์—ฐ์‚ฐ ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ ๋ถˆํ•„์š”ํ•œ DOM ๋…ธ๋“œ ๊นŠ์ด๋ฅผ ์ค„์—ฌ์•ผ ํ•œ๋‹ค [19-21]. * **๋ฆฌํ”Œ๋กœ์šฐ(Reflow) ๋ฐ ๋ฆฌํŽ˜์ธํŠธ(Repaint) ์ตœ์†Œํ™”:** DOM ๊ตฌ์กฐ์˜ ๋ณ€๊ฒฝ, ์ฐฝ ํฌ๊ธฐ ์กฐ์ ˆ, ์š”์†Œ์˜ ํฌ๊ธฐ ๋ฐ ์œ„์น˜ ๋ณ€๊ฒฝ ๋“ฑ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋น„์šฉ์ด ํฐ ๋ฆฌํ”Œ๋กœ์šฐ(๋˜๋Š” ๋ ˆ์ด์•„์›ƒ)๋ฅผ ์œ ๋ฐœํ•œ๋‹ค [22-25]. ์‹œ๊ฐ์  ์Šคํƒ€์ผ(์ƒ‰์ƒ, ๊ทธ๋ฆผ์ž ๋“ฑ)๋งŒ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฆฌํŽ˜์ธํŠธ์˜ ๊ฒฝ์šฐ ๋ฆฌํ”Œ๋กœ์šฐ๋ณด๋‹ค๋Š” ์—ฐ์‚ฐ๋Ÿ‰์ด ์ ์ง€๋งŒ ๊ณผ๋„ํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ”„๋ ˆ์ž„ ์†๋„๋ฅผ ์ €ํ•˜์‹œํ‚จ๋‹ค [7, 26, 27]. ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” DOM ์—…๋ฐ์ดํŠธ๋ฅผ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์š”์†Œ ์ด๋™ ์‹œ ์œ„์น˜ ๊ด€๋ จ ์†์„ฑ ๋Œ€์‹  GPU ๊ฐ€์†์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” `transform` ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค [7, 26, 28-30]. * **React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ Œ๋”๋ง ์ตœ์ ํ™” ๊ธฐ๋ฒ•:** React์˜ ๋ Œ๋”๋ง ํŠน์„ฑ์ƒ ๋ถ€๋ชจ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์†์„ฑ ๋ณ€๊ฒฝ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—ฐ์‡„์ ์œผ๋กœ ๋ฆฌ๋ Œ๋”๋ง๋˜๋ฉฐ ์—ฐ์‚ฐ ๋น„์šฉ์„ ๋‚ญ๋น„ํ•  ์ˆ˜ ์žˆ๋‹ค [31, 32]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด `React.memo`๋‚˜ `useMemo` ๋“ฑ์„ ํ†ตํ•œ ๋ฉ”๋ชจ์ด์ œ์ด์…˜, ๋Œ€๊ทœ๋ชจ ๋ชฉ๋ก์—์„œ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋…ธ๋“œ๋งŒ ๊ทธ๋ฆฌ๋Š” ๊ฐ€์ƒํ™”(Virtualization), ๊ทธ๋ฆฌ๊ณ  ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ์ž๋™ ์ผ๊ด„ ์ฒ˜๋ฆฌ([[Automatic Batching|Automatic Batching]])๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค [33-36]. ์•„์šธ๋Ÿฌ React 19์˜ ๋™์‹œ์„ฑ ๋ Œ๋”๋ง ํ›…(`useTransition`, `[[useDeferredValue|useDeferredValue]]`)์„ ํ™œ์šฉํ•˜๋ฉด ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ ์ค‘์—๋„ ๊ธด๊ธ‰ํ•œ ์ƒํ˜ธ์ž‘์šฉ์˜ ์‘๋‹ต์„ฑ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๊ณ  ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค [37-39]. * **๋ Œ๋”๋ง ์ „๋žต ์„ ํƒ ๋ฐ ํ•˜์ด๋“œ๋ ˆ์ด์…˜([[Hydration|Hydration]]) ๋ณ‘๋ชฉ ๊ด€๋ฆฌ:** ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๊ฒฉ๊ณผ ์š”๊ตฌ์— ๋”ฐ๋ผ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(CSR), ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR), ์ •์  ์‚ฌ์ดํŠธ ์ƒ์„ฑ(SSG), ์ ์ง„์  ์ •์  ์žฌ์ƒ์„ฑ(ISR) ๋“ฑ์˜ ๋ฐฉ์‹์„ ์ „๋žต์ ์œผ๋กœ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค [9, 40-42]. SSR๊ณผ SSG๋Š” ์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ์™„์„ฑ๋œ HTML์„ ์ „๋‹ฌํ•˜์—ฌ ๋น ๋ฅธ ์ดˆ๊ธฐ ์ฝ˜ํ…์ธ  ํ‘œ์‹œ(FCP)์™€ ์šฐ์ˆ˜ํ•œ SEO๋ฅผ ๋ณด์žฅํ•˜์ง€๋งŒ, SSR์˜ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  HTML์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” 'ํ•˜์ด๋“œ๋ ˆ์ด์…˜(Hydration)' ๊ณผ์ •์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ƒํ˜ธ์ž‘์šฉ(TTI)์ด ์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จ(TBT)ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค [43-47]. * **[[React Server Components (RSC)|React Server Components (RSC]]์˜ ๋„์ž…๊ณผ ์ž๋™ํ™” ๋„๊ตฌ:** ๊ธฐ์กด ๋ Œ๋”๋ง ๋ฐฉ์‹์˜ ๋ฒˆ๋“ค ํฌ๊ธฐ ๋ฐ ํ•˜์ด๋“œ๋ ˆ์ด์…˜ ๋ฌธ์ œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„œ๋ฒ„์—์„œ๋งŒ ์‹คํ–‰ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์—๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๋Š” RSC ๋ชจ๋ธ์ด ๋„์ž…๋˜์—ˆ๋‹ค [48-51]. ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋Š” JS ํŽ˜์ด๋กœ๋“œ ํฌ๊ธฐ๋ฅผ ๋Œ€ํญ ์ค„์ด๊ณ  ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ง์ ‘ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค [52-54]. ๋” ๋‚˜์•„๊ฐ€ ์ตœ์‹  [[React Compiler|React Compiler]]๋Š” ๋นŒ๋“œ ํƒ€์ž„์— ์ฝ”๋“œ์˜ ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ(AST)๋ฅผ ๋ถ„์„ํ•ด ์ž๋™์œผ๋กœ ์„ธ๋ถ„ํ™”๋œ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์‚ฝ์ž…ํ•ด์ฃผ์–ด, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋‹ด์„ ๋Œ€ํญ ๊ฐ์†Œ์‹œํ‚จ๋‹ค [55-58]. ## โš–๏ธ Trade-offs & Caveats - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** AI ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— Knowledge Connections - **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* --- --- - **Related Topics:** `[[Critical Rendering Path|Critical Rendering Path]]`, `Reflow and Repaint`, `React Server Components`, `ํ•˜์ด๋“œ๋ ˆ์ด์…˜(Hydration)`, `๋™์‹œ์„ฑ ๋ Œ๋”๋ง([[Concurrent Rendering|Concurrent Rendering]])`, `[[React Compiler|React Compiler]]` - **Projects/Contexts:** `์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜์˜ SEO ์ตœ์ ํ™” ์›น์‚ฌ์ดํŠธ ๋ฐ ์ด์ปค๋จธ์Šค(E-commerce) ํ”Œ๋žซํผ` (์ดˆ๊ธฐ ํ™”๋ฉด์˜ ๋น ๋ฅธ ๋ Œ๋”๋ง๊ณผ ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด SSR, SSG, ISR์ด ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋˜๋Š” ๋งฅ๋ฝ) [43, 59-62], `๊ณ ๋„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”ํ•œ ๊ด€๋ฆฌ์ž ๋Œ€์‹œ๋ณด๋“œ ๋ฐ [[SaaS|SaaS]]` (์ดˆ๊ธฐ ๋ Œ๋”๋ง๋ณด๋‹ค ์‹ค์‹œ๊ฐ„ ์ƒํƒœ ์—…๋ฐ์ดํŠธ์™€ ์ธํ„ฐ๋ž™์…˜ ์†๋„๊ฐ€ ์ค‘์‹œ๋˜์–ด CSR ๋˜๋Š” ์„ ํƒ์  ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ ํ•ฉํ•œ ๋งฅ๋ฝ) [63-67]. - **Contradictions/Notes:** - **์ˆ˜๋™ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์˜ ์œ ์šฉ์„ฑ์— ๋Œ€ํ•œ ๊ด€์  ๋ณ€ํ™”:** ๊ธฐ์กด React ์ƒํƒœ๊ณ„์—์„œ๋Š” ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ง‰๊ธฐ ์œ„ํ•ด `useMemo`๋‚˜ `useCallback`๊ณผ ๊ฐ™์€ ์ˆ˜๋™ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์ด ๊ถŒ์žฅ๋˜์—ˆ์œผ๋‚˜, ์–•์€ ๋น„๊ต ๊ฒ€์‚ฌ ์ž์ฒด์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ์ข…์†์„ฑ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ ธ ๊ณผ๋„ํ•œ ์‚ฌ์šฉ์ด ์•ˆํ‹ฐ ํŒจํ„ด์œผ๋กœ ์ง€์ ๋˜๊ธฐ๋„ ํ–ˆ๋‹ค [68, 69]. ๊ทธ๋Ÿฌ๋‚˜ React 19์˜ React Compiler ๋“ฑ์žฅ ์ดํ›„, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ •์  ๋ถ„์„์„ ํ†ตํ•ด ์ตœ์ ์˜ ์œ„์น˜์— ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์ ์šฉํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๊ฐœ๋ฐœ์ž์˜ ์ˆ˜๋™ ๊ฐœ์ž… ํ•„์š”์„ฑ์ด ํฌ๊ฒŒ ์‚ฌ๋ผ์ง€๋Š” ํŒจ๋Ÿฌ๋‹ค์ž„ ์ „ํ™˜์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋‹ค [55, 58, 70-72]. - **SSR์˜ ์„ฑ๋Šฅ ์ง€ํ‘œ ๋”œ๋ ˆ๋งˆ:** ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR)์€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์™„์„ฑ๋œ HTML์„ ์ฆ‰์‹œ ์ œ๊ณตํ•˜์—ฌ ์ดˆ๊ธฐ ์ฝ˜ํ…์ธ  ํ‘œ์‹œ(FCP)์™€ SEO๋ฅผ ๊ฐœ์„ ํ•˜์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์ •์  ์š”์†Œ์— ์ƒํ˜ธ์ž‘์šฉ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ํ•˜์ด๋“œ๋ ˆ์ด์…˜ ๊ณผ์ •์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ƒํ˜ธ์ž‘์šฉ ์‹œ์ž‘ ์‹œ๊ฐ„(TTI)์ด ํฌ๊ฒŒ ์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ฐจ๋‹จ ์‹œ๊ฐ„(TBT)์ด ์ฆ๊ฐ€ํ•˜๋Š” ์—ญ์„ค์ ์ธ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค [43, 45, 73-75]. --- *Last updated: 2026-04-25*