๐
๋ธ๋ผ์ฐ์ ๋ ์ด๋ค ๊ณผ์ ์ ํตํด ๋ ๋๋ง ๋ ๊น?
December 31, 2021
์์ํ๋ฉฐ
๊ธฐ์กด์ ์๊ณ ์๋ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ๊ณผ ์ถ๊ฐ์ ์ผ๋ก ์๊ฒ ๋ ๊ฐ๋ ์ธ Reflow, Repaint๋ฅผ ์ ๋ฆฌํ๋ ๊ธ์ ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ๋๋ง
- ๋ธ๋ผ์ฐ์ ๊ฐ URI๋ฅผ ํตํด ์๋ฒ๋ก ์์ฒญํ๋ค.
- ์๋ฒ๋ ์์ฒญํ ๋ฐ์ดํฐ๋ฅผ HTML๋ก ํ์ฑํ ์ ์๋ ํํ๋ก ์๋ตํ๋ค.
- ์๋ต ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ์ฌ DOM, CSSOM์ ์์ฑํ๋ค.
- DOM ํธ๋ฆฌ์ CSSOM ํธ๋ฆฌ๋ฅผ ๋งคํํ์ฌ Render ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
- Render ํธ๋ฆฌ๋ฅผ ๋ฐํ์ผ๋ก Layout์ ๊ทธ๋ฆฌ๊ณ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค.
Reflow & Repaint
Reflow๋ ์์์ ์ถ๊ฐ, ๋ณ๊ฒฝ, ์ญ์ ๋ก ์ธํด Layout ๋จ๊ณ๋ฅผ ๋ค์ ์ํํ๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ด๋ Render ํธ๋ฆฌ ์์๋ฅผ ๋ฐํ์ผ๋ก ํฌ๊ธฐ์ ์์น๋ฅผ ๋ค์ ๊ณ์ฐํ๊ฒ ๋ฉ๋๋ค.
Reflow๊ฐ ๋ฐ์ํ ์ ์๋ ์ํฉ
- ํ์ด์ง ์ด๊ธฐ ๋ ๋๋ง ์ Layout ๋จ๊ณ
- ์๋์ฐ ์ฌ์ด์ฆ๊ฐ ๋ณ๊ฒฝ๋ ๋
- ๋ ธ๋๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ๋
- ์์์ ์์น, ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋์์ ๋ (margin, padding, border, width, height ๋ฑ)
- ํฐํธ๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ํ ์คํธ, ์ด๋ฏธ์ง๊ฐ ๋ณ๊ฒฝ๋ ๋
Repaint๋ Render ํธ๋ฆฌ์ ๋ค์ ๊ทธ๋ฆฌ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค. Reflow ํ์ ๋ฐ์๋๊ฑฐ๋ ์คํ์ผ ์์ฑ์ด ๋ณ๊ฒฝ๋์์ ๋ ๋ฐ์ํฉ๋๋ค.
Reflow์ Repaint ๊ณผ์ ์ด ๋ง์ด ๋ฐ์๋ ๊ฒฝ์ฐ ๋ค์ ๊ณ์ฐํ๊ณ ๊ทธ๋ฆฌ๋ ์์
์ด ์ํ๋๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ์ ํ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ต๋๋ค.
๊ทธ๋์ ์ฐ๋ฆฌ๋ Repaint, Reflow ๊ฐ ๋ฐ์ํ๋ ํ์๋ฅผ ์ต์ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.