MapleStory Finger Point

โšช ์šฉ์–ด ์ •๋ฆฌ

์›น ์†Œ์ผ“ (WebSocket) ๊ฐœ๋…

HYEJU01 2025. 2. 11. 07:08

 

 

HTTP

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ(Request) → ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต(Response)
  • ์‘๋‹ต ํ›„ ์—ฐ๊ฒฐ์ด ๋‹ซํž˜ (Stateless)
  • ์ƒˆ๋กœ์šด ์š”์ฒญ๋งˆ๋‹ค ๋‹ค์‹œ ์—ฐ๊ฒฐ ํ•„์š”
  • ์ฃผ๋กœ ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹  (ํด๋ผ์ด์–ธํŠธ → ์„œ๋ฒ„)
  • ๋ฐ์ดํ„ฐ๋ฅผ ํ—ค๋”์— ํฌํ•จ์‹œ์ผœ์„œ ์ „๋‹ฌํ•จ

 

ํด๋ง(Polling)

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ์ • ์ฃผ๊ธฐ๋กœ ์„œ๋ฒ„์— ์š”์ฒญํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฐฑ์‹ ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹
  • ์žฅ์ : ๊ธฐ์กด HTTP ๋ฐฉ์‹์—์„œ ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๊ฐ€๋Šฅ
  • ๋‹จ์ : ์‘๋‹ต์ด ์—†๋”๋ผ๋„ ๊ณ„์† ์š”์ฒญ์„ ๋ณด๋‚ด๋ฏ€๋กœ ๋„คํŠธ์›Œํฌ ๋‚ญ๋น„ ๋ฐœ์ƒ, ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๊ฐ€ ๋งค์šฐ ์‹ฌํ•จ, ์‹ค์‹œ๊ฐ„์„ฑ์ด ๋‚ฎ๋‹ค.

* ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ : ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ด์™ธ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋“ค์˜ ๋ถˆํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜

 

WebSocket

  • ํ•œ ๋ฒˆ ์—ฐ๊ฒฐํ•˜๋ฉด ์ข…๋ฃŒ ์ „๊นŒ์ง€ ์œ ์ง€ ( Persistent  Connection)
  • ์–‘๋ฐฉํ–ฅ ํ†ต์‹  ๊ฐ€๋Šฅ (ํด๋ผ์ด์–ธํŠธ ↔ ์„œ๋ฒ„)
  • ์ง€์—ฐ ์‹œ๊ฐ„์ด ์งง์Œ (๋น ๋ฅธ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก)
  • HTTP๋ณด๋‹ค ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ์Œ (๋ฐ˜๋ณต์ ์ธ ์š”์ฒญ·์‘๋‹ต ๊ณผ์ • ์—†์Œ)

 

WebSocket ํ•ธ๋“œ์…ฐ์ดํฌ(Handshake)

  • ์ดˆ๊ธฐ ์—ฐ๊ฒฐ ๊ณผ์ •์—์„œ HTTP ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•˜์—ฌ WebSocket์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ
  • HTTP ์š”์ฒญ ํ—ค๋”์— Upgrade: websocket์„ ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„์— ์ „์†ก
  • ์„œ๋ฒ„๊ฐ€ WebSocket ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•˜๋ฉด ์ „์ด์ค‘ ํ†ต์‹ (Full-Duplex) ์—ฐ๊ฒฐ์ด ํ˜•์„ฑ๋จ
  • * ์ „์ด์ค‘ํ†ต์‹  : ๋‹ค๋ฅธํšŒ์„ ์„ ์‚ฌ์šฉํ•ด์„œ ์„œ๋กœ ์†ก์ˆ˜์‹ ํ•œ๋‹ค. (์–‘์ชฝ์—์„œ ์†ก์ˆ˜์‹ ๊ฐ€๋Šฅ)
  • get ์š”์ฒญ์„ ํ™œ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ์š”์ฒญํ•˜๊ณ , ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์‘๋‹ตํ•จ -> ์—ฐ๊ฒฐ ํ˜•์„ฑ
  • ํ•œ๋ฒˆ ์—ฐ๊ฒฐ์ด ๋˜๋ฉด ์ดํ›„์—๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ฃผ๊ณ  ๋ฐ›์Œ
  • ์š”์ฒญ ์—†์ด๋„ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

https://sendbird.com/ko/developer/tutorials/websocket-vs-http-communication-protocols