๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
๋ธ๋ผ์ฐ์ ๋ ๋๋ง์ ์ดํด๋ณด๊ธฐ ์์, ๋ธ๋ผ์ฐ์ ์ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค : ์ฃผ์ ํ์์ค, ๋ถ๋งํฌ ๋ฉ๋ด ๋ฑ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฐฝ์ ์ ์ธํ ๋ชจ๋ ๋ถ๋ถ์ผ๋ก ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ ๋ถ๋ถ์ด๋ค.
- ๋ธ๋ผ์ฐ์ ์์ง : ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ ๋๋ง ์์ง ์ฌ์ด์ ๋์์ ์ ์ดํ๋ ์์ง์ผ๋ก ํ์ด์ง ๋ก๋์ ๋ ๋๋ง ์์ง ์ ๋ฌ ๊ฐ์ ์ญํ ์ ํ๋ค.
- ๋ ๋๋ง ์์ง : ์์ฒญํ ์ปจํ
์ธ ๋ฅผ ํ์ํ๋ ์์ง, ํ๋ฉด ์ถ๋ ฅ
- ๋คํธ์ํฌ ์์ฒญ : HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ๋ก๋ถํฐ ๋ฆฌ์์ค๋ฅผ ๋ฐ์์จ๋ค. ๊ฐ ํ๋ซํผ ํ๋ถ์์ ์คํ๋๊ณ ๋
๋ฆฝ์ ์ธํฐํ์ด์ค์ด๋ค.
- UI ๋ฐฑ์๋ : ์ฝค๋ณด ๋ฐ์ค, ์ฐฝ ๋ฑ ๊ธฐ๋ณธ์ ์ฅ์น๋ฅผ ๊ทธ๋ ค๋ด๊ณ , ํ๋ซํผ์ ๋ช
์ํ์ง ์์ ์ผ๋ฐ์ ์ธํฐํ์ด์ค
- ์๋ฐ์คํฌ๋ฆฝํธ ํด์๊ธฐ : ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ํด์ํ๋ฉฐ ์คํํ๋ ์ญํ
- ์๋ฃ ์ ์ฅ์ : ์ฟ ํค, ๋ก์ปฌ ์คํ ๋ฆฌ์ง ๋ฑ ํด๋ผ์ด์ธํธ ์ธก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์น ๋ฐ์ดํฐ ๋ฒ ์ด์ค๊ฐ ์ ์๋ผ ์๋ ์ฅ์์ด๋ค.
- ๋ธ๋ผ์ฐ์ ํ์ฅ ๊ธฐ๋ฅ : ์ถ๊ฐ ๊ธฐ๋ฅ ํน์ ์ฌ์ฉ์ ์ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ๊ด๋ฆฌํ๋ค.
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ์๋ฆฌ
๋ธ๋ผ์ฐ์ ๋ ์นํท(webkit)์ด๋ ๊ฒ์ฝ(Gecko) ๋ฑ ๋ ๋๋ง ์์ง์ ์ฌ์ฉํด ํ๋ฉด์ ์์๋ฅผ ๋ ๋๋งํ๋ค.
๋ ๋๋ง ์์ง์ HTML, CSS, JS๋ก ๋ ๋๋ง์ ํ๋ ๊ฒฝ์ฐ, CRP(Cirtical Reandering Path) ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํด ์งํ๋๋ค.
CRP ํ๋ก์ธ์ค๋ ํ์ด์ง์ ์ด๊ธฐ ๋ก๋ฉ ์๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ค์ํ ์ํฅ์ ๋ฏธ์น๋ค.
๋ฆฌ์์ค์ ์๋ถ์ด๋ ์บ์ฑ, ์ง์ฐ ์ต์ํ ๋ฑ์ ์ฌ์ฉํ ์ต์ ํ๋ฅผ ํตํด ๋น ๋ฅธ ๋ก๋ฉ๊ณผ ๋ถ๋๋ฌ์ด ๋ ๋๋ง์ ๊ตฌํํ ์ ์๋ค.
CRP ํ๋ก์ธ์ค
- HTML ํ์ฑ : DOM(Document Object Model) TREE ๊ตฌ์ถ
- CSS ํ์ฑ : CSSOM(CSS Object Model) TREE ๊ตฌ์ถ
- JS ์คํ // HTML ๋ด๋ถ ์คํฌ๋ฆฝํธ ์กด์ฌ์ HTML ํ์ฑ์ ์ค๋จ๋๋ค.
- ๋ ํฐ ํธ๋ฆฌ(Render Tree) ๊ตฌ์ถ : DOM๊ณผ CSSOM์ ๊ฒฐํฉํ์ฌ ํ์
ฉ๋๊ณ , ๋ ์ด์์ ์ ๋ณด์ ์คํ์ผ ์ ๋ณด๊ฐ ํฌํจ๋๋ค.
// ํ๋ฉด์ ์๊ณ , ๊ณต๊ฐ๋ ์ฐจ์ง ์๋ ์์๋ ๊ตฌ์ถX - Layout/Reflow ๋จ๊ณ : ๋ทฐํฌํธ ๊ธฐ๋ฐ ๋ ํฐ ํธ๋ฆฌ์ ๊ฐ ๋ ธ๋๊ฐ ๊ฐ๋ ์์น์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ค.
- Paint ๋จ๊ณ : ๋ ๋ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด์ ํฝ์ ๋ก ๊ทธ๋ฆฌ๋ ์์ ์ ์ํํ๋ค. ์ค์ ๋ก ํ๋ฉด์ ๋ด์ฉ์ด ํ์๋๋ค.
ํ์ฑ์ ๋ฌธ์๋ฅผ ํด์ํ๊ณ ์ดํดํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.