๐ฃ๏ธ IP, Domain ์ด ๊ฐ๊ฐ ๋ญ๊ฐ์?
IP๋ Internet Protocol์ ์ฝ์ด๋ก, ์ธํฐ๋ท ๋ง์ ํตํด ํจํท์ ์ ๋ฌํ๋ ํ๋กํ ์ฝ์ ๋๋ค. ๋น์ฐ๊ฒฐ์ฑ๊ณผ ๋น์ ๋ขฐ์ฑ์ ํน์ง์ ๊ฐ์ง๋๋ฐ์, ๋น์ฐ๊ฒฐ์ฑ์ ํจํท์ ๋ณด๋ด๋ ๊ธธ์ ์ ํ์ง ์๋ ๊ฒ์ด๊ณ ๋น์ ๋ขฐ์ฑ์ ํจํท์ ์์ ํ ์ ๋ฌ์ ๋ณด์ฅํ์ง ์๋ ๊ฒ์ ๋๋ค.
๋ํ IP ๋ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋์ด ์๋ ๋ชจ๋ ์ฅ์น๋ฅผ ์๋ณํ ์ ์๋๋ก ๋ถ์ฌ๋๋ ๊ณ ์ ์ ์ฃผ์์ด๋ฉฐ, ์ด์ ๋ฌธ์๋ก ์ฃผ์๋ฅผ ๋ถ์ฌํด ์ด๋ฆ์ ๋จ ๊ฒ์ ๋๋ฉ์ธ์ด๋ผ๊ณ ํฉ๋๋ค.
๐ฃ๏ธ DNS๋ ๋ฌด์์ธ๊ฐ์?
Domain Name Server์ ์ฝ์ด๋ก, ๋ฌธ์๋ก ํํํ ๋๋ฉ์ธ ์ฃผ์์ IP์ฃผ์ ์ฌ์ด ๋ณํ์ ๋ด๋นํ๋ ์์คํ ํน์ ์๋ฒ๋ฅผ ์๋ฏธํฉ๋๋ค.
DNS๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ๋์ํ๋๋ฐ์, ์ฒซ๋ฒ์งธ๋ก URL์ ์ ๋ ฅํ๋ฉด ISP๊ฐ ๊ด๋ฆฌํ๋ DNSํด์๊ธฐ์ ์์ฒญ์ ๋ผ์ฐํ ์ํต๋๋ค. ๊ทธ ๋ค์ DNS ํด์๊ธฐ๊ฐ ๋ฃจํธ ์๋ฒ์ top-level์ ์๋ฒ ์ฃผ์๋ฅผ ์์ฒญํ๊ตฌ์, ๊ทธ ๋ค์์ top-level์์ second-level, second-level์์ sub DNS Server. ์ด๋ ๊ฒ ํด์ ์ต์ข ์ ์ผ๋ก IP ์ฃผ์๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
๐ฃ๏ธ www.google.com ๋๋ฉ์ธ์ ๋ธ๋ผ์ฐ์ ์ ์ ๋ ฅํ์ ๋ ์ผ์ด๋๋ ์ผ์ ์์ฐจ์ ์ผ๋ก ์ค๋ช ํด์ฃผ์ธ์.
1) www.google.com ์ ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ์ ๋ ฅํฉ๋๋ค.
2) ๋ธ๋ผ์ฐ์ ๋ ์บ์ฑ๋ DNS ๊ธฐ๋ก (๋ธ๋ผ์ฐ์ ์บ์, OS ์บ์, ๋ผ์ฐํฐ ์บ์, ISP ์บ์) ์ ํตํด ํด๋น ๋๋ฉ์ธ ์ฃผ์์ ๋์๋๋ IP์ฃผ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
3) ์์ฒญํ URL์ด ์บ์์ ์๋ ๊ฒฝ์ฐ, ISP์ DNS ์๋ฒ๊ฐ www.google.com ์ ํธ์คํ ํ๊ณ ์๋ ์๋ฒ์ IP์ฃผ์๋ฅผ ์ฐพ๊ธฐ ์ํด DNS Query๋ฅผ ๋ณด๋ด ์ฐพ์ต๋๋ค.
4) ๋ธ๋ผ์ฐ์ ๋ www.google.com ์ ํด๋นํ๋ IP ์ฃผ์๋ฅผ ํ๋ํด ํด๋น ์๋ฒ์ TCP ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค. (3-way handshake)
5) TCP ์ฐ๊ฒฐ์ด ์๋ฃ๋๋ฉด, ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ์ HTTP Request๋ฅผ ๋ณด๋ ๋๋ค.
6) ์๋ฒ๋ ํด๋น Request๋ฅผ ์ฒ๋ฆฌํ๊ณ Response๋ฅผ ์์ฑํด ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ณด๋ ๋๋ค.
7) ๋ธ๋ผ์ฐ์ ๋ ํด๋น Response๋ฅผ ์ฝ์ด๋ค์ฌ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค๋๋ค.
๐ฃ๏ธ TCP Handshaking ์ด ๋ฌด์์ธ๊ฐ์?
TCP๋ ์ ๋ขฐ์ฑ์๋ ์ ์ก์ ์ํด 1:1๋ก ์๋ก ์ ์ฐ๊ฒฐ๋์์์ ํ์ธํ๋ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค. ์ด ๊ณผ์ ์ด ๋ฐ๋ก 3-way handshaking์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
1) Client๊ฐ Server์๊ฒ ์ ์ ์์ฒญ SYN ํจํท์ ๋ณด๋ ๋๋ค.
2) ์๋ฒ๋ SYN ํจํท์ ๋ฐ๊ณ , ํด๋น ์์ฒญ์ ์๋ฝํ๋ ACK์ Client์ ์ฐ๊ฒฐํ๊ฒ ๋ค๋ SYN ํจํท์ ๋์์ ๋ณด๋ ๋๋ค.
3) Client๋ ์๋ฒ์๊ฒ ํ์ธ ์๋ต์ผ๋ก ACK ํจํท์ ๋ณด๋ ๋๋ค.
์ด์ฒ๋ผ, ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋ชจ๋๊ฐ SYN์ ACK๋ฅผ ์๋ก ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ ์๋ฃํ๋ฉด ๋น๋ก์ ์ฐ๊ฒฐ์ด ๋์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
๐ฃ๏ธ ๊ทธ๋ ๋ค๋ฉด TCP Connection์ ํด์ ํ๋ ๊ฒฝ์ฐ๋ ์ด๋ค๊ฐ์?
3-way handshaking์ด ์๋, 4-way handshacking์ ์งํํฉ๋๋ค.
1) Client๊ฐ Server์๊ฒ FIN ์ ํธ๋ฅผ ๋ณด๋ ๋๋ค.
2) Server๋ Client๊ฐ ๋ณด๋ด์จ FIN ์ ํธ์ ์๋ตํ๋ ACK ์ ํธ๋ฅผ ๋ณด๋ ๋๋ค.
3) Server๋ Client์๊ฒ FIN ์ ํธ๋ฅผ ๋ณด๋ ๋๋ค.
4) Client๋ Server๊ฐ ๋ณด๋ด์จ FIN ์ ํธ์ ์๋ตํ๋ ACK ์ ํธ๋ฅผ ๋ณด๋ ๋๋ค.
๐ฃ๏ธ 4-way handshaking ์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ญ๊ฐ์?
Client๋ Server์๊ฒ ๋ฐ์ดํฐ ์์ฒญ์ ๋ชจ๋ ๋ณด๋๋ค ํ๋๋ผ๋, Server๋ Client์๊ฒ ๋ณด๋ด์ผ ํ ๋ฐ์ดํฐ๊ฐ ๋จ์์์ ์ ์๊ธฐ ๋๋ฌธ์ FIN๊ณผ ACK๋ฅผ ํ ๋ฒ์ ๋ณด๋ด์ง ์๊ณ , ์๋ฒ ์ธก์์ ๋ณด๋ผ ๋ฐ์ดํฐ๋ง์ ๋ค ๋ณด๋์ ๊ฒฝ์ฐ FIN ๋ฉ์์ง๋ฅผ ๋ณด๋ ๋๋ค.
๐ฃ๏ธ ๊ทธ๋ ๋ค๋ฉด, Server๊ฐ Client์๊ฒ FIN ํ๋๊ทธ๋ฅผ ์ ์กํ๊ธฐ ์ ์ ์ ์กํ ํจํท์ด ์ง์ฐ์ด๋ ์ ์ค๋ก ์ธํด ์ฌ์ ์ก์ด ์ผ์ด๋ FIN ํจํท๋ณด๋ค ๋ฆ๊ฒ ๋์ฐฉํ๋ฉด ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฅผ ํ๋์?
์ด๋ฐ ์ผ์ ๋ฐฉ์งํ๊ธฐ ์ํด์, Server๋ก๋ถํฐ Client๊ฐ FIN ํ๋๊ทธ๋ฅผ ๋ฐ๋๋ผ๋ ๋ฐ๋ก ์ธ์ ์ ์ข ๋ฃ์ํค์ง ์๊ณ ์ผ์ ์๊ฐ ์์ฌ ํจํท์ ๊ธฐ๋ค๋ฆฌ๋ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค.
4-way handshaking ์ 4๋ฒ์งธ ๊ณผ์ "Client๋ Server๊ฐ ๋ณด๋ด์จ FIN ์ ํธ์ ์๋ตํ๋ ACK ์ ํธ๋ฅผ ๋ณด๋ธ๋ค" ์ดํ์์!
๐ฃ๏ธ ํฌํธ๊ฐ ๋ฌด์์ด๊ณ , ์์ผ์ด ๋ฌด์์ธ๊ฐ์?
ํฌํธ๋ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ๋ก์ธ์ค๋ฅผ ์๋ณํ๊ธฐ ์ํด์ ํธ์คํธ ๋ด๋ถ์ ์ผ๋ก ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ๋ ๊ณ ์ ํ ๊ฐ์ ๋๋ค. ํ๋์ IP ์ฃผ์ ๋ด์ ๊ฐ๋ณ์ ์ผ๋ก ๋ถ์ฌ๋ ํต์ ํ๋ก์ธ์ค์ ๋๋ค.
์์ผ์ ๋คํธ์ํฌ ์์์ ๋์ํ๋ ํ๋ก๊ทธ๋จ ๊ฐ ํต์ ์ ์ข ์ฐฉ์ ์ผ๋ก, ๋ ์์คํ ์ฌ์ด์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๋ํ๋ด๋ ๊ฐ์ฒด์ ๋๋ค. ์์ผ์ ์ด๊ธฐ ์ํด์๋ IP, ํฌํธ ๋ฒํธ, ํ๋กํ ์ฝ์ด ํ์ํ๋ฉฐ, ์ก์์ ์ ๋ชจ๋ ์์ผ์ ์ด์ด์ผ ํฉ๋๋ค. ํ๋์ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ํฌํธ๋ฅผ ๊ฐ์ง๊ณ ์ฌ๋ฌ๊ฐ์ ์์ผ์ ์ด ์ ์์ต๋๋ค.
๐ฃ๏ธ TCP ์ ํน์ง์ด ๋ฌด์์ธ๊ฐ์?
TCP๋ ์ฐ๊ฒฐํ ์๋น์ค๋ก, ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ธฐ ์ ์ ์ก์ ๋ถ์ ์์ ๋ถ ๊ฐ ์ฐ๊ฒฐ์ ํ์ธํฉ๋๋ค. ์ด ๊ณผ์ ์์ ํจํท์ ์ด๋ค ๊ฐ์ ํ์ ์ผ๋ก ๋ณด๋ผ ๊ฒ์ธ์ง ๊ฒฐ์ ํด ๊ฐ์ ํ์ ๋ฐฉ์์ผ๋ก ํจํท ๊ตํ์ด ์ด๋ฃจ์ด์ง๋๋ค. ๋ฐ๋ผ์ ํจํท์ ์ ์ก ์์๊ฐ ๋ณด์ฅ๋ฉ๋๋ค. ๋ํ, ์ก์ ๋ถ์ ์์ ๋ถ ๊ฐ์ 1:1 ํต์ ์ด ์ด๋ค์ง๋ฉฐ ํจํท ์์ ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ์ง๋ง, ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ์ด๋ฌํ ํน์ง ๋๋ฌธ์ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํด์ผ ํ๋ HTTP ํต์ , ์ด๋ฉ์ผ ์ ์ก, ํ์ผ ์ ์ก ๋ฑ์ ์ฌ์ฉ๋ฉ๋๋ค.
๐ฃ๏ธ UDP์ ํน์ง์ด ๋ฌด์์ธ๊ฐ์?
UDP๋ ์ก์ ๋ถ์ ์์ ๋ถ์ ์ฐ๊ฒฐ์ด ๋ณด์ฅ๋์ง ์๋ ๋น์ฐ๊ฒฐํ ์๋น์ค๋ก, ํจํท์ ํ๋์ ํ์ ์ด ์๋ ์๋ก ๋ค๋ฅธ ํ์ ์ผ๋ก ๋ณด๋ผ ์ ์๋ ๋ฐ์ดํฐ๊ทธ๋จ ํจํท ๊ตํ ๋ฐฉ์์ ์ด์ฉํฉ๋๋ค. ๊ทธ๋์ ์ก์ ๋ถ์์ ๋ณด๋ธ ํจํท์ ์์์ ์์ ๋ถ์์ ๋ฐ์ ํจํท์ ์์๊ฐ ๋ณด์ฅ๋์ง ์์ต๋๋ค. ๋ํ, ํจํท์ ์์ ์ฌ๋ถ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ ๋ฎ์ง๋ง, ์ ์ก ์๋๊ฐ ๋น ๋ฆ ๋๋ค.
๐ฃ๏ธ TCP, UDP ์ฐจ์ด์ ์ด ๋ฌด์์ธ๊ฐ์?
TCP์ UDP๋ ์ ์ก ํ๋กํ ์ฝ์ด์ง๋ง ๋ค๋ฅธ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. TCP๋ ๋ฐ์ดํฐ์ ์ ๋ขฐ์ฑ์ด ๋์ ์ฐ๊ฒฐํ ์๋น์ค๋ก, ํจํท์ ํ๋์ ๊ฐ์ ํ์ ์ผ๋ก ์ ์กํฉ๋๋ค. ๋ฐ๋ผ์ ํจํท์ ์ ์ก ์์๋ฅผ ๋ณด์ฅํ๊ณ ํจํท์ ์์ ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค. ๋ฐ๋ฉด UDP๋ ๋น์ฐ๊ฒฐํ ์๋น์ค๋ก, ๋ฐ์ดํฐ๊ทธ๋จ ๋ฐฉ์์ ์ด์ฉํด ํจํท์ ๊ตํํ๋ฏ๋ก ํจํท์ ์ ์ก ์์๊ฐ ๋ณด์ฅ๋์ง ์์ผ๋ฉฐ ์์ ์ฌ๋ถ ๋ํ ํ์ธํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ TCP๋ ์ ๋ขฐ์ฑ์ด ๋๊ณ ์๋๊ฐ ๋๋ฆฐ ๋ฐ๋ฉด UDP๋ ์ ๋ขฐ์ฑ์ด ๋ฎ๊ณ ์๋๊ฐ ๋น ๋ฆ ๋๋ค.
๐ฃ๏ธ HTTP ๋ ๋ฌด์์ธ๊ฐ์?
HyperText Transfer Protocol ์ ์ฝ์ด๋ก, ์ธํฐ๋ท์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํ ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ์ ์์ฒญ/์๋ต ํ๋กํ ์ฝ์ ๋๋ค. TCP/IP 4๊ณ์ธต์์ ์์ฉ ๊ณ์ธต์ ์ํฉ๋๋ค. HTTP๋ ๋น์ฐ๊ฒฐ์ฑ (connectionless) ๊ณผ ๋ฌด์ํ (stateless)๋ผ๋ ๋๊ฐ์ง ํน์ง์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ๋ก ๋น์ฐ๊ฒฐ์ฑ์ ํด๋ผ์ด์ดํธ์ ์์ฒญ์ ๋ํด ์๋ฒ๊ฐ ์๋ตํ ํ ๋ฐ๋ก ์ฐ๊ฒฐ์ ๋๋๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด HTTP Keep Alive๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ ๋ฒ์งธ๋ก ๋ฌด์ํ๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ์ํ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ด '์ํ'์ ๋ํ ์ ์ฅ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ์์ด์ ์ฟ ํค์ ์ธ์ ์ ์ฌ์ฉํฉ๋๋ค.
๐ฃ๏ธ HTTP์ Keep-alive ํค๋์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
HTTP๋ ๋งค๋ฒ ์ฐ๊ฒฐ์ ๋๊ณ ์๋ก ์์ฑํฉ๋๋ค. HTTP Keep Alive๋ HTTP ํ๋กํ ์ฝ์ ์ฐ๊ฒฐ์ ์ ํด์ง ์๊ฐ ๋์ ์ ์งํ๋ ๋ฐฉ์์ผ๋ก, ์ ํด์ง ์๊ฐ์ด ๋๋๋ฉด ์ฐ๊ฒฐ์ ํด์ ํฉ๋๋ค.
๐ฃ๏ธ HTTP Keep Alive ๋ฅผ TCP Keep Alive ์ ํจ๊ป ์ค๋ช ํด ์ฃผ์ธ์.
HTTP Keep Alive์ TCP Keep Alive ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ์ ์ ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ๋๋ค. HTTP Keep Alive๋ HTTP ํ๋กํ ์ฝ์ ์ฐ๊ฒฐ์ ์ ํด์ง ์๊ฐ ๋์ ์ ์งํ๋ ๋ฐฉ์์ผ๋ก, ์ ํด์ง ์๊ฐ์ด ๋๋๋ฉด ์ฐ๊ฒฐ์ ํด์ ํฉ๋๋ค.
๋ฐ๋ฉด TCP Keep Alive๋ 3-way handshaking์ผ๋ก ์ฐ๊ฒฐ๋ ์ธ์ ์ ๊ณ์ ์ ์งํ๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก, ์ผ์ ์๊ฐ ๋์ ํจํท ๊ตํ์ด ์์ผ๋ฉด ์ฐ๊ฒฐ ์ ์ง ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ํจํท์ ๋์ง๋๋ค. ์ด์ ๋ํด ์๋ต์ด ์์ผ๋ฉด ์ถ๊ฐ๋ก ์ผ์ ์๊ฐ ๋์ ์ฐ๊ฒฐ์ ์ ์งํฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ๋ถํ์ํ ์ฐ๊ฒฐ๊ณผ ํด์ ์ ๋ฐ๋ณต์ ์ค์ผ ์ ์์ต๋๋ค.
๐ฃ๏ธ ์ฟ ํค๐ช์ ์ธ์ ์ ์ฐจ์ด์ ์ ์ค๋ช ํด ๋ณด์ธ์.
์ฟ ํค๐ช์ ์ธ์ ๋ชจ๋ HTTP ํต์ ์ ํน์ง์ธ ๋น์ฐ๊ฒฐ์ฑ๊ณผ ๋ฌด์ํ์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค. ์ฟ ํค๋ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๋ ํค์ ๊ฐ์ด ๋ค์ด ์๋ ๋ฐ์ดํฐ ํ์ผ์ ๋๋ค. ์ด๋ ์๋ฒ์์ ํด๋ผ์ด์ธํธ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์์๋ ์ฟ ํค๋ฅผ ์ด์ฉํด ์ ๋ณด๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์น ์ฌ์ดํธ์ ๋ก๊ทธ์ธ ์ธ์ฆ ์ ๋ณด, ์จ๋ผ์ธ ์ผํ๋ชฐ์ ์ฅ๋ฐ๊ตฌ๋ ์ ๋ณด ๋ฑ์ด ์์ต๋๋ค.
์ธ์ ์ ์ฟ ํค์ ๋น์ทํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ด์ง๋ง ํค์ ๊ฐ์ ํด๋ผ์ด์ธํธ์, ๋ฐ์ดํฐ๋ ์๋ฒ์ ์ ์ฅํด์ ์ฟ ํค๋ณด๋ค ๋ณด์์ ๊ฐํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
๐ฃ๏ธ HTTP, HTTPS ์ ์ฐจ์ด์ ์ด ๋ฌด์์ธ๊ฐ์?
HTTPS ์ ๋ฌ๋ฆฌ HTTPS ์๋ ๋ณด์ ๊ณ์ธต์ ์ํธํ ํ๋กํ ์ฝ์ธ SSL/TLS (Secure Socket Layer/Transport Socket Layer)๊ฐ ์์ด์ ์ ์กํ๋ ค๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํด ๋ณดํธํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํน์ง์ ์ธํฐ๋ท ์ผํ์ด๋ ์ธํฐ๋ท ๋ฑ ํน ๋ฑ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋ ์น ์ฌ์ดํธ์์ ์ค์ํ ์์์ ๋๋ค. ๊ทธ๋์ ํฌ๋กฌ, ์ฌํ๋ฆฌ ๋ฑ์ ์น ๋ธ๋ผ์ฐ์ ์์๋ SSL/TLS ๋ฅผ ์ง์ํฉ๋๋ค. ์ด์ธ์๋ HTTP๋ 80๋ฒ ํต์ ํฌํธ๋ฅผ ์ฌ์ฉํ์ง๋ง, HTTPS๋ 443๋ฒ ํต์ ํฌํธ๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์ด ๋ค๋ฆ ๋๋ค.
๐ฃ๏ธ REST API, RESTful ํ๋ค๋ ๊ฒ์ด ๋ฌด์์ธ๊ฐ์?
REST๋ HTTP URI๋ฅผ ํตํด ์์์ ๋ช ์ํ๊ณ HTTP Method๋ฅผ ํตํด ์์์ ์ฒ๋ฆฌ (CRUD์ฐ์ฐ) ํ๋๋ก ์ค๊ณ๋ ์ํคํ ์ฒ์ ๋๋ค.
์ด๋ฌํ REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ API๋ฅผ REST API๋ผ๊ณ ๋ถ๋ฆ ๋๋ค.
RESTful ํ๋ค๋ ๊ฒ์, REST ์๋ฆฌ๋ฅผ ์ ๋ฐ๋ฅด๋ ์์คํ ์ RESTful ํ๋ค๊ณ ํํํฉ๋๋ค.
REST ์๋ฆฌ์๋ ๋ค์ํ ์กฐ๊ฑด๋ค์ด ํฌํจ๋์ด์์ต๋๋ค.
- URI ์์ฑ ์กฐ๊ฑด
- HTTP Method๋ก ํ์ ํํ
- self-descriptive
- HATEOAS ๋ฑ๋ฑ.
HTTP์ ์์์ ์ ๋๋ก ํ์ฉํ๊ณ ์์ง ์๋ค๋ฉด RESTํ์ง ์๋ค๊ณ ํ ์ ์์ต๋๋ค.
๐ฃ๏ธ REST์ ์ฅ๋จ์ ์ ์ค๋ช ํด ๋ณด์ธ์.
REST๋ ์น์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํ ์ํคํ ์ฒ์ ๋๋ค. URI๋ก ์์์ ๋ช ์ํ๊ณ , HTTP๋ฉ์๋๋ก CRUD ์ฐ์ฐ์ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ HTTP๋ฅผ ๋ฐ๋ฅด๋ ๋ชจ๋ ํ๋ซํผ์์ ๋ณ๋์ ์ธํ๋ผ ๊ตฌ์ถ ์์ด REST๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์น ์ด์ธ์๋ iOS, Android ๋ฑ ๋ค์ํ ํ๋ซํผ๊ณผ ๋๋ฐ์ด์ค๊ฐ ๋ฑ์ฅํ๋ฉด์ ๋ฒ์ฉ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ฅ์ ์ด ๋ถ๊ฐ๋๊ณ ์์ต๋๋ค. ํ์ง๋ง HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํด์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ด ํ์ ์ ์ด๋ผ๋ ๋จ์ ์ด ์์ต๋๋ค.
๐ฃ๏ธ ๋ก๋๋ฐธ๋ฐ์ฑ (Load Balancing, ๋ถํ๋ถ์ฐ) ์ด ๋ญ๊ฐ์?
์๋ฒ์ ๋ถํ๋ฅผ ๋ถ์ฐ์์ผ์ฃผ๋ ์์คํ ์ ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ํ ์ฌ์ด์ ์์นํ๋ฉฐ ํ ๋์ ์๋ฒ๋ก ๋ถํ๊ฐ ์ง์ค๋์ง ์๋๋ก ํธ๋ํฝ์ ๊ด๋ฆฌํด ๊ฐ๊ฐ์ด ์๋ฒ๊ฐ ์ต์ ์ ํผํฌ๋จผ์ค๋ฅผ ๋ณด์ผ ์ ์๋๋ก ํฉ๋๋ค. ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ๋๊ณ ์๋น์ค๋ฅผ ์ ๊ณตํ ๋ ๋ถ์ฐ ์ฒ๋ฆฌ ์์คํ ์ ํ์ํ ๊ธฐ์ ์ ๋๋ค. ํฌ๊ฒ L4 ๋ก๋๋ฐธ๋ฐ์์, L7 ๋ก๋๋ฐธ๋ฐ์๊ฐ ์๋๋ฐ์. L4 ๋ก๋๋ฐธ๋ฐ์๋ 4๊ณ์ธต ์ดํ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ๋ก๋๋ฅผ ๋ถ์ฐํด์ค๋๋ค. ํนํ MAC ์ฃผ์, IP ์ฃผ์, ํฌํธ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ํธ๋ํฝ์ ๋ถ์ฐํด์ฃผ๊ณ ์. L7 ๋ก๋๋ฐธ๋ฐ์๋ ์์ฉ ๊ณ์ธต์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ๋ก๋๋ฅผ ๋ถ์ฐํด์ค๋๋ค. ํจํท ๋ด์ฉ์ ํ์ธํ๊ณ ๋ถ์ํด์ DDoS์ ๊ฐ์ ๋น์ ์์ ์ธ ํธ๋ํฝ๋ ํํฐ๋งํ ์ ์์ต๋๋ค.
๐ฃ๏ธ OSI 7 Layer์ ๊ฐ ๊ณ์ธต์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
OSI 7๊ณ์ธต์ ์ธํฐ๋ท์์ ํต์ ํ๊ธฐ ์ํด์ ๋คํธ์ํฌ ํต์ ์ ํ์คํํ ๋ชจ๋ธ๋ก, ํต์ ์์คํ ์ 7๋จ๊ณ๋ก ๋๋์ด ์ค๋ช ํ ๊ฒ์ ๋๋ค. ํต์ ์ด ์ผ์ด๋๋ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ํ์ ํ๊ธฐ ์ํด ๋๋์ด์ก์ต๋๋ค.
์์ฉ๊ณ์ธต, ํํ๊ณ์ธต, ์ธ์
๊ณ์ธต, ์ ์ก๊ณ์ธต, ๋คํธ์ํฌ๊ณ์ธต, ๋ฐ์ดํฐ ๋งํฌ๊ณ์ธต, ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ฆฌ ๊ณ์ธต์ด ์์ต๋๋ค. ๋ฐ์์๋ถํฐ P D N T S P A
์ผ๋ฐ์ ์ผ๋ก ์์ ๊ณ์ธต์ ํ๋กํ ์ฝ์ ์ํํธ์จ์ด๋ก, ํ์ ๊ณ์ธต์ ํ๋กํ ์ฝ์ ํ๋์จ์ด๋ก ๊ตฌํ๋ฉ๋๋ค.
๐ฃ๏ธ ๋จ๊ณ๋ณ๋ก ์์ธํ ์ค๋ช ํด ์ฃผ์ธ์.
- 7๊ณ์ธต (Application Layer, ์์ฉ๊ณ์ธต) : ์ต์ข ๋ชฉ์ ์ง๋ก ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ฐ๊ดํด ์๋น์ค๋ฅผ ์ํํ๋ ๊ณ์ธต์ ๋๋ค. UI๋ฅผ ์ ๊ณตํฉ๋๋ค. HTTP, FTP, DNS๋ฑ์ด 7๊ณ์ธต์ ์ํฉ๋๋ค.
- 6๊ณ์ธต (Presentation Layer, ํํ๊ณ์ธต) : ๋ฐ์ดํฐ ์์ถ ํน์ ๋ณํ์ด ์ด๋ค์ง๋ ๊ณ์ธต์ผ๋ก, ๋ฐ์ดํฐ์ ํ์์ ์ ์ํฉ๋๋ค. JPEG, MPEG๋ฑ์ด 6๊ณ์ธต์ ์ํฉ๋๋ค.
- 5๊ณ์ธต (Session Layer, ์ธ์ ๊ณ์ธต) : ๋ฐ์ดํฐ๊ฐ ํต์ ํ๊ธฐ ์ํ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ์ ๋ด๋นํ๋ ๊ณ์ธต์ผ๋ก, ์ธ์ ์ ์์ฑํด ํต์ ํฉ๋๋ค. API๋ Socket์ด 5๊ณ์ธต์ ์ํฉ๋๋ค.
- 4๊ณ์ธต (Transport Layer, ์ ์ก๊ณ์ธต) : ์ข ๋จ ๊ฐ ์ฌ์ฉ์๋ค์๊ฒ ์ ๋ขฐ์ฑ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ณ์ธต์ ๋๋ค. ๊ฐ ๋ฐ์ดํฐ์ ๋จ์๋ ์ธ๊ทธ๋จผํธ์ ๋๋ค. TCP์ UDP๊ฐ 4๊ณ์ธต์ ์ํฉ๋๋ค.
- 3๊ณ์ธต (Network Layer, ๋คํธ์ํฌ๊ณ์ธต) : IP๋ฅผ ์ง์ ํ๊ณ ๋ผ์ฐํฐ๋ก ๊ฒฝ๋ก๋ฅผ ์ ํํด ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ณ์ธต์ ๋๋ค. ๊ฐ ๋ฐ์ดํฐ์ ๋จ์๋ ํจํท์ ๋๋ค. Router๊ฐ 3๊ณ์ธต์ ์ํฉ๋๋ค.
- 2๊ณ์ธต (Datalink Layer, ๋ฐ์ดํฐ๋งํฌ๊ณ์ธต) : ์ ๋ขฐ์ฑ ์๋ ์ ์ก์ ์ํด ์๋ฌ ๊ฒ์ถ, ํ๋ฆ์ ์ด๋ฅผ ๋ด๋นํ๋ฉฐ ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ์ธ ์ ์ก์ด ์ผ์ด๋๋ ๊ณ์ธต์ ๋๋ค. ๋ฐ์ดํฐ์ ๋จ์๋ ํ๋ ์์ ๋๋ค. Ethernet์ด 2๊ณ์ธต์ ์ํฉ๋๋ค.
- 1๊ณ์ธต (Physical Layer, ๋ฌผ๋ฆฌ๊ณ์ธต) : ๋ฐ์ดํฐ๋ฅผ ์ ๊ธฐ ์ ํธ๋ก ๋ณ๊ฒฝํ๋ ๊ณ์ธต์ผ๋ก, ๋ฐ์ดํฐ ๋จ์๋ ๋นํธ์ ๋๋ค.
๐ฃ๏ธ OSI 7 Layer๋ฅผ ์ฐ์ง ์๊ณ TCP/IP 4๊ณ์ธต์ ์ฐ๋ ์ด์ ๋ฅผ ์ค๋ช ํด ์ฃผ์ธ์.
OSI ๋ชจ๋ธ์ด ์ค๋ฌด์ ์ผ๋ก ์ด์ฉํ๊ธฐ์ ๋ณต์กํ ํ์ ์ค์ ์ธํฐ๋ท์์๋ ์ด๋ฅผ ๋จ์ํํ TCP/IP 4๊ณ์ธต์ด ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
์์ฉ๊ณ์ธต, ์ ์ก๊ณ์ธต, ์ธํฐ๋ท๊ณ์ธต, ๋คํธ์ํฌ ์ธํฐํ์ด์ค ๊ณ์ธต์ด ์์ต๋๋ค. ๋ฐ์์๋ถํฐ N I T A
๐ฃ๏ธ ๋ผ์ฐํฐ์ ์ค์์น, ๋ผ์ฐํฐ์ ๊ฒ์ดํธ์จ์ด์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
๋ผ์ฐํฐ๋, ๋ค์ํ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๋ ์ฅ์น๋ก IP์ฃผ์๊ฐ ์ฌ์ฉ๋๊ณ ๋คํธ์ํฌ ๊ณ์ธต์ ์ํฉ๋๋ค.
์ค์์น๋, ๋ค์ํ ์ฅ์น๋ฅผ ๋์์ ์ฐ๊ฒฐํ๋ ์ฅ์น๋ก MAC ์ฃผ์๊ฐ ์ฌ์ฉ๋๊ณ ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต์ ์ํฉ๋๋ค.
๋ผ์ฐํฐ๋ ๋ชฉ์ ์ง๊ฐ ๋ถ๋ช ํํ ๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ํ๊ธฐํ์ง๋ง,
์ค์์น๋ ๋ธ๋ก๋์บ์คํ ์ ํ๋ค๋ ์ฐจ์ด์ ๋ ์์ต๋๋ค.
๊ฒ์ดํธ์จ์ด๋ ์ด์ข ํ๋กํ ์ฝ ๋ฐ ๋คํธ์ํฌ ๊ฐ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ ๋ค๋ฅธ ๋คํธ์ํฌ๋ก ๋ค์ด๊ฐ๋ ๋ฌธ ์ญํ ์ ํ๋ ๋คํธ์ํฌ ํฌ์ธํธ์ ๋๋ค.
๋ผ์ฐํฐ๋ ์ฃผ๋ก LAN๊ณผ WAN์ ์ฐ๊ฒฐ(layer3)ํ๋๋ฐ ๋ง์ด ์ฌ์ฉ๋๋ฉฐ,
๊ฒ์ดํธ์จ์ด๋ ํ๋กํ ์ฝ์ด ๋ค๋ฅธ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐ(layer4)ํ ๋ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
์์ฆ์๋ ๋ผ์ฐํฐ์ ๊ฒ์ดํธ์จ์ด ๊ธฐ๋ฅ์ด ๊ฐ์ด ์๋ ์ฅ๋น๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ์ถ์ธ์ ๋๋ค.
๐ฃ๏ธ Proxy Server ๊ฐ ๋ฌด์์ธ๊ฐ์?
ํ๋ก์ ์๋ฒ๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด ํด๋ผ์ด์ธํธ๋ฅผ ๋์ ํ์ฌ ์๋ฒ์ ์์ฒญ๊ณผ ์๋ต์ ์ ๋ฌํ๋ ์๋ฒ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต(7)์์ ๋์ํฉ๋๋ค.
๐ฃ๏ธ ์ ์ก ๊ณ์ธต๊ณผ ๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต ๋ชจ๋ ์ ๋ขฐ์ฑ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋๋ฐ, ์ด๋ค ์ฐจ์ด๊ฐ ์๋์?
์ ์ก๊ณ์ธต์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐ๋, ์ข ๋จ๊ฐ์ ํธ์คํธ์ ์ ๋ขฐ์ฑ ๊ด๋ จ ๊ธฐ๋ฅ(ํ๋ฆ์ ์ด, ํผ์ก์ ์ด, ์ค๋ฅ์ ์ด)๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ํธ์คํธ ์ฌ์ด์ ์ ์ก์ผ๋ก ์ง์ ๋ฌถ์ฌ์๋ ํธ์คํธ-๋ ธ๋ ํน์ ๋ ธ๋-๋ ธ๋ ๊ฐ์ ์ ๋ขฐ์ฑ ๊ด๋ จ ๊ธฐ๋ฅ(์ค๋ฅ์ ์ด, ํ๋ฆ์ ์ด, ํ์ ์ ์ด)๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ ์ค ์์ฝ : ์ ์ก๊ณ์ธต์ ๋ ผ๋ฆฌ์ ์ฐ๊ฒฐ (์ข ๋จ๊ฐ ํธ์คํธ) / ๋ฐ์ดํฐ๋งํฌ ๊ณ์ธต์ ๋ฌผ๋ฆฌ์ ์ฐ๊ฒฐ (์ธ์ ํ ๋ ธ๋ or ํธ์คํธ)
๐ฃ๏ธ ์ ์ก ๊ณ์ธต์ด ๋ฐ์ดํฐ ๋ถ์ค์ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํด ์ฃผ์ธ์.
์ ์ก๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ 'ํจํท' ๋จ์๋ก ์ชผ๊ฐ์ด ๊ฐ์ ๋ชฉ์ ์ง๋ก ์ ์กํฉ๋๋ค. ํจํท์ ๊ฐ๊ฐ ๋ฒํธ๋ฅผ ๋ถ์ฌํด ๋ชฉ์ ์ง์์ ํจํท์ ์ฌ์กฐ๋ฆฝํด์ ํจํท์ ๋ถ์ค ์ฌ๋ถ๋ฅผ ํ์ธํฉ๋๋ค
Reference
'๐ฃ๏ธ ์ ์ ์ธํฐ๋ทฐ > ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ์ ๊ฐ๋ฐ์ ๊ธฐ์ ๋ฉด์ ์ค์ ๊ธฐ์ถ : IOCP ๋? (1) | 2024.01.02 |
---|