๋ ๋๋ง์ด๋ ์น์ฌ์ดํธ์ url๋ก ์ ๊ทผํ์ ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ( HTML,CSS, ์๋ฐ์คํฌ๋ฆฝํธ ) ๋ฑ์ ์๋ต์ ํ๋ฉด์ ๋ํ๋ด๋ ๊ฒ์ด๋ค
๋ธ๋ผ์ฐ์ ์์ง
๋ธ๋ผ์ฐ์ ๋ง๋ค ๋ ๋๋ง์ ์ํํ๋ ๋ ๋๋ง ์์ง์ ๊ฐ์ง๊ณ ์๋ค.
๋ธ๋ผ์ฐ์ | ์์ง |
ํ์ด์ด ํญ์ค | ๊ฒ์ฝ ์์ง |
์ฌํ๋ฆฌ, ํฌ๋กฌ | ์นํท ์์ง |
๋ธ๋ผ์ฐ์ ๋ ๋๋ง (Critical Rendering Path) ๊ณผ์
Critical Rendering Path(CRP)๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ๋ก๋ถํฐ HTML ์๋ต์ ๋ฐ์ ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ์ํด ์คํํ๋ ๊ณผ์ ์ด๋ค.
- DOM ํธ๋ฆฌ ๋ง๋ค๊ธฐ
- CSSOM ํธ๋ฆฌ ๋ง๋ค๊ธฐ
- Render ํธ๋ฆฌ ๋ง๋ค๊ธฐ
- ๋ ์ด์์ ์์ฑํ๊ธฐ
- ํ์ธํ
์ด์ ๊ฐ ๋จ๊ณ๋ง๋ค ์ด๋ค ์ญํ ์ ํ๋์ง ์์๋ณด์
DOM ํธ๋ฆฌ ์์ฑ
HTML ๋ฌธ์๋ฅผ ํ์ฑ ํ์ฌ DOM(Document Object Model) ํธ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ค.
๋ธ๋ผ์ฐ์ ๋ ์๋ฒ๋ก๋ถํฐ HTML ๋ฌธ์๋ฅผ ๋ชจ๋ ์ ๋ฌ๋ฐ๊ณ HTML ํ์๋ฅผ ํตํ์ฌ ํ์ฑ(parsing)ํ๊ณ ํ์ฑ ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ,
์์ฑ๋ ํ์ฑ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก DOM (Document Object Model) ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ฒ ๋๋ค .
CSSOM ํธ๋ฆฌ ์์ฑ
CSSํ์ผ์ CSSํ์์ ์ํด ํ์ฑ ๋์ด CSSOMํธ๋ฆฌ๋ก ๋ณํ๋๋ค.
ํ์ฑ(parse or parsing)
๋ฌธ์๋ฅผ ํ์ฑํ๋ค๋ ๊ฒ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ ๊ตฌ์กฐ๋ก ๋ณํํ๋ ๊ฒ์ด๋ค.
ํ์ฑ ๊ฒฐ๊ณผ๋ ๋ณดํต ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ๋ ธ๋ ํธ๋ฆฌ์ธ๋ฐ ํ์ฑ ํธ๋ฆฌ ๋๋ ๋ฌธ๋ฒ ํธ๋ฆฌ ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ ๋ ํธ๋ฆฌ (DOM + CSSOM) ์์ฑ
DOM ํธ๋ฆฌ์ CSSOM ํธ๋ฆฌ๊ฐ ๋ง๋ค์ด์ง๋ฉด, ์ด ๋์ ๊ฒฐํฉํด์ ๋ ๋๋ง ํธ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค. ๋ ๋๋ง ํธ๋ฆฌ์๋ ํ์ด์ง๋ฅผ ๋ ๋๋ง ํ๋๋ฐ ํ์ํ ๋ ธ๋๋ง ํฌํจ๋๋ค.
<head>, display:'none' ์ ๊ฐ์ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ DOM ์์๋ ๋ ๋ ํธ๋ฆฌ์ ์ถ๊ฐ๋์ง ์๋๋ค.
๋ ์ด์์ ( Layout )
๋ ์ด์์ ๋จ๊ณ์์๋ ๋ทฐํฌํธ ๋ด์์ ๊ฐ ์์๋ค์๊ฒ ์์น(position)์ ํฌ๊ธฐ(size)๋ฅผ ๊ฒฐ์ ํด์ค๋ค.
Viewport
๊ทธ๋ํฝ์ด ํ์๋๋ ๋ธ๋ผ์ฐ์ ์์ญ, ํฌ๊ธฐ ๋ทฐํฌํธ๋ ๋ชจ๋ฐ์ผ์ ๊ฒฝ์ฐ ๋์คํ๋ ์ด์ ํฌ๊ธฐ, pc์ ๊ฒฝ์ฐ ๋ธ๋ผ์ฐ์ ์ฐฝ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
Paint ๋จ๊ณ
๋ง์ง๋ง์ผ๋ก ๋ ๋๋ง ํธ๋ฆฌ์ ๊ฐ ๋ ธ๋๋ฅผ ํ๋ฉด์ ์ค์ ํฝ์ ๋ก ๋ณํํ๊ฒ ๋๋ค. ๋ ์ด์์ ๋จ๊ณ์์ ๋ชจ๋ ์์น์ ํฌ๊ธฐ์ ๋ํ ๊ณ์ฐ์ด ์๋ฃ๊ฐ ๋๋ฉด, ํ๋ฉด์ ์์๋ค์ ๊ทธ๋ฆฌ๊ฒ ( Painting ) ๋๋ค.
HTMLํ์๊ฐ <script> ํ๊ทธ๋ฅผ ๋ง๋๋ฉด?
์ง๊ธ๊น์ง ์ค๋ช ์ผ๋ก HTML ๋ฌธ์๋ฅผ ํ์ฑ ํ์ฌ HTML๊ณผ CSS๋ฅผ ๋ ๋๋ง ์์ง์์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ์์๋ณด์๋๋ฐ,
์ ๊ณผ์ ๊น์ง ๋ง์ผ๋ก ์น ํ์ด์ง๋ฅผ ํ๋ฉด์ ๋ํ๋ด๋ ๊ฒ์ ์ถฉ๋ถํ์ง๋ง Javascript๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๊ฐ ๋๋์ง ์์ ๋ณผ ํ์๊ฐ ์๋ค
์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ฒ๋ฆฌํ๋ค HTML ํ์๋ <script> ํ๊ทธ๋ฅผ ๋ง๋๋ฉด Javascript ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ํด DOM ์์ฑ ํ๋ก์ธ์ค๋ฅผ ์ค์งํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ผ๋ก ๊ถํ์ ๋๊ธฐ๊ฒ๋๋ค.
์ ์ด ๊ถํ์ ๋๊ฒจ๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ <script> ํ๊ทธ ๋ด์ Javascript ์ฝ๋ ๋๋ src ์์ฑ์ ์ ์๋ Javascript ํ์ผ์ ๋ก๋ํ๊ณ ํ์ฑ ํ์ฌ ์คํํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์คํ์ด ์๋ฃ๋๋ฉด ๋ค์ HTMLํ์๋ก ๊ถํ์ ๋๊ธฐ๊ณ ์ค์งํ๋ ์์ ๋ถํฐ ๋ค์ DOM ์์ฑ์ ์ฌ๊ฐ ํ๊ฒ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ๋๊ธฐ์ ์ผ๋ก HTML, CSS, Javascript๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ, ์ด๋ <script>ํ๊ทธ์ ์์น์ ๋ฐ๋ผ DOM์์ฑ์ด ์ง์ฐ๋ ์ ์๋ค๋
๋ป์ด๋ค.
๋ณดํต <body>์์์ ๊ฐ์ฅ ์๋์ <script>ํ๊ทธ๋ฅผ ์์นํ๋๊ฒ ์ข์ ๋ฐฉ๋ฒ์ด๋ค.
์ฒซ๋ฒ์งธ๋ HTML ์์๋ค์ ๋ ๋๋ง์ด ์ง์ฐ๋๋ ์ผ์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ฉด์ ๋ก๋ฉ์๊ฐ์ด ์ค๊ณ ์ฌ์ฉ์์๊ฒ ๋ ์ข์ ๊ฒฝํ์ ์ค ์ ์๊ธฐ ๋๋ฌธ์ด๊ณ , ๋๋ฒ์งธ๋ DOM์ด ์์ฑ๋์ง ์์ ์ํ์์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ DOM์ ์กฐ์ ํ๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
Reperence
https://bbangson.tistory.com/87
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ณ์์ ํธ์ด์คํ , TDZ์ ๊ฐ๋ ๋ฐ๋ก์๊ธฐ (0) | 2022.03.12 |
---|---|
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ฑ๊ธ์ค๋ ๋์ง๋ง ๋น๋๊ธฐ๋ก ๋์ํ๋ ์ด์ (0) | 2022.03.11 |
JavaScript (ES6) - ์๋ฒ ํต์ ์ ์์ JSON (0) | 2021.05.23 |
JavaScript (ES6) - Array APIs ์ด์ ๋ฆฌ - ( ์ ์ฉํ 10๊ฐ์ง ๋ฐฐ์ด ํจ์ ) (0) | 2021.05.23 |
JavaScript (ES6) - Prototype (0) | 2021.05.20 |