์ฐธ๊ณ ์๋ฃ: ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive, ์๋ฆฌ Dream Coding(https://www.youtube.com/watch?v=tJieVCgGzhs&t=907s)
๐ช๐ปํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ๋จ๊ณจ ๋ฉด์ ์ง๋ฌธ
- ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ์๋ฆฌ์ ๋ํด์ ์ค๋ช
ํด๋ณด์ธ์.
โณ ์ค๋์ ๋ชฉํ
HTML, CSS, ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑ๋ ํ
์คํธ ๋ฌธ์๋ฅผ ์ด๋ป๊ฒ ํ์ฑ(ํด์)ํ์ฌ ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋งํ๋์ง ์์๋ณด๊ธฐ
- ํ์ฑ(parsing): parse(๋ถ์ํ๋ค)
- ๋ฆฌ์์ค๋: resource(์ฌ๋ฃ, ์์ฐ)
- ๋ ๋๋ง์ด๋?: render(๋ง๋ค๋ค)
- ์น ๋ธ๋ผ์ฐ์ ๋?: browse(๋๋ฌ๋ณด๋ค, ์ธํฐ๋ท์ ๋์๋ค๋๋ค.)
ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๋ผ๋ ค์ผ ๋ ์ ์๋ ๊ฒ์ ๋ธ๋ผ์ฐ์ ๋ค. ๊ทธ๋ ๊ธฐ์ ์ด์ ๋ถํฐ ๋ณธ๊ฒฉ์ ์ผ๋ก ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง์ ๋ํด์ ์์๋ณด๊ฒ ๋ค.
.png)
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ์ํ ์์ ์์ฝ
- ๋ธ๋ผ์ฐ์ ๋ HTML, CSS, ์๋ฐ์คํฌ๋ฆฝํธ, ์ด๋ฏธ์ง, ํฐํธ ํ์ผ ๋ฑ ๋ ๋๋ง์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๊ณ ์๋ฒ๋ก๋ถํฐ ์๋ต์ ๋ฐ๋๋ค.
- ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ์์ง์ ์๋ฒ๋ก๋ถํฐ ์๋ต๋ HTML, CSS๋ฅผ ํ์ฑํ์ฌ DOM๊ณผ CSSOM์ ์์ฑํ๊ณ ์ด๋ค์ ๊ฒฐํฉํ์ฌ ๋ ๋ ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
- ๋ธ๋ผ์ฐ์ ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์๋ฒ๋ก๋ถํฐ ์๋ต๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฑํ์ฌ AST(Abstract Syntax Tree)๋ฅผ ์์ฑํ๊ณ ๋ฐ์ดํธ์ฝ๋๋ก ๋ณํํ์ฌ ์คํํ๋ค. ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ DOM API๋ฅผ ํตํด DOM์ด๋ CSSOM์ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ณ๊ฒฝ๋ DOM๊ณผ CSSOM์ ๋ค์ ๋ ๋ ํธ๋ฆฌ๋ก ๊ฒฐํฉ๋๋ค.