๋งํ๋ฉด์ ๋ฐฐ์์ ์คํฐ๋์์ ๊ณต๋ถํ๋ ๋ด์ฉ์ผ๋ก ์ง๋ฌธ๊ณผ ๋๋ต ์์ฃผ์ ๊ธ์ ๋๋ค. ๋ํ ๋ด์ฉ์ ์ค๋ฅ๋ ์คํ๊ฐ ์์ ์ ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
URL ํ์ฑ
, DNS ์กฐํ
, ARP๋ก MAC์ฃผ์ ๋ณํ
, TCP ํต์
, ๋ธ๋ผ์ฐ์ ๋ ๋๋ง
1. URL ํด์(ํ์ฑ)
๋ธ๋ผ์ฐ์ ์์ url์ ํด์ํ์ฌ, ํด๋น ์ฃผ์์ ํด๋นํ๋ ์์์ ์์ฒญํ๋ค.
2. DNS ์กฐํ
URL๊ณผ ์ฐ๊ฒฐ๋ DNS ์๋ฒ๋ก ์ด๋ํ์ฌ URL์ ํ ๋น๋ IP์ฃผ์๋ฅผ ์ฐพ๋๋ค. ๋ค๋ง ๋ธ๋ผ์ฐ์ ์ ์บ์๊ฐ ๋จ์์๋ค๋ฉด, DNS ์๋ฒ์ ์ ๊ทผํ์ง ์์ ์๊ฐ์ ์ ์ฝํ ์ ์๋ค.
3. IP์ฃผ์๋ฅผ ์ด์ฉํ์ฌ ARP ํ๋กํ ์ฝ์ ํตํด MAC์ฃผ์ ๊ฒ์
IP ์ฃผ์๋ ๋
ผ๋ฆฌ ์ฃผ์์ด๋ฏ๋ก ์ค์ ์๋ฒ์ ์์น๋ฅผ ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ARP(Address Resolution protocol)์ ์ด์ฉํ์ฌ ํด๋น ์๋ฒ์ MAC์ฃผ์๋ฅผ ์ฐพ๊ณ , ์๋ฒ์ ํต์ ์ ์๋ํ๋ค.
*ARP(Address Resolution Protocol) : ๋ ผ๋ฆฌ์ฃผ์์ธ IP์ฃผ์๋ฅผ MAC ์ฃผ์๋ก ๋ณํํ๋ ํ๋กํ ์ฝ
4. ์น ์๋ฒ์ TCP ์ฐ๊ฒฐ ์๋
๋์ ์๋ฒ์ ํต์ ์ ์ํ TCP ์์ผ์ ์ฐ๊ฒฐํ๋ค. TCP ํต์ ์ 3-way-handshake
๊ณผ์ ์ ๊ฑฐ์น๋ค.
3-way-handshake
TCP/IP ํ๋กํ ์ฝ์ ์ด์ฉํ ํต์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ด์ ์ ์ ํํ ์ ์ก์ ์ํ์ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ์ ์ธ์
์ ์๋ฆฝํ๋ ๊ณผ์ ์ด๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ ์์์์ ์๋ฆฌ๋ ํจํท์ ๋ณด๋ด๊ณ , ์๋ฒ๋ ์ด ์์ฒญ์ ๋ฐ์ ์๋ฝํ๋ค๋ ํ์๋ฅผ ์ถ๊ฐํ ํจํท์ ํด๋ผ์ด์ธํธ์ ์๋ตํฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ด ์๋ต์ ๋ฐ์ ํ์ธํ๋ค๋ ์๋ต์ ์ต์ข ์ ์ผ๋ก ๋ณด๋ด์ฃผ๊ฒ ๋๋ฉด ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ ์ฐ๊ฒฐ์ด ๋์ด ์ ๋ขฐ์ฑ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
6. ์๋ฒ๊ฐ ์๋ต์ ๋ฐํ
HTTP/HTTPS ํ๋กํ ์ฝ๋ก ๋ค์ด์จ ํจํท์ ์ฝ๊ณ ์ฒ๋ฆฌํ๋ค. ์ฆ, ์์ฒญ(www.naver.com์ index์ ํด๋น์๋ resourse)์ ๋ฐ๋ฅธ ์ ์ ํ ์๋ต ๊ฐ์ ๋ฐํ(HTML, CSS, Javascript)ํ๋ค.
HTMLํ์ฑ
, CSSOM
, DOM Tree
, RenderTree
, Layout(reflow)
, Paint
DOM๊ณผ CSSOM์ด ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ์ ๋ณ๊ฒฝ๋ DOM๊ณผ CSSOM์ ๋ค์ ๋ ๋ ํธ๋ฆฌ๋ก ๊ฒฐํฉ๋๊ณ ๋ณ๊ฒฝ๋ ๋ ๋ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ์ด์์๊ณผ ํ์ธํธ ๊ณผ์ ์ ๊ฑฐ์ณ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ๋ค์ ๋ ๋๋ง ๋๋๋ฐ ์ด๋ฅผ ๋ฆฌํ๋ก์ฐ, ๋ฆฌํ์ธํธ๋ผ๊ณ ํฉ๋๋ค.
Reflow
๋ ์ด์์ ๊ณ์ฐ์ ๋ค์ ํ๋ ๊ฒ์ ๋งํ๋ฉฐ, ๋
ธ๋ ์ถ๊ฐ/์ญ์ , ์์์ ํฌ๊ธฐ/์์น ๋ณ๊ฒฝ ๋ฑ ๋ ์ด์์์ ์ํฅ์ ์ฃผ๋ ๋ณ๊ฒฝ์ด ๋ฐ์ํ ๊ฒฝ์ฐ์ ํํ์ฌ ์คํ๋ฉ๋๋ค.
Repaint
์ฌ๊ฒฐํฉ๋ ๋ ๋ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ ํ์ธํธ๋ฅผ ํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
๋ค๋ง, ๋ฆฌํ๋ก์ฐ์ ๋ฆฌํ์ธํธ๊ฐ ๋ฐ๋์ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ ๊ฒ์ ์๋๋ฉฐ ๋ ์ด์์์ ์ํฅ์ด ์๋ ๋ณ๊ฒฝ์ ๋ฆฌํ๋ก์ฐ ์์ด ๋ฆฌํ์ธํธ๋ง ์คํ๋ฉ๋๋ค.
DOM ์กฐ์
, ๋ก๋ฉ ์๊ฐ
๋ธ๋ผ์ฐ์ ๋ ์์ฐจ์ ์ผ๋ก HTML, CSS, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฑํ๊ณ ์คํํ๋๋ฐ ์ด๊ฒ์ script ํ๊ทธ ์์น์ ๋ฐ๋ผ HTML ํ์ฑ์ด ๋ธ๋กํน๋์ด DOM ์์ฑ์ด ์ง์ฐ๋ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. DOM์ด ์์ฑ๋์ง ์์ ์ํ์์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ DOM์ ์กฐ์ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ ๋ก๋ฉ/ํ์ฑ/์คํ์ผ๋ก ์ธํด HTML ์์๋ค์ ๋ ๋๋ง์ ์ง์ฅ๋ฐ๋ ์ผ์ด ๋ฐ์ํ์ง ์์ ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ด ๋จ์ถ๋๊ธฐ ๋๋ฌธ์ body ์์์ ๊ฐ์ฅ ์๋์ script ํ๊ทธ๋ฅผ ์์นํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
async
, defer
์ดํธ๋ฆฌ๋ทฐํธ์ ๋ํด์ ์ค๋ช
ํด์ฃผ์ธ์์๋ฐ์คํฌ๋ฆฝํธ ํ์ฑ์ ์ํ DOM ์์ฑ์ด ์ค๋จ๋๋ ๋ฌธ์ ๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํด์ async์ defer ์ดํธ๋ฆฌ๋ทฐํธ๊ฐ ์๊ฒผ์ต๋๋ค. ์ด ๋ ์ดํธ๋ฆฌ๋ทฐํธ๋ src ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ํตํด ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ก๋ํ๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ชจ๋ HTML ํ์ฑ๊ณผ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ก๋๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ๋์์ ์งํ๋ฉ๋๋ค. ํ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ ์คํ ์์ ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
async ์ดํธ๋ฆฌ๋ทฐํธ
HTML ํ์ฑ๊ณผ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ก๋๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ๋์์ ์งํ๋๋ค. ๋จ, ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฑ๊ณผ ์คํ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ก๋๊ฐ ์๋ฃ๋ ์ดํ ์งํ๋๋ฉฐ, ์ด๋ HTML ํ์ฑ์ด ์ค๋จ๋๋ค. ์ฌ๊ธฐ์ ์ฌ๋ฌ ๊ฐ์ script ํ๊ทธ์ async ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ง์ ํ๋ฉด script ํ๊ทธ์ ์์์๋ ์๊ด ์์ด ๋ก๋๊ฐ ์๋ฃ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ถํฐ ๋จผ์ ์คํ๋๋ฏ๋ก ์์๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค.
defer ์ดํธ๋ฆฌ๋ทฐํธ
HTML ํ์ฑ๊ณผ ์ธ๋ถ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ก๋๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ๋์์ ์งํ๋๋ค. ๋จ, ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ฑ๊ณผ ์คํ์ HTML ํ์ฑ์ด ์๋ฃ๋ ์งํ, ์ฆ DOM ์์ฑ์ด ์๋ฃ๋ ์งํ์ ์งํ๋๋ค. ๋ฐ๋ผ์ DOM ์์ฑ์ด ์๋ฃ๋ ์ดํ ์คํ๋์ด์ผ ํ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ฉํ๋ค.
virtual DOM
์ฌ์ฉํ๊ธฐ : ๋ทฐ์ ๋ณํ๋ฅผ ๋จผ์ virtual DOM์ ์ ๋ฌํด ์ค์ผ๋ก์ ๋ธ๋ผ์ฐ์ ๋ด์์ ๋ฐ์ํ๋ ์์ ์ค์ด๋ฉด์ ์ฑ๋ฅ์ด ๊ฐ์ ๋ฉ๋๋ค.display: none;
์ ์ฌ์ฉํ๊ธฐvirtual DOM
์ ์ฌ์ฉํ๋ ๊ฒ์ด ํญ์ ์ณ์๊น์?Virtual Dom์ ์ค์ DOM์ ์์ ๋์ ์ค์ง์ ์ผ๋ก ์ค์ฌ์ฃผ๋ ๊ฒ์ ๋ง์ง๋ง ๋ง์ ์ปดํฌ๋ํธ๋ฅผ ์กฐ์ํ๊ฒ ๋๋ค๋ฉด ์ค๋ฒํค๋๊ฐ ์๊ธฐ๊ธฐ ๋ง๋ จ์ด๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ์ด ๋์ด๋ ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ํญ์ ์ณ์ ๊ฒ์ ์๋๋ค.