์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์›น ์†Œ์ผ“(Web Socket) ํ”„๋กœํ† ์ฝœ

์›น ์†Œ์ผ“์ด๋ž€, ์›น ํ™˜๊ฒฝ์—์„œ ` ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ, Transport protocol`์˜ ์ผ์ข…์ด๋‹ค.
์ฆ‰, ์›น ๋ฒ„์ „์˜ TCP ํ˜น์€ socket ์ด๋ผ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

์›น ์†Œ์ผ“์€ ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๋กœ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ๋™์ ์ธ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ์ฑ„๋„์„ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ WebSocket API๋ฅผ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ์š”์ฒญ ์—†์ด ์‘๋‹ต์„ ๋ฐ›๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์›น ์†Œ์ผ“์˜ ํŠน์ง•

1. ์–‘๋ฐฉํ–ฅ ํ†ต์‹ (Full-Duplex)

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

2. ์‹ค์‹œ๊ฐ„ ๋„คํŠธ์›Œํ‚น(Real Time-Networking)

์‹ค์‹œ๊ฐ„ ๋„คํŠธ์›Œํ‚น์€ ์›น ํ™˜๊ฒฝ์—์„œ ์—ฐ์†๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋…ธ์ถœํ•˜๋Š” ๋„คํŠธ์›Œํ‚น ๋ฐฉ์‹์ด๋‹ค.
์˜ˆ๋กœ๋Š” ์ฑ„ํŒ…, ์ฃผ์‹ ๋“ฑ์ด ์žˆ๋‹ค.

์™œ ์“ธ๊นŒ?

์›น ์†Œ์ผ“์€ Stateful protocol์ด๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์™€ ํ•œ ๋ฒˆ ์—ฐ๊ฒฐ ๋˜๋ฉด ๊ณ„์† ๊ฐ™์€ ๋ผ์ธ์„ ์‚ฌ์šฉํ•ด ํ†ต์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— HTTP ์‚ฌ์šฉ์‹œ ํ•„์š”์—†์ด ๋ฐœ์ƒ๋˜๋Š” HTTP์™€ TCP ์—ฐ๊ฒฐ ํŠธ๋ž˜ํ”ฝ์„ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์›น ์†Œ์ผ“์€ HTTP์™€ ๊ฐ™์€ ํฌํŠธ(80)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์—…์šฉ ์–ดํ”Œ๋ ˆํ‚น์…˜์— ์ ์šฉํ•  ๋•Œ ๋ฐฉํ™”๋ฒฝ ์„ค์ •์„ ๋”ฐ๋กœ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

https://duckdevelope.tistory.com/19

https://velog.io/@codingbotpark/Web-Socket-%EC%9D%B4%EB%9E%80

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ