4์ฃผ์ฐจ - ๋„คํŠธ์›Œํฌ

  • cs
4์ฃผ์ฐจ - ๋„คํŠธ์›Œํฌ

๐ŸŒ HTTP ์ƒํƒœ ์ฝ”๋“œ(Status Code) ํ•ต์‹ฌ ์š”์•ฝ


HTTP ์ƒํƒœ ์ฝ”๋“œ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ์š”์ฒญ์— ๋Œ€ํ•ด ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ์ƒํƒœ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” 3์ž๋ฆฌ ์ˆซ์ž์ด๋‹ค. ๊ฐ ์•ž์ž๋ฆฌ์— ๋”ฐ๋ผ ๋Œ€๋žต์ ์ธ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.

1xx (Informational) : ์ •๋ณด ์ „๋‹ฌ

์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์•˜์œผ๋ฉฐ, ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ณ„์† ์ง„ํ–‰ ์ค‘์ž„์„ ์˜๋ฏธํ•œ๋‹ค.

  • 100 Continue: ์š”์ฒญ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์ด ์„œ๋ฒ„์— ์ˆ˜์šฉ๋˜์—ˆ์œผ๋‹ˆ, ๋‚˜๋จธ์ง€ ์š”์ฒญ์„ ๊ณ„์† ๋ณด๋‚ด๋„ ์ข‹๋‹ค๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค.

2xx (Successful) : ์„ฑ๊ณต

์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜์‹ ํ•˜๊ณ  ์ฒ˜๋ฆฌํ–ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

  • 200 OK: ์š”์ฒญ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • 201 Created: ์š”์ฒญ์ด ์„ฑ๊ณต์ ์ด์—ˆ์œผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋กœ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๊ฐ€ ์„œ๋ฒ„์— ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

3xx (Redirection) : ๋ฆฌ๋‹ค์ด๋ ‰์…˜

์š”์ฒญ์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ถ”๊ฐ€์ ์ธ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.

  • 301 Moved Permanently: ์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค์˜ URI๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
    • ์˜ˆ: ์„œ๋ฒ„๊ฐ€ /api์—์„œ ์ œ๊ณตํ•˜๋˜ ์„œ๋น„์Šค๋ฅผ /api2๋กœ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ, ๊ธฐ์กด ๊ฒฝ๋กœ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์— ์ด ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ƒˆ ์ฃผ์†Œ๋ฅผ ์•ˆ๋‚ดํ•œ๋‹ค.

4xx (Client Error) : ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ์ž˜๋ชป๋œ ๋ฌธ๋ฒ•์ด ์žˆ๊ฑฐ๋‚˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•œ๋‹ค.

  • 400 Bad Request: ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ดํ•ดํ•  ์ˆ˜ ์—†์Œ์„ ๋œปํ•œ๋‹ค. (์ž˜๋ชป๋œ ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ)
  • 401 Unauthorized: ํ•ด๋‹น ์š”์ฒญ์„ ์œ„ํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ์ธ์ฆ(ID/PW ๋“ฑ) ์ ˆ์ฐจ๊ฐ€ ํ•„์š”ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.
  • 404 Not Found: ์š”์ฒญ๋ฐ›์€ ์ฝ˜ํ…์ธ ๋ฅผ ์„œ๋ฒ„์—์„œ ์ฐพ์„ ์ˆ˜ ์—†์Œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. (์ž˜๋ชป๋œ URL ๊ฒฝ๋กœ ๋“ฑ)

5xx (Server Error) : ์„œ๋ฒ„ ์˜ค๋ฅ˜

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์€ ์œ ํšจํ–ˆ์œผ๋‚˜, ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

  • 500 Internal Server Error: ์„œ๋ฒ„ ๋‚ด๋ถ€์˜ ๋ฌธ์ œ๋กœ ์ธํ•ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๋ฒ”์šฉ์ ์ธ ์—๋Ÿฌ ์ƒํ™ฉ์ด๋‹ค.
  • 502 Bad Gateway: ๊ฒŒ์ดํŠธ์›จ์ด ๋˜๋Š” ํ”„๋ก์‹œ์„œ๋ฒ„๊ฐ€ ์ •ํ•ด์ง„ Timeout ์‹œ๊ฐ„๋™์•ˆ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•จ
  • 503 Service Unavailable: ์„œ๋ฒ„๊ฐ€ ํ˜„์žฌ ์ ๊ฒ€ ์ค‘์ด๊ฑฐ๋‚˜ ๊ณผ๋ถ€ํ•˜๋กœ ์ธํ•ด ์ผ์‹œ์ ์œผ๋กœ ์‘๋‹ต์„ ํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๋‹ค.

HTTP ๋ฉ”์„œ๋“œ


GET : ๋ฐ์ดํ„ฐ ์กฐํšŒ (Retrieve)

์ฃผ๋กœ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ชจ๋“  ์š”์ฒญ ๋ฐ์ดํ„ฐ๊ฐ€ URL์— ๋…ธ์ถœ๋˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹: URL์˜ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง(Query String)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.
    • ๊ธธ์ด ์ œํ•œ: URL์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ฝ 2,000์ž์˜ ๊ธธ์ด ์ œํ•œ์ด ์กด์žฌํ•œ๋‹ค.
  • ์ƒํƒœ ์ฝ”๋“œ: ์š”์ฒญ ์„ฑ๊ณต ์‹œ ์ผ๋ฐ˜์ ์œผ๋กœ 200 OK๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์บ์‹ฑ ๊ฐ€๋Šฅ: ๋™์ผํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ์บ์‹ฑํ•  ์ˆ˜ ์žˆ์–ด ์‘๋‹ต ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  • ๋ณด์•ˆ์„ฑ: URL์— ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋˜์–ด ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ก(History)์— ๋‚จ์œผ๋ฏ€๋กœ, ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ ๋ฏผ๊ฐํ•œ ์ •๋ณด ์ „๋‹ฌ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.
  • ๋ฐ์ดํ„ฐ ํƒ€์ž…: ASCII ๋ฌธ์ž์—ด ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

POST : ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ์ƒ์„ฑ (Create)

์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ฐฉ์‹: URL์ด ์•„๋‹Œ HTTP ๋ฉ”์‹œ์ง€์˜ Body์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ์ „๋‹ฌํ•œ๋‹ค.
  • ๊ธธ์ด ์ œํ•œ: ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ์ œํ•œ์ด ์—†์–ด ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ์ „์†ก๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ณด์•ˆ์„ฑ: ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ URL์— ๋…ธ์ถœ๋˜์ง€ ์•Š์•„ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ก์— ๋‚จ์ง€ ์•Š๋Š”๋‹ค. (๋‹จ, ์•”ํ˜ธํ™”๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ํŒจํ‚ท ๋ถ„์„์„ ํ†ตํ•ด ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ HTTPS ์‚ฌ์šฉ์ด ๊ถŒ์žฅ๋œ๋‹ค.)
  • ๋ฐ์ดํ„ฐ ํƒ€์ž…: ๋ฌธ์ž์—ด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ, JSON, ์ด๋ฏธ์ง€ ๋“ฑ ๋ชจ๋“  ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
  • ์บ์‹ฑ ๋ถˆ๊ฐ€: ์„œ๋ฒ„์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์ด ๋งŽ์œผ๋ฏ€๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์บ์‹ฑ์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์‚ฌ์šฉ ์‚ฌ๋ก€: ์‚ฌ์šฉ์ž ๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ ๋“ฑ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋‚˜ ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

PUT : ๋ฆฌ์†Œ์Šค์˜ ์ „์ฒด ๊ต์ฒด

๋Œ€์ƒ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋กœ ์™„์ „ํžˆ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ์‹

  • ์ „์ฒด ๋ฐ์ดํ„ฐ ์ „์†ก: ์—…๋ฐ์ดํŠธํ•˜๋ ค๋Š” ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  ํ•„๋“œ๊ฐ’์„ ๋ณด๋‚ด์•ผํ•จ.
  • ๋ฎ์–ด์“ฐ๊ธฐ: ๋งŒ์•ฝ ์š”์ฒญ ์‹œ์— ํŠน์ • ํ•„๋“œ๋ฅผ ์ƒ๋žตํ•˜๊ณ  ๋ณด๋‚ผ ๊ฒฝ์šฐ,
    • ์„œ๋ฒ„์— ๋”ฐ๋ผ ํ•ด๋‹น ํ•„๋“œ๊ฐ€ ์‚ญ์ œ๋˜๊ฑฐ๋‚˜ null๋กœ ์—…๋ฐ์ดํŠธ ๋  ์ˆ˜ ์žˆ์Œ.
  • ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ: ์š”์ฒญํ•œ URI์— ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์„œ๋ฒ„ ์„ค์ •์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ๋„ ํ•จ.
  • ๋ฉฑ๋“ฑ์„ฑ(Idempotent): ๋™์ผํ•œ ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณด๋‚ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ๊ฐ™์Œ

PATCH: ๋ฆฌ์†Œ์Šค์˜ ๋ถ€๋ถ„์ˆ˜์ •

๋ฆฌ์†Œ์Šค๋ฅผ ์ „์ฒด ๊ต์ฒดํ•˜์ง€ ์•Š๊ณ , ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ํŠน์ • ํ•„๋“œ๋งŒ์„ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ์‹

  • ์ผ๋ถ€ ๋ฐ์ดํ„ฐ ์ „์†ก : ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋งŒ ๋‹ด์•„์„œ ๋ณด๋ƒ„
  • ํšจ์œจ์„ฑ: ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Œ
  • ๋น„๋ฉฑ๋“ฑ์„ฑ ๊ฐ€๋Šฅ์„ฑ: ๊ตฌํ˜„ ๋ฐฉ์‹์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ–ˆ์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์–ด ์ฃผ์˜๊ฐ€ ํ•„์š”

๋น„๊ต ์˜ˆ์‹œ

๋งŒ์•ฝ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ฐ€ "id": 1, "name": "woojin", "age": 25"} ์ผ ๋•Œ,

๋ฉ”์„œ๋“œ ์š”์ฒญ ๋ฐ์ดํ„ฐ (Body) ๊ฒฐ๊ณผ
PUT { "name": "Flash" } { "id": 1, "name": "Flash" } (๋‚˜๋จธ์ง€ ์ •๋ณด ์‚ญ์ œ/์ดˆ๊ธฐํ™” ์œ„ํ—˜)
PATCH { "name": "Flash" } { "id": 1, "name": "Flash", "age": 20 } (์ด๋ฆ„๋งŒ ๋ณ€๊ฒฝ๋จ)

๋”ฐ๋ผ์„œ,

๋ฆฌ์†Œ์Šค์˜ ์ „์ฒด๋ฅผ ๊ฐˆ์•„์น˜์šฐ๊ณ  ์‹ถ๋‹ค๋ฉด PUT, ํŠน์ • ์ผ๋ถ€๋งŒ์„ ๊ณ ์น˜๊ณ  ์‹ถ๋‹ค๋ฉด PATCH๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋„คํŠธ์›Œํฌ๋ฅผ ์ด๋ฃจ๋Š” ์žฅ์น˜์˜ ์ดํ•ด


๋ ˆ์ด์–ด๋ณ„ ๋„คํŠธ์›Œํฌ ์žฅ์น˜

  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต : L7 ์Šค์œ„์น˜
  • ์ „์†ก ๊ณ„์ธต: L4 ์Šค์œ„์น˜
  • ์ธํ„ฐ๋„ท ๊ณ„์ธต(๋„คํŠธ์›Œํฌ ๊ณ„์ธต) : ๋ผ์šฐํ„ฐ, L3 ์Šค์œ„์น˜
  • ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต : L2 ์Šค์œ„์น˜, ๋ธŒ๋ฆฌ์ง€
  • ๋ฌผ๋ฆฌ ๊ณ„์ธต : NIC, ๋ฆฌํ”ผํ„ฐ, AP

# 1 ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต - L7 ์Šค์œ„์น˜

L7 ์Šค์œ„์น˜๋ž€? ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜๋Š” ๊ธฐ๊ธฐ๋‹ค.

alt text

  • ์„œ๋ฒ„ ์ด์ค‘ํ™”, ๋ณด์•ˆ์— ๊ฐ•์ ์ด ์žˆ๋‹ค.
  • IP, Port, url, ํ—ค๋”, ์ฟ ํ‚ค ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•œ๋‹ค.
  • ํ—ฌ์Šค ์ฒดํฌ๋ฅผ ํ†ตํ•ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ์„œ๋ฒ„๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ณด๋‚ด์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
    • ํ—ฌ์Šค ์ฒดํฌ๋ž€?

      TCP๋ฅผ ์ผ์ • ์‹œ๊ฐ„ ๋งˆ๋‹ค ์ „์†กํ•˜์—ฌ, ์‘๋‹ต์„ ํ™•์ธํ•จ.

      ์ฐธ๊ณ ) AWS์—์„œ L7 ์Šค์œ„์น˜๋ฅผ ์ด์šฉํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์€ ALB๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด์„œ ํ•˜๋ฉฐ L4 ์Šค์œ„์น˜๋ฅผ ์ด์šฉํ•œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์€ NLB ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด ๊ตฌ์ถ•ํ•œ๋‹ค.

# 2 ์ „์†ก ๊ณ„์ธต - L4 ์Šค์œ„์น˜

L4 ์Šค์œ„์น˜๋ž€?

์•ž์„œ ์„ค๋ช…ํ•œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์˜ ํŠน์ง•์ธ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํŒจํ‚ท์˜ IP ์ฃผ์†Œ์™€ Port ๋ฒˆํ˜ธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ ์ ˆํžˆ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ „์†ก๊ณ„์ธต์˜ TCP, UDP ๋“ฑ์˜ ํ—ค๋”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํŒ๋‹จํ•ด์„œ ๋ถ„์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • L7์™€ ๊ฐ™์ด ํ—ฌ์Šค์ฒดํฌ๊ฐ€ ๊ฐ€๋Šฅํ•จ.

# 3 ์ธํ„ฐ๋„ท ๊ณ„์ธต - ๋ผ์šฐํ„ฐ, L3 ์Šค์œ„์น˜

๋ผ์šฐํŒ…์ด๋ž€?

ํ•˜๋‚˜ ์ด์ƒ์˜ ๋„คํŠธ์›Œํฌ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•จ.

  • ์ด ๋ผ์šฐํŒ…์„ ํ•˜๋Š” ์žฅ๋น„๋ฅผ ๋ผ์šฐํ„ฐ(Router)๋ผ๊ณ  ํ•จ.
  • ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์กด์žฌํ•˜๋Š” ์žฅ์น˜๋ผ๋ฆฌ ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ **โ€œํŒจํ‚ท์†Œ๋ชจ ์ตœ์ ํ™”โ€, โ€œ๊ฒฝ๋กœ ์ตœ์ ํ™”โ€**ํ•˜๋Š” ์žฅ๋น„

L3 ์Šค์œ„์น˜๋ž€?

L2 ์Šค์œ„์น˜์˜ ๊ธฐ๋Šฅ๊ณผ ๋ผ์šฐํŒ…์„ ํ•˜๋Š” ์žฅ๋น„์ด๋‹ค.

  • ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•ด์„œ IP ํŒจํ‚ท์— IP์ฃผ์†Œ๋ฅผ ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค.

# 2 ์ „์†ก ๊ณ„์ธต - L4 ์Šค์œ„์น˜

L4 ์Šค์œ„์น˜๋ž€?

์•ž์„œ ์„ค๋ช…ํ•œ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ์˜ ํŠน์ง•์ธ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ํŒจํ‚ท์˜ IP ์ฃผ์†Œ์™€ Port ๋ฒˆํ˜ธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ ์ ˆํžˆ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ „์†ก๊ณ„์ธต์˜ TCP, UDP ๋“ฑ์˜ ํ—ค๋”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํŒ๋‹จํ•ด์„œ ๋ถ„์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • L7์™€ ๊ฐ™์ด ํ—ฌ์Šค์ฒดํฌ๊ฐ€ ๊ฐ€๋Šฅํ•จ.

# 3 ์ธํ„ฐ๋„ท ๊ณ„์ธต - ๋ผ์šฐํ„ฐ, L3 ์Šค์œ„์น˜

๋ผ์šฐํŒ…์ด๋ž€?

ํ•˜๋‚˜ ์ด์ƒ์˜ ๋„คํŠธ์›Œํฌ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•จ.

  • ์ด ๋ผ์šฐํŒ…์„ ํ•˜๋Š” ์žฅ๋น„๋ฅผ ๋ผ์šฐํ„ฐ(Router)๋ผ๊ณ  ํ•จ.
  • ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์กด์žฌํ•˜๋Š” ์žฅ์น˜๋ผ๋ฆฌ ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ **โ€œํŒจํ‚ท์†Œ๋ชจ ์ตœ์ ํ™”โ€, โ€œ๊ฒฝ๋กœ ์ตœ์ ํ™”โ€**ํ•˜๋Š” ์žฅ๋น„

L3 ์Šค์œ„์น˜๋ž€?

L2 ์Šค์œ„์น˜์˜ ๊ธฐ๋Šฅ๊ณผ ๋ผ์šฐํŒ…์„ ํ•˜๋Š” ์žฅ๋น„์ด๋‹ค.

  • ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•ด์„œ IP ํŒจํ‚ท์— IP์ฃผ์†Œ๋ฅผ ๋‹ด์•„ ๋ณด๋‚ธ๋‹ค.
    • ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”
    • IP ์ฃผ์†Œ
    • IP ํŒจํ‚ท

# 4 ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต

๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์€ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ ํ†ตํ•ด ์—๋Ÿฌ ํ™•์ธ, ํ๋ฆ„ ์ œ์–ด, ์ ‘๊ทผ ์ œ์–ด๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๊ณ„์ธต์„ ๋งํ•œ๋‹ค.

L2 ์Šค์œ„์น˜

L2 ์Šค์œ„์น˜๋Š” ์žฅ์น˜๋“ค์˜ MAC ์ฃผ์†Œ๋ฅผ MAC ์ฃผ์†Œ ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๊ด€๋ฆฌํ•จ.

  • ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ธํ„ฐ๋„ท ๊ณ„์ธต์—์„œ ๋ฐ›์€ ํŒจํ‚ท์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค์–ด ๋ชฉ์ ์ง€ MAC ์ฃผ์†Œ๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ด์ฃผ๋Š” ์—ญํ•˜์„ ํ•œ๋‹ค.
    • MAC ์ฃผ์†Œ ํ…Œ์ด๋ธ”
    • MAC ์ฃผ์†Œ
    • ์ด๋”๋„ท ํ”„๋ ˆ์ž„

๋ธŒ๋ฆฌ์ง€

๋ธŒ๋ฆฌ์ง€(bridge)๋Š” ๋‘ ๊ฐœ์˜ ๊ทผ๊ฑฐ๋ฆฌ ํ†ต์‹ ๋ง(LAN)์„ ์ƒํ˜ธ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ†ต์‹ ๋ง ์—ฐ๊ฒฐ ์žฅ์น˜๋ฅผ ๋งํ•œ๋‹ค.

  • ํ†ต์‹ ๋ง์˜ ๋ฒ”์œ„๋ฅผ ํ™•์žฅํ•˜๊ณ  LAN์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋‚˜์˜ ํ†ต์‹ ๋ง์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์“ฐ์ž„.

์œ ์„  LAN #1. ์ „์ด์ค‘ํ™” ํ†ต์‹ , CSMA/CD

์ „์ด์ค‘ํ™”(full duplex)๋ž€?

์–‘์ชฝ ์žฅ์น˜๊ฐ€ ๋™์‹œ์— ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ๋™์ถ•์ผ€์ด๋ธ”, ๊ด‘์ผ€์ด๋ธ” ๋“ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์œ ์„  LAN์„ ์ด๋ฃจ๋Š” ์ด๋”๋„ท์€ IEEE802.3 ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ „์ด์ค‘ํ™” ํ†ต์‹ ์„ ์“ด๋‹ค.

IEEE802.3

์ด๋”๋„ทํ”„๋ ˆ์ž„์€ ์–ด๋–ค ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•  ๊ฒƒ์ธ์ง€, ์ผ€์ด๋ธ”์˜ ์ตœ๋Œ€ ์ „์†ก๋Ÿ‰, ์–ด๋–ค ์ผ€์ด๋ธ”๋งŒ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•  ๊ฒƒ์ธ์ง€ ๋“ฑ์„ ์ •ํ•œ ๊ทœ์น™์„ ๋งํ•จ.

์ „์ด์ค‘ํ™” ํ†ต์‹ 

์–‘์ชฝ ์žฅ์น˜๊ฐ€ ๋™์‹œ์— ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹, ์†ก์‹ ๋กœ์™€ ์ˆ˜์‹ ๋กœ๋ฅผ ๋‚˜๋ˆ ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

CSMA/CD

์ด์ „์—๋Š” ์œ ์„  LAN์— โ€˜๋ฐ˜์ด์ค‘ํ™” ํ†ต์‹ โ€™ ์ค‘ ํ•˜๋‚˜์ธ CSMA/CD(Carrier Sense Multiple Access with Collision Detection) ๋ฐฉ์‹์„ ์ผ๋‹ค. ์ด ๋ฐฉ์‹์€ ํšŒ์„ ์„ ์‚ฌ์šฉํ•˜๋Š” ์ง€๋ฅผ ํŒŒ์•…ํ•œ ํ›„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„ ์žฌ์ „์†ก ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.

์œ ์„  LAN #2 ์ผ€์ด๋ธ”

ํŠธ์œ„์ŠคํŠธํŽ˜์–ด ์ผ€์ด๋ธ”

ํŠธ์œ„์ŠคํŠธ ํŽ˜์–ด ์ผ€์ด๋ธ”์€ 2๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  1. STP: ์‹ค๋“œ์ฒ˜๋ฆฌ ํ•œ ์ผ€์ด๋ธ”
  2. UTP: ์‹ค๋“œ์ฒ˜๋ฆฌ๋ฅผ ์•ˆํ•œ ์ผ€์ด๋ธ”

๊ด‘์„ฌ์œ  ์ผ€์ด๋ธ”

๋ ˆ์ด์ €๋ฅผ ์ด์šฉํ•ด ํ†ต์‹ ํ•˜๋ฉฐ ๋ณดํ†ต 100Gbps์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์ผ€์ด๋ธ”

  • ์ฝ”์–ด : ๋น›์˜ ๊ตด์ ˆ๋ฅ ์ด ๋†’์€ ๋ถ€๋ถ„
  • ํด๋ž˜๋”ฉ : ๋น›์˜ ๊ตด์ ˆ๋ฅ ์ด ๋‚ฎ์€ ๋ถ€๋ถ„
    • ๋‹ค๋ฅธ ๋ฐ€๋„๋ฅผ ๊ฐ€์ง€๋Š” ์œ ๋ฆฌ๋‚˜ ํ”Œ๋ผ์Šคํ‹ฑ ์„ฌ์œ  ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘
    • ํ•œ๋ฒˆ ๋“ค์–ด๊ฐ„ ๋น›์ด ๋‚ด๋ถ€์—์„œ ๊ณ„์† ๋ฐ˜์‚ฌํ•˜๋ฉฐ ์ „์ง„ํ•˜์—ฌ ๋ฐ˜๋Œ€ํŽธ ๋๊นŒ์ง€ ๊ฐ€๋Š” ์›๋ฆฌ๋ฅผ ์ด์šฉํ•จ

๋ฌด์„  LAN #1 ๋ฐ˜์ด์ค‘ํ™”ํ†ต์‹ , CSMA/CA, ์™€์ดํŒŒ์ด

๋ฌด์„ ๋žœ์€ IEEE802.11 ํ‘œ์ค€ ๊ทœ๊ฒฉ์„ ๋”ฐ๋ฅด๋ฉฐ ๋ฐ˜์ด์ค‘ํ™” ํ†ต์‹ ์„ ์‚ฌ์šฉํ•œ๋‹ค.

๋ฐ˜์ด์ค‘ํ™” ํ†ต์‹ 

๋ฐ˜์ด์ค‘ํ™” ํ†ต์‹ ์€ ์–‘์ชฝ ์žฅ์น˜๋Š” ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋™์‹œ์—๋Š” ํ†ต์‹ ํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํ•œ ๋ฒˆ์— ํ•œ ๋ฐฉํ–ฅ๋งŒ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์„ ๋งํ•จ.

CSMA/CA

๋ฐ˜์ด์ค‘ํ™” ํ†ต์‹  ์ค‘ ํ•˜๋‚˜๋กœ ์žฅ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „์— ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์ „์— ์ตœ๋Œ€ํ•œ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•จ.

๋ฐ˜์ด์ค‘ํ™” ํ†ต์‹  ๊ณผ์ •

  1. ์‚ฌ์šฉ์ค‘์ธ ์ฑ„๋„์ด ์žˆ๋‹ค๋ฉด, ๋‹ค๋ฅธ ์ฑ„๋„์„ ๊ฐ์ง€ํ•˜๋‹ค ์œ ํ›„ ์ƒํƒœ์ธ ์ฑ„๋„ ๋ฐœ๊ฒฌ
  2. ํ”„๋ ˆ์ž„ ๊ฐ„ ๊ณต๊ฐ„ ์‹œ๊ฐ„์ธ IFS(InterFrame Space)์‹œ๊ฐ„๋งŒํผ ๊ธฐ๋‹ค๋ฆผ
  3. ํ”„๋ ˆ์ž„์„ ๋ณด๋‚ด๊ธฐ ์ „ 00 ~ 2Kโˆ’12^{K-1} ์‚ฌ์ด์—์„œ ๊ฒฐ์ •๋œ ๋žœ๋ค ์ƒ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฐ์ •๋œ ์‹œ๊ฐ„๋งŒํผ ๊ธฐ๋‹ค๋ฆฐ ๋’ค ํ”„๋ ˆ์ž„์„ ๋ณด๋ƒ„
    • ํ”„๋ ˆ์ž„์„ ๋ณด๋‚ธ ๋’ค ์ œ๋Œ€๋กœ ์†ก์‹ ๋˜์—ˆ๊ณ  ACK ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋ฐ›์•˜๋‹ค๋ฉด ๋งˆ๋ฌด๋ฆฌ

    • ๋ฐ›์ง€ ๋ชปํ•˜์˜€์„ ๊ฒฝ์šฐ,

      k=k+1k=k+1์„ ํ•˜๋ฉฐ ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•จ

    • ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ k๊ฐ€ ์ •ํ•ด์ง„ Kmax๋ณด๋‹ค ๋” ์ปค์ง€๋ฉด, ํ•ด๋‹น ํ”„๋ ˆ์ž„ ์ „์†ก์€ abort

์ตœ์šฐ์ง„ ํ”„๋กœํ•„

Woojin

๊ตฌ์กฐ์ ์œผ๋กœ ์‚ฌ๊ณ ํ•˜๊ณ , ๊ทผ๊ฑฐ ์žˆ๊ฒŒ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.