KR_CS_Browser - somaz94/DevOps-Engineer GitHub Wiki
์ง๋ฌธ: ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ ์ํ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ๊น์ง์ ์ ์ฒด ๊ณผ์ ์ Construction๊ณผ Operation ๋จ๊ณ๋ก ๋๋์ด ์ค๋ช ํ์ธ์.
| ์ฉ์ด | ์ค๋ช |
|---|---|
| DOM | HTML์ ํ์ฑํ์ฌ ์์ฑํ ํธ๋ฆฌ ๊ตฌ์กฐ |
| CSSOM | CSS๋ฅผ ํ์ฑํ์ฌ ์์ฑํ ํธ๋ฆฌ ๊ตฌ์กฐ |
| Render Tree | DOM + CSSOM์ ๊ฒฐํฉํ ๋ ๋๋ง์ฉ ํธ๋ฆฌ |
| AST | JavaScript ์ฝ๋๋ฅผ ํ์ฑํ ์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ |
| Construction | HTML/CSS/JS ํ์ฑ ๋ฐ Render Tree ์์ฑ ๋จ๊ณ |
| Operation | Layout, Painting, Composition์ ์ํํ๋ ๋ ๋๋ง ๋จ๊ณ |
| CRP | Critical Rendering Path โ ๋ธ๋ผ์ฐ์ ๊ฐ HTML/CSS/JS๋ฅผ ํฝ์ ๋ก ๋ณํํ๋ ์ผ๋ จ์ ๋จ๊ณ |
์ฌ์ฉ์ URL ์
๋ ฅ
โ
DNS Resolution (๋๋ฉ์ธ โ IP)
โ
TCP 3-Way Handshake + TLS Handshake (HTTPS)
โ
HTTP Request / Response
โ
[Construction ๋จ๊ณ]
HTML ํ์ฑ โ DOM Tree
CSS ํ์ฑ โ CSSOM Tree
JS ์คํ โ AST ์์ฑ / DOMยทCSSOM ์์ ๊ฐ๋ฅ
DOM + CSSOM โ Render Tree
โ
[Operation ๋จ๊ณ]
Layout โ ๊ฐ ์์์ ์์นยทํฌ๊ธฐ ๊ณ์ฐ
Paint โ ํฝ์
๋ก ๋ณํ (๋์คํฐํ)
Composite โ ๋ ์ด์ด ํฉ์ฑ โ ์ต์ข
ํ๋ฉด ์ถ๋ ฅ
๋ธ๋ผ์ฐ์ ๋ HTML์ ๋ฐ์ดํธ โ ๋ฌธ์ โ ํ ํฐ โ ๋ ธ๋ โ DOM ์์๋ก ๋ณํํ๋ค.
ํ์ ๋ธ๋กํน ์ฃผ์:
-
<link rel="stylesheet">๋ฐ๊ฒฌ ์ โ CSS ํ์ฑ ์๋ฃ๊น์ง DOM ์์ฑ ์ผ์ ์ค์ง (Render Blocking) -
<script>๋ฐ๊ฒฌ ์ โ ์คํฌ๋ฆฝํธ ์คํ ์๋ฃ๊น์ง DOM ์์ฑ ์์ ์ค์ง (Parser Blocking) - ํด๊ฒฐ:
<script defer>(DOM ์์ฑ ํ ์คํ) /<script async>(๋น๋๊ธฐ ๋ค์ด๋ก๋)
- Cascading ๊ท์น(์์, ์ฐ์ ์์) ์ ์ฉ
- Computed Value ๊ณ์ฐ (16px ๋ฑ ์ค์ ํฝ์ ๊ฐ)
- CSSOM ์์ฑ๊น์ง ๋ ๋๋ง ์ฐจ๋จ (Render Blocking Resource)
- Source โ Tokenization โ AST โ Bytecode (V8 Ignition) โ ์ต์ ํ ์ปดํ์ผ (TurboFan)
- DOM/CSSOM ์์ ๊ฐ๋ฅ โ Render Tree ์ฌ๊ตฌ์ฑ ํ์
- DOM + CSSOM ๊ฒฐํฉ
- ์๊ฐ์ ์์๋ง ํฌํจ (
<head>,display:none์ ์ธ) - ์์นยทํฌ๊ธฐ ์ ๋ณด๋ ์์ (Layout ๋จ๊ณ์์ ๊ณ์ฐ)
Render Tree ๊ฐ ๋ ธ๋์ ํ๋ฉด์ ์ ํํ ์์น์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ๋ค.
- Position, Dimensions, Overflow, Font Metrics ๋ฑ ๊ณ์ฐ
- DOM Read โ Write โ Read ๋ฐ๋ณต ์ Layout Thrashing ๋ฐ์ โ ๋ฐฐ์น ์ฒ๋ฆฌ๋ก ํด๊ฒฐ
Layout ๊ฒฐ๊ณผ๋ฅผ ์ค์ ํฝ์ ๋ก ๋ณํ (๋์คํฐํ).
- Background, Content, Effects, Composite Layer ์์๋ก ๊ทธ๋ฆผ
-
transform,opacity์์ฑ์ GPU์์ ์ฒ๋ฆฌ โ ๋ณ๋ ๋ ์ด์ด๋ก ๋ถ๋ฆฌํ์ฌ ๋น ๋ฆ
์ฌ๋ฌ Paint ๋ ์ด์ด๋ฅผ GPU์์ ํฉ์ฑํ์ฌ ์ต์ข ํ๋ ์ ์ถ๋ ฅ.
- Compositor Thread๊ฐ ๋ฉ์ธ ์ค๋ ๋์ ๋ ๋ฆฝ์ ์ผ๋ก ๋์
- ์คํฌ๋กค, transform ์ ๋๋ฉ์ด์ ์ 60fps๋ก ์ฒ๋ฆฌ
| ๋ณ๋ชฉ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| CSS Render Blocking |
<link> ํ๊ทธ |
media ์์ฑ์ผ๋ก ์กฐ๊ฑด๋ถ ๋ก๋ฉ, Critical CSS ์ธ๋ผ์ธ |
| JS Parser Blocking |
<script> ํ๊ทธ |
defer / async ์์ฑ ์ฌ์ฉ |
| Layout Thrashing | Read-Write ๋ฐ๋ณต | ๋ฐฐ์น๋ก Read ํ ์ผ๊ด Write |
| ๋ถํ์ํ Reflow | ์ฆ์ DOM ์กฐ์ | DocumentFragment ์ฌ์ฉ |