์‹œ์ž‘ํ•˜๋ฉฐ

๊ธฐ์กด์— ์•Œ๊ณ  ์žˆ๋˜ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ •๊ณผ ์ถ”๊ฐ€์ ์œผ๋กœ ์•Œ๊ฒŒ ๋œ ๊ฐœ๋…์ธ Reflow, Repaint๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง

  1. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ URI๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ์š”์ฒญํ•œ๋‹ค.
  2. ์„œ๋ฒ„๋Š” ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋ฅผ HTML๋กœ ํŒŒ์‹ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ์‘๋‹ตํ•œ๋‹ค.
  3. ์‘๋‹ต ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ DOM, CSSOM์„ ์ƒ์„ฑํ•œ๋‹ค.
  4. DOM ํŠธ๋ฆฌ์™€ CSSOM ํŠธ๋ฆฌ๋ฅผ ๋งคํ•‘ํ•˜์—ฌ Render ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  5. Render ํŠธ๋ฆฌ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ Layout์„ ๊ทธ๋ฆฌ๊ณ  ํ™”๋ฉด์— ๋ณด์—ฌ์ค€๋‹ค.

Reflow & Repaint

Reflow๋Š” ์š”์†Œ์˜ ์ถ”๊ฐ€, ๋ณ€๊ฒฝ, ์‚ญ์ œ๋กœ ์ธํ•ด Layout ๋‹จ๊ณ„๋ฅผ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ Render ํŠธ๋ฆฌ ์š”์†Œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Reflow๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ

  • ํŽ˜์ด์ง€ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์‹œ Layout ๋‹จ๊ณ„
  • ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ
  • ๋…ธ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋  ๋•Œ
  • ์š”์†Œ์˜ ์œ„์น˜, ํฌ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ (margin, padding, border, width, height ๋“ฑ)
  • ํฐํŠธ๊ฐ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ํ…์ŠคํŠธ, ์ด๋ฏธ์ง€๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ

Repaint๋Š” Render ํŠธ๋ฆฌ์— ๋‹ค์‹œ ๊ทธ๋ฆฌ๋Š” ๊ณผ์ •์„ ๋งํ•ฉ๋‹ˆ๋‹ค. Reflow ํ›„์— ๋ฐœ์ƒ๋˜๊ฑฐ๋‚˜ ์Šคํƒ€์ผ ์†์„ฑ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

Reflow์™€ Repaint ๊ณผ์ •์ด ๋งŽ์ด ๋ฐœ์ƒ๋  ๊ฒฝ์šฐ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ณ  ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ์ €ํ•˜ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” Repaint, Reflow ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋งˆ์น˜๋ฉฐ

Refer

https://velog.io/@shyunju7/%EA%B0%9C%EB%B0%9C%EC%9D%BC%EA%B8%B0-%EB%A9%B4%EC%A0%91-%ED%9B%84%EA%B8%B0