# [[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]. ## ๐Ÿ“– 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]. `