๐Ÿ“ฑ WebSockets๋ฅผ 5์‚ด ์•„์ด์—๊ฒŒ ์„ค๋ช…ํ•˜๋“ฏ

๋ฐœํ–‰: (2026๋…„ 1์›” 5์ผ ์˜ค์ „ 07:22 GMT+9)
2 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

Source: Dev.to

๋ฌธ์ž ๋ฉ”์‹œ์ง€ vs ์ „ํ™” ํ†ตํ™”

๋ฌธ์ž ๋ฉ”์‹œ์ง€ (HTTP)

  • ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค
  • ๋‹ต์žฅ์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค
  • ๋Œ€ํ™” ์ข…๋ฃŒ
  • ๋‹ค์‹œ ๋งํ•˜๊ณ  ์‹ถ๋‚˜์š”? ๋˜ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ  ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค

์ „ํ™” ํ†ตํ™” (WebSocket)

  • ํ•œ ๋ฒˆ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค
  • ์–ธ์ œ๋“  ์–‘๋ฐฉํ–ฅ ๋Œ€ํ™” ๊ฐ€๋Šฅ
  • ์ฆ‰์‹œ ์‘๋‹ต
  • ๋Š์„ ๋•Œ๊นŒ์ง€ ์—ฐ๊ฒฐ ์œ ์ง€

HTTP์˜ ๋ฌธ์ œ์ 

์ผ๋ฐ˜ ์›น ํŽ˜์ด์ง€๋Š” HTTP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

Browser: "Any new messages?"
Server: "Nope"
(1 second later)
Browser: "Any new messages?"
Server: "Nope"
(1 second later)
Browser: "Any new messages?"
Server: "Yes! Here's one!"

์ด๋Š” ๋งค์ดˆ โ€œANY NEWS?!โ€ ๋ผ๊ณ  ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋ฌธ์ž ๋ณด๋‚ด๋Š” ๊ฒƒ๊ณผ ๊ฐ™์•„โ€”์งœ์ฆ๋‚˜๊ณ  ๋น„ํšจ์œจ์ !

WebSocket ํ•ด๊ฒฐ์ฑ…

Browser: "Let's open a phone line"
Server: "Connected! โœ…"

(Server gets a new message)
Server: "Hey! New message for you!" (instantly pushes)

(Browser sends a message)
Browser: "Sending this!" (instantly sent)

์–‘์ชฝ ๋ชจ๋‘ ์–ธ์ œ๋“  ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ฆด ํ•„์š” ์—†์Œ. ๊ณ„์† ๋ฌผ์–ด๋ณผ ํ•„์š”๋„ ์—†์Œ.

์–ด๋””์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‚˜์š”

  • ๐Ÿ’ฌ ์ฑ„ํŒ… ์•ฑ (WhatsApp, Discord)
  • ๐Ÿ“ˆ ์ฃผ์‹ ํ‹ฐ์ปค (์‹ค์‹œ๊ฐ„ ๊ฐ€๊ฒฉ ์—…๋ฐ์ดํŠธ)
  • ๐ŸŽฎ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ๊ฒŒ์ž„ (์‹ค์‹œ๊ฐ„ ์•ก์…˜)
  • ๐Ÿ”” ์•Œ๋ฆผ (์ฆ‰์‹œ ์•Œ๋ฆผ)
  • ๐Ÿ“ Google Docs (๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํƒ€์ดํ•‘์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด๊ธฐ)

ํ•œ ๋ฌธ์žฅ์œผ๋กœ

WebSocket์€ ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„๊ฐ€ ์–ธ์ œ๋“  ์ฆ‰์‹œ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹ค์‹œ๊ฐ„ ์—ฐ๊ฒฐ์„ ์—ด์–ด ๋‘์–ด, ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ Full deepโ€‘dive with code examples

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

WebSocket vs ํด๋ง vs SSE

ํด๋ž˜์‹ ์š”์ฒญโ€‘์‘๋‹ต ๋ชจ๋ธ๊ณผ ๊ทธ ํ•œ๊ณ„ ํ‘œ์ค€ ์›น ์•ฑ์˜ ์ž‘๋™ ๋ฐฉ์‹ ์ผ๋ฐ˜์ ์ธ ์›น ์•ฑ์—์„œ๋Š”: - ํด๋ผ์ด์–ธํŠธ ๋ธŒ๋ผ์šฐ์ €/์•ฑ์ด ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค. - ...

๐Ÿ“ž DNS๋ฅผ 5์‚ด ์•„์ด์—๊ฒŒ ์„ค๋ช…ํ•˜๋“ฏ

์ธํ„ฐ๋„ท์˜ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ Day 7 of 149 โ€“ ๐Ÿ‘‰ ์ฝ”๋“œ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ํ•˜๋Š” ์™„์ „ํ•œ ์‹ฌ์ธต ํƒ๊ตฌ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€๋ฅผ ๊ธฐ์–ตํ•˜๋‚˜์š”? ๋ถ€๋ชจ๋‹˜๊ป˜ ๋ฌผ์–ด๋ณด์„ธ์š”! ๐Ÿ“š ํ”ผ์žํ—›์— ์ „ํ™”ํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ...

์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ JavaScript DOM ์„ค๋ช…

DOM์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? DOM์€ Document Object Model์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ JavaScript๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๋Š” HTML ๋ฌธ์„œ์˜ ํŠธ๋ฆฌโ€‘๊ตฌ์กฐ์™€ ๊ฐ™์€ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค: - ์ฝ๊ธฐ - ๋ณ€๊ฒฝํ•˜๊ธฐ - ์ถ”๊ฐ€ํ•˜๊ธฐ - ์ œ๊ฑฐํ•˜๊ธฐ