๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SSE3

SSE ์ ์šฉ (3) - SSE ์ ์šฉ ์‹œ ์ด์Šˆ ์ฒ˜๋ฆฌ 1. Event Share ์ด์Šˆ ์ฒ˜๋ฆฌ (๋™์‹œ ์ ‘์† ๊ณ ๋ ค)์ด์Šˆ - ์—ฌ๋Ÿฌ๊ฐœ์˜ ํƒญ์„ ๋„์›Œ๋†จ์„ ๋•Œ Emitter Subscribe Response๋Š” ๋‹ค OK๊ณ  Event๊ฐ€ ์ œ๋Œ€๋กœ ์ƒ์„ฑ์—ˆ์ง€๋งŒ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ƒ์„ฑ๋œ ํƒญ๋งŒ event data ์—…ํ…Œ์ดํŠธ๊ฐ€ ๋จ ์›์ธ - API์—์„œ ๋™์ผ ์ด๋ฒคํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค์Œ ์ƒ์„ฑ๋œ ๋™์ผ ํ‚ค์˜ ์ด๋ฒคํŠธ๋กœ ๋ฎ์–ด ์“ฐ๊ธฐ๊ฐ€ ๋˜์–ด์ ธ๋ฒ„๋ฆผ - = API์—์„œ concurrentHashMap์— emitter ๋‹ด๊ณ  ์žˆ๋Š”๋ฐ ๋™์ผ key๋กœ ์ƒˆ ๊ฒƒ์œผ๋กœ ์—Ž์–ด์ณ์ ธ์„œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• - emitter๋Š” ๊ณต์œ  ์•ˆ๋จ - ์ด๋ฒคํŠธ ๊ตฌ๋…์ด ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์—ฌ๋Ÿฌ๊ฐœ emitter๋ฅผ uuid ์ถ”๊ฐ€ ๋ฐ idPrefix์ ์šฉํ•ด์„œ Broadcast ์‹œ idPrefix ํ•˜์œ„ ๊ฒƒ๋“ค ๋ชจ๋‘ ์—…๋ฐ์ดํŠธ ๋˜๋„๋ก ๋ณ€๊ฒฝ 2. ์ธ์ฆ์ด์Šˆ - event subscribe์‹œ .. 2024. 8. 19.
SSE ์ ์šฉ (2) - ์ด์ค‘ํ™”๋ฅผ ์ ์šฉํ•ด๋ณด์ž ํ•„์š”์„ฑ- ์‹ ๊ทœ ๊ตฌ์ถ• ์Šคํ…Œ์ด์ง€ ๋Œ€๋ถ€๋ถ„ API 2๋Œ€ -> ์Šค์ผ€์ผ๋ง ์ด์Šˆ ๊ณ ๋ฏผ์ด ํ•„์š”- ํ˜„์žฌ ๊ฐ๊ฐ API์— Subscribe, broadcast๊ฐ€ ์žˆ์œผ๋ฉด ์ด๋ฒคํŠธ ๋ฐœ์ƒํ•œ ์ชฝ์— ์‘๋‹ต ๋ˆ„๋ฝ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ. ๊ตฌํ˜„ ๋ฐฉ๋ฒ•- MQ๋ฅผ ์ด์šฉ  - ๊ธฐ์กด์— ์‚ฌ์šฉ์ค‘์ธ ๋ฆฌ์†Œ์Šค  - Redis๋‚˜ Kafka๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋‚˜, ํ˜„์žฌ ์ƒํ™ฉ์—์„œ SSE๋•Œ๋ฌธ์— ์ธํ”„๋ผ ์ถ”๊ฐ€๋Š” ๋ถˆ๊ฐ€ํ•œ ์ƒํ™ฉ  - ๋‹ค์ค‘ ๋กœ๊ทธ์ธ ์ด๋ ‡๊ฒŒ ์‹ฌํ™”๊นŒ์ง€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ (๋‹จ์ผ ๊ธฐ๊ธฐ ๋กœ๊ทธ์ธ ํ™˜๊ฒฝ)  - ๊ตฌํ˜„์„ ์ด๊ฒƒ์ €๊ฒƒ ๋ณด๋‹ˆ MQ๋กœ ์ถฉ๋ถ„ํ•˜๊ฒŒ ๋Œ€์‘ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™์Œ- Subscribe๋Š” ์–ด๋Š ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒํ•ด๋„ ์ƒ๊ด€์ด ์—†์Œ, ๋”ฐ๋ผ์„œ API๋กœ ์ง„ํ–‰, Broadcast๋Š” MQ๋กœ ์ ์šฉ- ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์ด๋ฒคํŠธ ID Prefix๋ฅผ ํ™•์ธํ•˜์—ฌ ๊ตฌ๋…์ค‘์ธ ๋ชจ๋“  ์„œ๋ฒ„์— ๋งคํ•‘๋˜๋Š” ๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ๋™์‹œ์— Br.. 2024. 8. 19.
SSE ์ ์šฉ (1) - SSE๋ฅผ ์ ์šฉํ•ด๋ณด์ž ๊ฐœ๋… ๋ฐฐ์น˜ ๋™์ž‘ ์™„๋ฃŒ ์‹œ์ ๋งˆ๋‹ค ํ™”๋ฉด์— update๋ฅผ ํ•ด์ค˜์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ตœ์‹  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ์œ„ํ•ด ์ ์ ˆํ•œ ๊ธฐ์ˆ  ๊ฒ€ํ† ์ค‘์— SSE ์ถ”์ฒœ์„ ๋ฐ›์•„ ๋ถ„์„ ํ›„ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ์„ ์ •๋ฆฌ SSE๋ž€, Server Sent Event ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„ ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์›น ๊ธฐ์ˆ  ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)๋กœ ์‹ค์‹œ๊ฐ„ ์ด๋ฒคํŠธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์„œ๋ฒ„๋กœ์˜ ์—ฐ๊ฒฐ์„ ์—ด์–ด๋‘๊ณ  ์„œ๋ฒ„์—์„œ ์ด๋ฒคํŠธ๋ฅผ ํ‘ธ์‰ฌํ•˜๋Š” ๋ฐฉ์‹ ์„œ๋ฒ„๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฒคํŠธ์— ํ•„์š”ํ•œ Data๋ฅผ ํฌํ•จํ•˜์—ฌ Client์—๊ฒŒ ์ „๋‹ฌํ•œ๋‹ค. Client๋Š” ์ด๋ฒคํŠธ ์ˆ˜์‹  ํ›„ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ SSE ํŠน์ง• - ๋‹จ๋ฐฉํ–ฅ ํ†ต์‹  ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ๋กœ๋งŒ Data ์ „์†ก - ๊ธฐ๋ณธ HTTP ํ”„๋กœํ† ์ฝœ ์‚ฌ.. 2024. 4. 12.