๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ—ฃ๏ธ ์‹ ์ž… ์ธํ„ฐ๋ทฐ/๋„คํŠธ์›Œํฌ

์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ : ๋„คํŠธ์›Œํฌ 01

๐Ÿ—ฃ๏ธ 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

 

https://velog.io/@min9288/%EB%B0%B1%EC%97%94%EB%93%9C-%EA%B0%9C%EB%B0%9C-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC

https://hoons-dev.tistory.com/94

https://juran-devblog.tistory.com/206