๐ŸŒ 11. ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ์–ด๋–ป๊ฒŒ ํ™”๋ฉด์— ๊ทธ๋ฆด๊นŒ? ๋ Œ๋”๋ง ๊ณผ์ • ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ

JM_Devยท2025๋…„ 4์›” 25์ผ
1
post-thumbnail

ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋“ฃ๋Š” ๋ง ์ค‘ ํ•˜๋‚˜๋Š”
โ€œ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •์„ ์•Œ์•„์•ผ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์ž˜ํ•  ์ˆ˜ ์žˆ๋‹คโ€๋Š” ๊ฒƒ.
์ด๋ฒˆ์—” ์ •๋ง ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์–ด๋–ป๊ฒŒ HTML์„ ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๋Š”์ง€ ์ •๋ฆฌํ•ด๋ดค๋‹ค.


โœ… ์ „์ฒด ๋ Œ๋”๋ง ํ๋ฆ„ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ

HTML โ†’ ํŒŒ์‹ฑ โ†’ DOM Tree
     + CSS โ†’ CSSOM Tree
             โ†“
        Render Tree ์ƒ์„ฑ
             โ†“
       Layout (Reflow)
             โ†“
       Paint (Repaint)
             โ†“
        Composite (ํ•ฉ์„ฑ)

โœ… 1. DOM Tree ์ƒ์„ฑ

๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ํŒŒ์‹ฑํ•˜๋ฉด์„œ ๋…ธ๋“œ ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐํ™”๋œ ํŠธ๋ฆฌ, ์ฆ‰ DOM(Document Object Model)์„ ๋งŒ๋“ ๋‹ค.

<body>
  <h1>Hello</h1>
  <p>World</p>
</body>

์ด๋Ÿฐ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ DOM Tree๋กœ ๋ฐ”๋€๋‹ค.

- body
  โ”œโ”€โ”€ h1
  โ””โ”€โ”€ p

โœ… 2. CSSOM Tree ์ƒ์„ฑ

CSS๋Š” ๋ณ„๋„๋กœ ํŒŒ์‹ฑ๋˜์–ด CSSOM (CSS Object Model)์ด๋ผ๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.
์ด ํŠธ๋ฆฌ๋Š” DOM์ฒ˜๋Ÿผ CSS์˜ ๊ณ„์ธต์  ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

h1 {
  color: red;
}

โœ… 3. Render Tree ์ƒ์„ฑ

DOM Tree + CSSOM Tree๊ฐ€ ๊ฒฐํ•ฉ๋˜์–ด ํ™”๋ฉด์— ์‹ค์ œ ๊ทธ๋ ค์งˆ ์š”์†Œ๋งŒ ์ถ”๋ ค๋‚ธ Render Tree๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค.

  • display: none ์š”์†Œ๋Š” ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.
  • ์‹œ๊ฐ์ ์ธ ์š”์†Œ ์œ„์ฃผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

โœ… 4. Layout ๋‹จ๊ณ„ (Reflow)

Render Tree์˜ ๊ฐ ์š”์†Œ๊ฐ€ ์–ด๋””์— ์œ„์น˜ํ• ์ง€, ์–ผ๋งˆ๋‚˜ ํฌ๊ธฐ๋ฅผ ๊ฐ€์งˆ์ง€ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.
์ด๊ฑธ ํ”ํžˆ Reflow๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ € ์ฐฝ ํฌ๊ธฐ๊ฐ€ ๋ฐ”๋€Œ๊ฑฐ๋‚˜
  • ํฐํŠธ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜
  • DOM์ด ๋™์ ์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฉด ๋ฐœ์ƒํ•จ

โœ… 5. Paint & Composite ๋‹จ๊ณ„

  • Paint: ๊ณ„์‚ฐ๋œ ์œ„์น˜์— ์‹ค์ œ ํ”ฝ์…€์„ ์ฑ„์›€ (์ƒ‰์ƒ, ๊ทธ๋ฆผ์ž, ํ…Œ๋‘๋ฆฌ ๋“ฑ)
  • Composite: ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋กœ ๋‚˜๋‰œ ์š”์†Œ๋“ค์„ ํ•ฉ์ณ์„œ ์ตœ์ข… ํ™”๋ฉด์— ๊ทธ๋ฆผ

โœ… Reflow vs Repaint vs Composite

๋‹จ๊ณ„์„ค๋ช…์„ฑ๋Šฅ ์˜ํ–ฅ๋„
Reflow์œ„์น˜, ํฌ๊ธฐ ์žฌ๊ณ„์‚ฐ๐Ÿ”ฅ ๋†’์Œ
Repaint์ƒ‰์ƒ/๋ฐฐ๊ฒฝ ๋“ฑ ์‹œ๊ฐ ์š”์†Œ๋งŒ ๋ณ€๊ฒฝ์ค‘๊ฐ„
Composite๋ ˆ์ด์–ด ํ•ฉ์„ฑ๋‚ฎ์Œ

๐Ÿ“ ๋‚ด๊ฐ€ ๋А๋‚€ ์ 

์ด์ „์—๋Š” ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ๋งํ•  ๋•Œ Reflow๋ฅผ ์ค„์ด์ž, Paint๋ฅผ ์ตœ์†Œํ™”ํ•˜์ž๋Š” ๋ง์ด
๋ง‰์—ฐํ•˜๊ฒŒ๋งŒ ๋А๊ปด์กŒ๋Š”๋ฐ, ์ด์ œ๋Š” ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๋‹ˆ ๋ฌด์—‡์„ ์™œ ์กฐ์‹ฌํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฐ์ด ์žกํžŒ๋‹ค.
ํŠนํžˆ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋งŒ๋“ค ๋•Œ transform์ด๋‚˜ opacity๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๊ดœํžˆ ๊ถŒ์žฅ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ์—ˆ๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ ๋๋‹ค!


๐Ÿง  "ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๋Š” ๊ฑด ์ฝ”๋“œ ๊ทธ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ, ๋ Œ๋”๋ง์ด๋ผ๋Š” ์—ฌ์ •์„ ๊ฑฐ์นœ ๊ฒฐ๊ณผ๋‹ค."

profile
๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…์„ ์ค€๋น„ ์ค‘ ์ด๋ฉฐ, ์—ด์‹ฌํžˆ ๊ณต๋ถ€ ์ค‘ ์ž…๋‹ˆ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€