[๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ฌCS ์Šคํ„ฐ๋”” 2์ฃผ์ฐจ] - ๋„คํŠธ์›Œํฌ ์›น ์†Œ์ผ“๊ณผ ์›น์†Œ์ผ“

๊น€์œค์ค€ยท2023๋…„ 12์›” 20์ผ

CS ์Šคํ„ฐ๋””

๋ชฉ๋ก ๋ณด๊ธฐ
11/13

Socket

ํ”„๋กœ๊ทธ๋žจ์ด ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์—ฐ๊ฒฐ๋ถ€.

์ผ๋ฐ˜์ ์œผ๋กœ TCP/IP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•จ.

์†Œ์ผ“์˜ ๊ตฌ์กฐ์™€ ์ž‘๋™ ์›๋ฆฌ

๊ตฌ์กฐ

  • TCP/IP์˜ 4๊ณ„์ธต์—์„œ ์ „์†ก ๊ณ„์ธต ์œ„์— ๋†“์ž„.
  • ์†Œ์ผ“์€ ์—”๋“œํฌ์ธํŠธ๋‹ค. ํ†ต์‹ ์˜ ๋์ ์„ ๋‚˜ํƒœ๋‚ธ๋‹ค. ๋‘ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ๊ฐ๊ฐ ์†Œ์ผ“์„ ์ƒ์„ฑํ•˜๊ณ , ์ด ์†Œ์ผ“๋“ค์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ํ†ต์‹ ํ•œ๋‹ค.

์†Œ์ผ“ ์ฃผ์†Œ

  • ๊ฐ ์†Œ์ผ“์€ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ํฌํ•จํ•œ ์†Œ์ผ“ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„๋‹ค.
  • ์ด ์ •๋ณด๋กœ ๋„คํŠธ์›Œํฌ์ƒ์—์„œ ํŠน์ • ์†Œ์ผ“์„ ์‹๋ณ„ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•œ ๋ชฉ์ ์ง€๋กœ ์ „์†กํ•œ๋‹ค.

ํ”„๋กœํ† ์ฝœ

  • ์†Œ์ผ“์€ ํŠน์ • ํ”„๋กœํ† ์ฝœ(TCP, UDP)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•œ๋‹ค.
  • TCP ์†Œ์ผ“์€ ์—ฐ๊ฒฐ ์ง€ํ–ฅ์ ์ด๋ฉฐ, UDP ์†Œ์ผ“์€ ๋น„์—ฐ๊ฒฐ์„ฑ์ด๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค

  • ์†Œ์ผ“์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต๊ณผ ์ „์†ก ๊ณ„์ธต ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์†Œ์ผ“ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๊ณ , ์ด API๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ๋ถ€ํ„ฐ ์˜จ ์š”์ฒญ์„ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•œ๋‹ค.

์›น์†Œ์ผ“์ด๋ž€?

์›น ์†Œ์ผ“(WebSocket) ํ”„๋กœํ† ์ฝœ์€ HTTP์™€ ๋‹ค๋ฅธ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ๋กœ ์›น ์„œ๋ฒ„์™€ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋กœ ์‹ค์‹œ๊ฐ„ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

์›น ์†Œ์ผ“ ์—ฐ๊ฒฐ ๋งบ๊ธฐ ์ „ ์ฒซ ๋ฒˆ์งธ ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ์ฃผ๊ณ ๋ฐ›์€ ์ดํ›„ ์ง€์†์ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ์œ ์ง€๋˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋ฉฐ, ๋งค๋ฒˆ ๋ฉ”์‹œ์ง€ ์ „์†ก ์‹œ ์ƒˆ๋กญ๊ฒŒ ์—ฐ๊ฒฐ์„ ๋งบ์„ ํ•„์š”๊ฐ€ ์—†์–ด ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๋‹ค.

HTTP ํ”„๋กœํ† ์ฝœ๊ณผ ๋™์ผํ•˜๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•œ๋‹ค.
ํ‰๋ฌธ ๋ฉ”์‹œ์ง€ ์ „์†ก ๋ฐฉ์‹์ด๋ฏ€๋กœ, SSL/TLS ๋ณด์•ˆ ๊ณ„์ธต์œผ๋กœ ์•”ํ˜ธํ™”๋˜์–ด์•ผ ๋ฐ์ดํ„ฐ ํƒˆ์ทจ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

HTTP์™€์˜ ์ฐจ์ด๋Š”?

๊ธฐ์กด HTTP๋Š” ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹ ์ด๋‹ค. ํด๋ผ -> ์„œ๋ฒ„ / ์„œ๋ฒ„ -> ํด๋ผ ๋ฐฉ์‹์ด๋‹ค.
๋˜ํ•œ HTTP๋Š” ๋ฌด์ƒํƒœ(Stateless)๋กœ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

ํ•˜์ง€๋งŒ ์›น์†Œ์ผ“์€ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์œผ๋กœ ์—ฐ๊ฒฐ์ด ์ด๋ฃจ์–ด์ง€๋ฉด ํ•ด๋‹น ์—ฐ๊ฒฐ์ด ์œ ์ง€๋œ๋‹ค.

์†Œ์ผ“๊ณผ์˜ ์ฐจ์ด๋Š”?

๊ณตํ†ต์ 
IP์™€ ํฌํŠธ๋ฅผ ํ†ตํ•œ ํ†ต์‹ ์„ ํ•œ๋‹ค.
์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ํ•œ๋‹ค.

ํ†ต์‹  ๋ ˆ๋ฒจ(์ฐจ์ด์ )
์†Œ์ผ“์€ TCP/IP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์ „์†ก ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•œ๋‹ค. ์ด๋Š” ๋„คํŠธ์›Œํฌ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

์›น์†Œ์ผ“์€ HTTP ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—์„œ ๋™์ž‘ํ•œ๋‹ค. ์›น์†Œ์ผ“์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‹ค์‹œ๊ฐ„ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š”๋ฐ ์ดˆ์ ์„ ๋‘”๋‹ค.

๋ฉ”์‹œ์ง€ ํ˜•์‹(์ฐจ์ด์ )
TCP ๊ธฐ๋ฐ˜ํ•œ ์†Œ์ผ“ ํ†ต์‹ ์€ ๋‹จ์ˆœํžˆ ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „์†ก์ด๋ฏ€๋กœ, ๋ฐ”์ดํŠธ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃธ.

์›น ์†Œ์ผ“์€ HTTP ๋ฉ”์‹œ์ง€ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃธ

๊ฒฐ๋ก 
์ด ๋‘˜์€ ์™„์ „ํžˆ ์ƒ๋ฐ˜๋œ ๊ฐœ๋…์ด ์•„๋‹ˆ๋‹ค. ์›น์—์„œ๋„ TCP ์†Œ์ผ“ ํ†ต์‹ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ. ์ „์†ก ๊ณ„์ธต์˜ ์›์‹œ ๋ฐ”์ดํŠธ ๋Œ€์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ์›น ์†Œ์ผ“์ด ๊ฐœ๋ฐœ ์ธก๋ฉด์— ์ ํ•ฉํ•˜๋‹ค.

๋”ฐ๋ผ์„œ ์ „ํ˜€ ๋‹ค๋ฅด๋‹ค ๋ผ๊ธฐ๋ณด๋‹จ.
์›น ์†Œ์ผ“์€ ์†Œ์ผ“ ํ†ต์‹ ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋งž๊ฒŒ ๋ฐœ์ „ํ•œ ํ˜•๋Œ€์˜ ํ†ต์‹ ์ด๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€