๋ ๋๋ง์ด๋ HTML, CSS, JavaScript ๋ฑ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ๋ฌธ์๊ฐ ๋ธ๋ผ์ฐ์ ์ ์ถ๋ ฅ๋๋ ๊ณผ์ ์ ๋งํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๋ํ๋๋ ์์๋ฅผ ๋ ๋๋ง ํ ๋, ์นํท(Webkit)์ด๋ ๊ฒ์ฝ(Gecko) ๋ฑ๊ณผ ๊ฐ์ ๋ ๋๋ง ์์ง์ ์ฌ์ฉํ๋ค.
๋ ๋๋ง ์์ง์ด HTML, CSS, JavaScript๋ก ๋ ๋๋งํ ๋ CRP(Critical Rendering Path) ๋ผ๋ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋ค์ ๋จ๊ณ๋ค๋ก ์ด๋ฃจ์ด์ง๋ค.
- HTML ํ์ฑ ํ, DOM(Document Object Model) ํธ๋ฆฌ ๊ตฌ์ถ
- ํ์ฑ(Parsing) : ์๋ฒ๋ก๋ถํฐ ์ ์ก๋ฐ์ ๋ฌธ์์ ๋ฌธ์์ด์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๊ณผ์
- CSS ํ์ฑ ํ, CSSOM(CSS Object Model) ํธ๋ฆฌ ๊ตฌ์ถ
- JavaScript ์คํ
- ์ด ๋, HTML ์ค๊ฐ์ ์คํฌ๋ฆฝํธ๊ฐ ์๋ค๋ฉด HTML ํ์ฑ์ด ์ค๋จ๋๋ค.
- DOM๊ณผ CSSOM์ ์กฐํฉํ์ฌ ๋ ๋ํธ๋ฆฌ(Render Tree) ๊ตฌ์ถ
- ์ด ๋, display: none ์์ฑ๊ณผ ๊ฐ์ด ํ๋ฉด์์ ๋ณด์ด์ง๋ ์๊ณ ๊ณต๊ฐ์ ์ฐจ์งํ์ง ์๋ ๊ฒ์ ๋ ๋ํธ๋ฆฌ๋ก ๊ตฌ์ถ๋์ง ์๋๋ค.
- ์ฆ, ๋ ๋ํธ๋ฆฌ๋ ์ค์ ํ๋ฉด์ ํํ๋๋ ๋ ธ๋(์์)๋ค๋ก๋ง ๊ตฌ์ฑ๋๋ค.
- ๋ทฐํฌํธ ๊ธฐ๋ฐ์ผ๋ก ๋ ๋ํธ๋ฆฌ์ ๊ฐ ๋ ธ๋๊ฐ ๊ฐ์ง๋ ์ ํํ ์์น์ ํฌ๊ธฐ ๊ณ์ฐ (Layout/Reflow ๋จ๊ณ)
- ๊ณ์ฐํ ์์น/ํฌ๊ธฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด์ ๊ทธ๋ฆผ (Paint ๋จ๊ณ)
์ฐธ๊ณ
https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/frontend/browser-rendering.md
'elice > study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] ๋ชจ๋ ๋ฒ๋ค๋ฌ์ ํธ๋์คํ์ผ๋ฌ (0) | 2022.02.01 |
---|---|
[CS] BOM๊ณผ DOM (0) | 2022.01.29 |
[CS] ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ฝ๋๋ฅผ ์คํํ๋ ๊ณผ์ (0) | 2022.01.29 |
[BE] DML(Data Manipulation Language) (0) | 2022.01.26 |
[CS] CSR(Client Side Rendering)๊ณผ SSR(Server Side Rendering) (0) | 2022.01.24 |