์‹ค์‹œ๊ฐ„ ๊ณต์œ  ๋ฌธ์„œ ํŽธ์ง‘์„ ์œ„ํ•œ WebSocket ์ดํ•ด

2023. 5. 2. 16:00ยทDevelop/Web

WebSocket

 

WebSocket์€ ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค.

 

HTTP

 

์ด์ „์—๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ ์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ ,

์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹  ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ์—๋Š” ๋ถ€์ ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

Socket


WebSocket์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. 

WebSocket์€ HTTP์™€ ๋น„์Šทํ•œ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, 

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

์ด๋ฅผ ํ†ตํ•ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์›น์†Œ์ผ“์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์† ์š”์ฒญ์„ ํ•˜๊ณ  ์›น ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•œ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๋Š” ๊ฒƒ์ด ์•„๋‹Œ

Connection์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ ์—†์ด๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

ํ”„๋กœํ† ์ฝœ์˜ ์š”์ฒญ์€ [ws://~]๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

 

 

WebSocket ์ ‘์† ๊ณผ์ •

 

WebSocket ๊ตฌํ˜„ ํ…Œ์ŠคํŠธ

 

1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€

implementation 'org.springframework.boot:spring-boot-starter-websocket'

 

 

2. WebSocket Handler

์†Œ์ผ“ํ†ต์‹ ์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ 1:N์˜ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ๋‹ค์ˆ˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์„œ๋ฒ„๋Š” ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๋ฉ”์„ธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•  ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. 

 

 

3. WebSocket Config

ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ด์šฉํ•ด WebSocket์„ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•œ Config๋ฅผ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค.

@Configuration
@EnableWebSocket
public class WebSocketConfig implements WebSocketConfigurer

@EnableWebSocket ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•ด WebSocket์„ ํ™œ์„ฑํ™” ํ•˜๋„๋ก ํ•œ๋‹ค.

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Develop > Web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[HTTP] @RequestMapping - GET , POST ์˜ ์ฐจ์ด  (0) 2023.02.16
'Develop/Web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [HTTP] @RequestMapping - GET , POST ์˜ ์ฐจ์ด
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
์‹ค์‹œ๊ฐ„ ๊ณต์œ  ๋ฌธ์„œ ํŽธ์ง‘์„ ์œ„ํ•œ WebSocket ์ดํ•ด
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”