--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Critical Rendering Path|Critical Rendering Path]] last_updated: 2026-05-02 --- # [[Critical Rendering Path|Critical Rendering Path]] ## ๐Ÿ“Œ Brief Summary [[Critical Rendering Path (CRP)|Critical Rendering Path (CRP]]๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML, CSS, JavaScript๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ํ™”๋ฉด์˜ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์น˜๋Š” ์ผ๋ จ์˜ ๋‹จ๊ณ„์  ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค[1]. ์ด ๊ณผ์ •์€ DOM ํŠธ๋ฆฌ ๋ฐ CSSOM ํŠธ๋ฆฌ ๊ตฌ์ถ•, [[Render Tree|Render Tree]] ํ•ฉ์„ฑ, Layout(Reflow), ๊ทธ๋ฆฌ๊ณ  Paint(Repaint) ๋ฐ Compositing ๋‹จ๊ณ„๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค[1, 2]. CRP๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์€ ๋ Œ๋”๋ง ์ฐจ๋‹จ ์š”์†Œ๋ฅผ ์ค„์ด๊ณ  ๋ถˆํ•„์š”ํ•œ Reflow ๋ฐ Repaint๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ๋น ๋ฅธ ์ดˆ๊ธฐ ๋ Œ๋”๋ง๊ณผ ๋งค๋„๋Ÿฌ์šด ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์„ ๋ณด์žฅํ•˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค[3, 4]. --- ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •(Critical Rendering Path)์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ˆ˜์‹ ํ•œ HTML, CSS, [[JavaScript|JavaScript]] ์ฝ”๋“œ๋ฅผ ํ™”๋ฉด์˜ ์‹ค์ œ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์น˜๋Š” ์ผ๋ จ์˜ ์ˆœ์ฐจ์ ์ธ ๋‹จ๊ณ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด ๊ณผ์ •์€ DOM๊ณผ CSSOM์˜ ์ƒ์„ฑ, ๋ Œ๋” ํŠธ๋ฆฌ([[Render Tree|Render Tree]]) ๊ตฌ์ถ•, ๊ธฐํ•˜ํ•™์  ํ˜•ํƒœ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ(Layout), ๊ทธ๋ฆฌ๊ณ  ํ”ฝ์…€์„ ๊ทธ๋ฆฌ๋Š” ํŽ˜์ธํŠธ(Paint) ๋ฐ ํ•ฉ์„ฑ(Composite) ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค [3, 4]. ๋ Œ๋”๋ง ๊ฒฝ๋กœ๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ๋ Œ๋”๋ง ์ฐจ๋‹จ ์š”์†Œ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์€ ์›น ํŽ˜์ด์ง€์˜ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์†๋„๋ฅผ ๋†’์ด๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค [1, 5, 6]. --- ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ(Critical Rendering Path, CRP)์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML, CSS, [[JavaScript|JavaScript]] ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ํ™”๋ฉด์˜ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์น˜๋Š” ์ผ๋ จ์˜ ํ•ต์‹ฌ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค [1, 2]. ์ด ํŒŒ์ดํ”„๋ผ์ธ์€ ์ฃผ๋กœ DOM ๋ฐ [[CSSOM|CSSOM]] ์ƒ์„ฑ, ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•, ๋ ˆ์ด์•„์›ƒ, ํŽ˜์ธํŠธ, ๊ทธ๋ฆฌ๊ณ  ํ•ฉ์„ฑ ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค [3]. ์ด ๊ฒฝ๋กœ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์†๋„(Time to first render)๋ฅผ ๋†’์ด๊ณ  60FPS์˜ ๋ถ€๋“œ๋Ÿฌ์šด ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค [4, 5]. --- ์ค‘์š” ๋ Œ๋”๋ง ๊ฒฝ๋กœ(Critical Rendering Path, CRP)๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML, CSS, [[JavaScript|JavaScript]] ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ํ™”๋ฉด์˜ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ๊นŒ์ง€ ๊ฑฐ์น˜๋Š” ์ผ๋ จ์˜ ํ•„์ˆ˜ ๋‹จ๊ณ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด ๊ฒฝ๋กœ๋Š” ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(DOM), CSS ๊ฐ์ฒด ๋ชจ๋ธ([[CSSOM|CSSOM]]) ์ƒ์„ฑ๋ถ€ํ„ฐ ๋ Œ๋” ํŠธ๋ฆฌ ๊ตฌ์ถ•, ๋ ˆ์ด์•„์›ƒ, ๊ทธ๋ฆฌ๊ณ  ํŽ˜์ธํŠธ ๋‹จ๊ณ„๊นŒ์ง€ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค [2]. ์ค‘์š” ๋ Œ๋”๋ง ๊ฒฝ๋กœ์˜ ๊ณผ์ •์„ ์ตœ์ ํ™”ํ•˜๋ฉด ์›น ํŽ˜์ด์ง€์˜ ์ฒซ ๋ Œ๋”๋ง ์‹œ๊ฐ„(Time to First Render)์„ ๋‹จ์ถ•ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์˜ ์ง€์—ฐ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 3]. --- ํฌ๋ฆฌํ‹ฐ์ปฌ ๋ Œ๋”๋ง ํŒจ์Šค(Critical Rendering Path, CRP)๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML, CSS, [[JavaScript|JavaScript]] ์ฝ”๋“œ๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ํ™”๋ฉด์˜ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์น˜๋Š” ์ผ๋ จ์˜ ๋‹จ๊ณ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1, 2]. ๋ธŒ๋ผ์šฐ์ €๋Š” DOM๊ณผ [[CSSOM|CSSOM]]์„ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ Œ๋” ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•œ ๋’ค, ์š”์†Œ์˜ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ ˆ์ด์•„์›ƒ(Layout) ๋‹จ๊ณ„์™€ ํ™”๋ฉด์— ๊ทธ๋ฆฌ๋Š” ํŽ˜์ธํŠธ(Paint) ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค [2, 3]. ์ด ๊ฒฝ๋กœ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์‹œ๊ฐ„(Time to First Render)์„ ๋‹จ์ถ•ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์˜ ์œ ์ฐฝํ•จ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์—”์ง€๋‹ˆ์–ด๋ง์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค [1, 4]. ## ๐Ÿ“– Core Content * **[[DOM (Document Object Model)|DOM (Document Object Model]] ๊ตฌ์ถ•:** ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ HTML ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ง„์ ์œผ๋กœ ํŒŒ์‹ฑํ•˜์—ฌ DOM ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค[2, 5]. ์ˆ˜์‹ ๋œ ๋ฐ”์ดํŠธ๋Š” ํ† ํฐ ๋ฐ ๋…ธ๋“œ๋กœ ๋ณ€ํ™˜๋˜์–ด ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ˜•์„ฑํ•˜๋ฉฐ, ๋…ธ๋“œ์˜ ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ดํ›„ ๋ Œ๋”๋ง ๊ฒฝ๋กœ์˜ ์—ฐ์‚ฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง‘๋‹ˆ๋‹ค[2, 5, 6]. * **CSSOM (CSS Object Model) ๊ตฌ์ถ•:** DOM๊ณผ ๋‹ฌ๋ฆฌ CSSOM ๊ตฌ์ถ•์€ ์ ์ง„์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์œผ๋ฉฐ, ํŒŒ์‹ฑ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ Œ๋”๋ง์„ ์ฐจ๋‹จ(Render-[[Blocking|Blocking]])ํ•ฉ๋‹ˆ๋‹ค[6-8]. ์ด๋Š” ์Šคํƒ€์ผ์ด ๋’ค๋Šฆ๊ฒŒ ๋ฎ์–ด์”Œ์›Œ์ง€๋ฉด์„œ ์Šคํƒ€์ผ์ด ์ ์šฉ๋˜์ง€ ์•Š์€ ์ฝ˜ํ…์ธ ๊ฐ€ ํ™”๋ฉด์— ๋ฒˆ์ฉ์ด๋Š” ํ˜„์ƒ(FOUC)์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค[6, 7]. * **Render Tree ํ•ฉ์„ฑ:** DOM๊ณผ CSSOM์ด ์™„์„ฑ๋˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด ๋‘˜์„ ๊ฒฐํ•ฉํ•ด ํ™”๋ฉด์— ์‹ค์ œ๋กœ ๊ทธ๋ ค์ง€๋Š” ๊ฐ€์‹œ์  ๋…ธ๋“œ(Visible nodes)๋งŒ ํฌํ•จํ•˜๋Š” Render Tree๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค[9-11]. `