์ปดํจํฐ๋ www.pyomin.com๊ณผ ๊ฐ์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ง์ ์ดํดํ์ง ๋ชปํ๊ณ IP ์ฃผ์๋ก ํต์ ํ๋ค. ๋ฐ๋ผ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ํต์ ํ๊ธฐ ์ํด์๋ ๋จผ์ ํด๋น ๋๋ฉ์ธ์ IP ์ฃผ์๋ฅผ ์์๋ด๋ DNS(Domain Name System) ์กฐํ ๊ณผ์ ์ด ํ์ํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ URL์ ์
๋ ฅ๋ฐ์ผ๋ฉด ๋ค์ ์์๋ก IP ์ฃผ์๋ฅผ ํ์ธํ๋ค.
1. ๋ธ๋ผ์ฐ์ DNS ์บ์ ํ์ธ
2. OS์ hosts ํ์ผ ํ์ธ
3. OS DNS ์บ์ ํ์ธ
4. ISP(์ธํฐ๋ท ์๋น์ค ์ ๊ณต์)์ DNS ์๋ฒ(Recursive Resolver)์ ์์ฒญ
๋ก์ปฌ์ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ISP์ DNS ์๋ฒ๊ฐ ๋์ DNS ํ์์ ์ํํ๋ค. ์ด ๊ณผ์ ์์ ๋ค์ ์๋ฒ๋ค์ ์์ฐจ์ ์ผ๋ก ์กฐํํ๋ค.
Root DNS Server
TLD DNS Server (.com, .net ๋ฑ)
Authoritative Name Server
์ต์ข
์ ์ผ๋ก ํด๋น ๋๋ฉ์ธ์ ๋์๋๋ IP ์ฃผ์๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํ๋ค.
IP ์ฃผ์๋ฅผ ํ์ธํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ TCP ์ฐ๊ฒฐ์ ์ค์ ํ๋ค. ์ด๋ ํต์ ๋์์ ๋จ์ํ IP ์ฃผ์๋ฟ ์๋๋ผ ํฌํธ ๋ฒํธ๋ฅผ ํฌํจํ๋ค.
TCP ์ฐ๊ฒฐ์ 3-way Handshake ๊ณผ์ ์ ํตํด ์ด๋ฃจ์ด์ง๋ค.
๋จผ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก SYN ํจํท์ ๋ณด๋ด๊ณ ์๋ฒ๋ ์ด๋ฅผ ํ์ธํ ๋ค SYN + ACK๋ก ์๋ตํ๋ค. ๋ง์ง๋ง์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ACK๋ฅผ ๋ค์ ๋ณด๋ด๋ฉด ์ด ์ธ ๋ฒ์ ์์ฒญ๊ณผ ์๋ต์ด ์ด๋ฃจ์ด์ง๋ฉฐ ์ฐ๊ฒฐ์ด ์ฑ๋ฆฝ๋๋ค.
์ด ๊ณผ์ ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์ ๋ขฐ์ฑ ์๋ ์ฐ๊ฒฐ์ด ์ค์ ๋๊ณ ์ดํ ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅํด์ง๋ค.
๋ํ ๊ฐ์ ๋คํธ์ํฌ ๋ด์ ๊ฒ์ดํธ์จ์ด๋ก ํจํท์ ์ ๋ฌํ๊ธฐ ์ํด ARP(Address Resolution Protocol)๋ฅผ ํตํด IP ์ฃผ์์ ๋์๋๋ MAC ์ฃผ์๋ฅผ ํ์ธํ๋ ๊ณผ์ ์ด ๋ฐ์ํ ์ ์๋ค.
TCP ์ฐ๊ฒฐ์ด ์๋ฃ๋๋ฉด HTTPS ์ฌ์ดํธ์ ๊ฒฝ์ฐ TLS(Transport Layer Security) ํธ๋์
ฐ์ดํฌ ๊ณผ์ ์ด ์งํ๋๋ค. TLS๋ ๊ธฐ์กด SSL์ ๋ฐ์ ์ํจ ๋ณด์ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ ์ ์ก์ ์ํธํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ HTTPS ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฒ๋ ๋จผ์ ์ธ์ฆ์(Certificate)๋ฅผ ์ ๋ฌํ๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด ์ธ์ฆ์๊ฐ ์ ๋ขฐํ ์ ์๋ CA(์ธ์ฆ ๊ธฐ๊ด)๋ก๋ถํฐ ๋ฐ๊ธ๋ ๊ฒ์ธ์ง ๊ฒ์ฆํ๋ค.
๊ฒ์ฆ์ด ์๋ฃ๋๋ฉด ๋ธ๋ผ์ฐ์ ์ ์๋ฒ๋ ์ธ์
ํค(๋์นญํค)๋ฅผ ์์ ํ๊ฒ ๊ตํํ๊ณ ์ดํ ๋ชจ๋ ํต์ ์ ์ด ํค๋ฅผ ์ด์ฉํด ์ํธํ๋์ด ์ ์ก๋๋ค.
์ต๊ทผ ํ์ค์ธ TLS 1.3์์๋ ํธ๋์
ฐ์ดํฌ ๊ณผ์ ์ด ๋จ์ํ๋์ด 1-RTT(Round Trip Time) ๋ง์ ๋ณด์ ์ฐ๊ฒฐ์ ์๋ฆฝํ ์ ์๋ค.
๋ณด์ ์ฐ๊ฒฐ์ด ์๋ฃ๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ธ๋ค.
GET / HTTP/1.1
Host: www.pyomin.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ko-KR,ko;q=0.9
Connection: keep-alive
์๋ฒ๋ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ค HTTP ์๋ต์ ๋ฐํํ๋ค.
HTTP/1.1 200 OK
Date: Sun, 21 Sep 2025 13:07:44 GMT
Server: nginx
Content-Type: text/html; charset=UTF-8
Content-Length: 1024
<!DOCTYPE html>
...HTML ๋ฐ์ดํฐ
๋ธ๋ผ์ฐ์ ๋ ๋จผ์ HTML ๋ฌธ์๋ฅผ ์์ ํ ๋ค ์ด๋ฅผ ํ์ฑํ๋ฉด์ CSS, JavaScript, ์ด๋ฏธ์ง ๋ฑ์ ์ธ๋ถ ๋ฆฌ์์ค๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ถ๊ฐ์ ์ธ HTTP ์์ฒญ์ ๋ณด๋ด ํด๋น ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์จ๋ค.
๋ํ Connection: keep-alive ํค๋๋ฅผ ํตํด TCP ์ฐ๊ฒฐ์ ์ ์งํ์ฌ ์ฌ๋ฌ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ค.
๋ธ๋ผ์ฐ์ ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํด์ํ์ฌ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ํ๋ฉด์ผ๋ก ๋ ๋๋งํ๋ค.
๋ ๋๋ง ๊ณผ์ ์ ๋ค์ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง๋ค.
1) HTML ํ์ฑ -> DOM ์์ฑ
HTML ๋ฌธ์๋ฅผ ํ์ฑํ์ฌ DOM(Document Object Model)ํธ๋ฆฌ๋ฅผ ์์ฑํ๋ค.
2) CSS ํ์ฑ -> CSSOM ์์ฑ
CSS ํ์ผ์ ํ์ฑํ์ฌ CSSOM(CSS Object Model)์ ์์ฑํ๋ค.
3) Render Tree ์์ฑ
DOM๊ณผ CSSOM์ ๊ฒฐํฉํ์ฌ Render Tree๋ฅผ ์์ฑํ๋ค. ์ด ํธ๋ฆฌ๋ ์ค์ ํ๋ฉด์ ํ์๋ ์์๋ค๋ง ํฌํจํ๋ค.
4) Layout (Reflow)
๊ฐ ์์์ ์์น์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ์ฌ ๋ ์ด์์์ ๊ฒฐ์ ํ๋ค.
5) Painting
๊ฐ ์์๋ฅผ ํฝ์
๋จ์๋ก ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ณผ์ ์ด๋ค.
6) Compositing
์ฌ๋ฌ ๊ฐ์ ๋ ์ด์ด๋ฅผ GPU ๋ฑ์ ํ์ฉํ์ฌ ํฉ์ฑํด ์ต์ข
ํ๋ฉด์ ๊ตฌ์ฑํ๋ค.
๋ ๋๋ง ๊ณผ์ ์ค <script> ํ๊ทธ๋ฅผ ๋ง๋๋ฉด HTML ํ์ฑ์ด ์ผ์์ ์ผ๋ก ์ค๋จ๋๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์คํ๋ ์ ์์ผ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ DOM์ด๋ CSSOM์ ์์ ํ ์ ์๋ค.
