How-Browsers-Work-D2
๐ NAVER D2์ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ป๊ฒ ๋์ํ๋๊ฐ?
์ด ๊ธ์ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ป๊ฒ ๋์ํ๋๊ฐ?๋ฅผ ํ๊ตญ์ด๋ก ์์ฝํ ์ ๋ฆฌ ๊ธ์ ๋๋ค. ๊ณต๋ถ ๋ชฉ์ ์ผ๋ก ์์ฝํ ์ฃผ๊ด์ ์ธ ๋ด์ฉ์ ๋๋ค. ๐
๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ๊ธฐ๋ฅ
- ์ ์ ๊ฐ ์ ํํ ์์์ ์๋ฒ์ ์์ฒญํ๊ณ ๋ธ๋ผ์ฐ์ ์ ํ์ํ๋ ๊ฒ
- ์์์ ๋ณดํต HTML ๋ฌธ์์ด๊ณ ๋๋ก๋ PDF, ์ด๋ฏธ์ง, ๊ธฐํ ๋ฑ๋ฑ์ผ ์ ์๋ค.
- ๋ธ๋ผ์ฐ์ ๋ ์น ํ์คํ ๊ธฐ๊ตฌ์ธ W3C์์ ์ ํ ๋ช ์ธ์ ๋ฐ๋ผ HTML, CSS๋ฅผ ํด์ํ์ฌ ํ์ํ๋ค.
๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ๊ตฌ์ฑ ์์
-
์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI): ์ฃผ์ ํ์์ค, ์ด์ /๋ค์ ๋ฒํผ ๋ฑ ์์ฒญ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฐฝ์ ์ ์ธํ ๋๋จธ์ง ๋ถ๋ถ
-
๋ธ๋ผ์ฐ์ ์์ง: ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๋ ๋๋ง ์์ง ์ฌ์ด ๋์ ์ ์ด
-
๋ ๋๋ง ์์ง: ์์ฒญํ ์ฝํ ์ธ ๋ฅผ ํ์.(HTML ์์ฒญ์ HTML๊ณผ CSS๋ฅผ ํ์ฑํ์ฌ ํ๋ฉด์ ํ์)
-
ํต์ : HTTP ์์ฒญ๊ณผ ๊ฐ์ ๋คํธ์ํฌ ํธ์ถ์ ์ฌ์ฉ๋จ.
-
UI ๋ฐฑ์๋: select/input ๋ฑ์ ๊ธฐ๋ณธ์ ์ธ ์์ ฏ์ ๊ทธ๋ฆฐ๋ค. OS UI๋ฅผ ์ฌ์ฉ
-
์๋ฐ์คํฌ๋ฆฝํธ ํด์๊ธฐ: ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ํด์/์คํ
-
์๋ฃ ์ ์ฅ์: ์๋ฃ๋ฅผ ์ ์ฅํ๋ ๊ณ์ธต.
-
(์ถ๊ฐ) ํฌ๋กฌ์ ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์ ๋ฌ๋ฆฌ ๊ฐ ํญ๋ง๋ค ๋ณ๋์ ๋ ๋๋ง ์์ง ์ธ์คํด์ค๋ฅผ ์ ์งํ๋ค. ์ฆ, ๊ฐ ํญ์ ๋ ๋ฆฝ๋ ํ๋ก์ธ์ค๋ก ์ฒ๋ฆฌ๋๋ค.
๋ ๋๋ง ์์ง
-
ํฌ๋กฌ์ ๊ฒฝ์ฐ๋ ์นํท(Webkit) ์์ง์ ์ฌ์ฉํ๋ค.
- ์นํท์ ์ต์ด ๋ฆฌ๋ ์ค ํ๋ซํผ์์ ๋์ํ๊ธฐ ์ํด ์ ์๋ ์คํ์์ค ์์ง์ด๋ค.(์ฌํ๋ฆฌ๋ ์นํท์ ๋ณํํด์ ์ฌ์ฉํ๋ค.)
-
๋์ ๊ณผ์ :
HTML ํ์ฑ
->๋ ๋ ํธ๋ฆฌ ๊ตฌ์ถ
->๋ ์ด์์
->ํ์ธํธ
- ํ์ฑ์ ํตํด DOM ๋
ธ๋ ํธ๋ฆฌ๋ก ๋ณํํ๋ค. ๋ค์ ์คํ์ผ ์์๋ค๋ CSSOM์ผ๋ก ๋ณํํ๋ค. ์ดํ ์ด ๋์ ํตํด
๋ ๋ ํธ๋ฆฌ
๋ฅผ ์์ฑํ๋ค. - ๋ชจ๋ ๊ณผ์ ๋ค์ด ์ ์ง์ ์ผ๋ก ์งํ๋๋ค. ์ข๋ ๋์ UX๋ฅผ ์ํด์ ๊ฐ๋ฅํ๋ฉด ๋น ๋ฅด๊ฒ ํ์ํ๋ฉฐ ๋ชจ๋ HTML์ ํ์ฑํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ฐฐ์น์ ๊ทธ๋ฆฌ๊ธฐ ๊ณผ์ ์ ์์ํ๋ค.
- ๋คํธ์ํฌ๋ก๋ถํฐ ๋๋จธ์ง ๋ด์ฉ์ด ์ ์ก๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์์ ๋ฐ์ ๋ด์ฉ์ ์ผ๋ถ๋ฅผ ๋จผ์ ํ๋ฉด์ ํ์ํ๋ค.
- ํฌ๋กฌ์์๋ ํ์ธํธ ๋ค์ ๊ฐ ๋ ์ด์ด๋ฅผ ๋๋ ์ ํฉ์ฑํ๋
ํฉ์ฑ(composite)
๋จ๊ณ๊ฐ ์๋ค.
- ํ์ฑ์ ํตํด DOM ๋
ธ๋ ํธ๋ฆฌ๋ก ๋ณํํ๋ค. ๋ค์ ์คํ์ผ ์์๋ค๋ CSSOM์ผ๋ก ๋ณํํ๋ค. ์ดํ ์ด ๋์ ํตํด
ํ์ฑ๊ณผ DOM ํธ๋ฆฌ ๊ตฌ์ถ
- ์์ฑ ์์