์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ธฐ์ˆ  ์ •๋ฆฌ | Polling, Long-Polling, SSE, WebSocket
ยท
Programming/ETC
์ตœ๊ทผ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ–ˆ๋˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก์— ๋Œ€ํ‘œ์ ์ธ ๊ธฐ์ˆ ๋“ค์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค.1. Polling์ฃผ๊ธฐ์ ์œผ๋กœ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด ์—…๋ฐ์ดํŠธ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๊ณ„์†ํ•ด์„œ request๋ฅผ ์ „์†กํ•œ๋‹ค.์„œ๋ฒ„๋Š” ๋ฐ˜๋ณต๋˜๋Š” request์— ์‘๋‹ตํ•˜๋ฉด์„œ, ์ „๋‹ฌํ•  ์ด๋ฒคํŠธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ „๋‹ฌํ•œ๋‹ค.โ–ถ๏ธŽ ์žฅ์ ๊ตฌํ˜„์ด ๊ฐ„๋‹จํ•˜๋‹ค. (๊ธฐ๋ณธ HTTP๋งŒ ์ง€์›๋˜๋ฉด ๊ตฌํ˜„ ๊ฐ€๋Šฅ)โ–ถ๏ธŽ ๋‹จ์ ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ์ด ๋งŽ์•„์ง€๋ฏ€๋กœ ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.์ƒˆ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ž๋งˆ์ž ํ™•์ธํ•  ์ˆ˜๋Š” ์—†์–ด ์ง€์—ฐ(Latency)์ด ์กด์žฌํ•œ๋‹ค.๋‹ค์ˆ˜ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ฆ๊ฐ€ํ•œ๋‹ค.๋งค์šฐ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‹ค์‹œ๊ฐ„ (๋น„์Šทํ•œ) ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹ 2. Long Pollingํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ , ์„œ๋ฒ„๋Š” ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ..
[SpringBoot] SSE๋ฅผ ์ด์šฉํ•œ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ ์ „์†ก ๊ตฌํ˜„๊ธฐ (feat. Redis Pub/Sub)
ยท
Project/Spring
1. ๋“ค์–ด๊ฐ€๋ฉฐ์Œ์‹์  ์›จ์ดํŒ… ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ์‚ฌ์šฉ์ž์˜ ์›จ์ดํŒ…์ด ํ˜ธ์ถœ๋˜์—ˆ์„ ๋•Œ ์‹ค์‹œ๊ฐ„ ์•Œ๋ฆผ์„ ์ „์†กํ•ด์•ผ ํ–ˆ๋‹ค.์•Œ๋ฆผ์„ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์ฒ˜์Œ ๊ตฌํ˜„ํ•ด๋ณด์•˜๊ธฐ์— ๊ธฐ๋กํ•ด๋ณธ๋‹ค.2. ๊ธฐ์ˆ  ์„ ํƒ ๋ฐฐ๊ฒฝโ–ถ SSE + Redis Pub/Sub ์กฐํ•ฉ์„ ์„ ํƒํ–ˆ๋‹ค, ๊ทธ ์ด์œ ๋Š”?๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋“ค์„ ๋น„๊ตํ•ด๋ณด์•˜๋‹ค.๊ธฐ์ˆ ์„ค๋ช…์žฅ์ ๋‹จ์ ํ”„๋กœ์ ํŠธ ๊ธฐ์ค€ ํ‰๊ฐ€SSE์„œ๋ฒ„ โ†’ ํด๋ผ์ด์–ธํŠธ ๋‹จ๋ฐฉํ–ฅ ์ŠคํŠธ๋ฆฌ๋ฐ (HTTP ๊ธฐ๋ฐ˜)๊ตฌํ˜„ ๊ฐ„๋‹จ, ๋ธŒ๋ผ์šฐ์ € ์ง€์›, HTTP ๊ธฐ๋ฐ˜์ด๋ผ ์ธํ”„๋ผ ๋ณ€๊ฒฝ ์ตœ์†Œ์–‘๋ฐฉํ–ฅ ๋ถˆ๊ฐ€, ์ปค๋„ฅ์…˜ ๊ด€๋ฆฌ ํ•„์š” (๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ์•ฝ 6๊ฐœ)โœ… ํ˜„์žฌ ๋‹จ๋ฐฉํ–ฅ ์•Œ๋ฆผ ๊ตฌํ˜„ ์ค‘์ด๋ฏ€๋กœ ์ ํ•ฉํ•จ์›น์†Œ์ผ“์„œ๋ฒ„ โ†” ํด๋ผ์ด์–ธํŠธ ์–‘๋ฐฉํ–ฅ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ๊ฐ•๋ ฅํ•œ ์‹ค์‹œ๊ฐ„์„ฑ, ์–‘๋ฐฉํ–ฅ ๊ฐ€๋Šฅ, ๋‚ฎ์€ ์ง€์—ฐ์ธํ”„๋ผ ๊ตฌ์„ฑ ๋ถ€๋‹ด (๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์„ค์ • ํ•„์š” ๋“ฑ), ์—ฐ๊ฒฐ ์œ ์ง€ ๋น„์šฉ โ†‘๋‹จ๋ฐฉํ–ฅ ..