--- id: P-REINFORCE-WIKI-777ED71E category: Unified confidence_score: 0.95 tags: ['event-stream-processing', 'event-driven-architecture', 'complex-event-processing', 'event-sourcing', 'apache-kafka', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Event stream processing]] ## ๐Ÿ“Œ Brief Summary ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ(Event stream processing)๋Š” ์ผ๋ฐ˜์ ์ธ ์ด๋ฒคํŠธ์™€ ์ฃผ์š” ์ด๋ฒคํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ณ , ์ด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆ˜์ง‘ํ•˜์—ฌ ์ŠคํŠธ๋ฆผ ํ”„๋กœ์„ธ์„œ์— ์—ฐ์†์ ์œผ๋กœ ๊ณต๊ธ‰ํ•˜๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋‹ค [1, 2]. ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์„ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ ๋‚ด์™ธ๋ถ€์˜ ์‹ค์‹œ๊ฐ„ ์ •๋ณด ํ๋ฆ„์„ ์ฃผ๋„ํ•˜๋ฉฐ, ๊ธฐ์—…์˜ ์ฆ‰๊ฐ์ ์ธ ์˜์‚ฌ ๊ฒฐ์ •์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค [1, 2]. ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์™€ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์š”๊ตฌ๋˜๋Š” IoT ์›Œํฌ๋กœ๋“œ ๋ฐ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ์‹œ์Šคํ…œ์— ๋งค์šฐ ์ ํ•ฉํ•œ ์ ‘๊ทผ๋ฒ•์ด๋‹ค [1]. ## ๐Ÿ“– Core Content - **๋‚ด๊ตฌ์„ฑ์„ ๊ฐ–์ถ˜ ์—ฐ์†์  ์ด๋ฒคํŠธ ๋กœ๊ทธ**: ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ํ™˜๊ฒฝ์—์„œ ์ด๋ฒคํŠธ๋Š” ํŒŒํ‹ฐ์…˜ ๋‚ด์— ์—„๊ฒฉํ•˜๊ฒŒ ์ •๋ ฌ๋˜๋ฉฐ ๋‚ด๊ตฌ์„ฑ์ด ์žˆ๋Š” ๋กœ๊ทธ(durable log) ํ˜•ํƒœ๋กœ ๊ธฐ๋ก๋œ๋‹ค [3]. ํ(Queue)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ฐฉ์‹์—์„œ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์†Œ๋น„๋œ ํ›„ ์‚ญ์ œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋งŒ, ์ŠคํŠธ๋ฆผ์—์„œ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋˜์–ด ์ „์ฒด ์ด๋ ฅ์ด ์œ ์ง€๋œ๋‹ค [4-6]. - **ํด๋ผ์ด์–ธํŠธ ์ฃผ๋„์  ์†Œ๋น„ ๋ฐ ์žฌ์‹คํ–‰(Replay) ๋Šฅ๋ ฅ**: ํด๋ผ์ด์–ธํŠธ๋Š” ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ์ŠคํŠธ๋ฆผ์„ ๋‹จ์ˆœํžˆ ๊ตฌ๋…(Subscribe)๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ŠคํŠธ๋ฆผ์˜ ์–ด๋А ์œ„์น˜์—์„œ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์Šค์Šค๋กœ ์ฝ๊ธฐ ์œ„์น˜(offset)๋ฅผ ์ง„ํ–‰์‹œํ‚จ๋‹ค [3]. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ๋Š” ์–ธ์ œ๋“ ์ง€ ์ŠคํŠธ๋ฆผ์— ํ•ฉ๋ฅ˜ํ•  ์ˆ˜ ์žˆ๊ณ , ๊ณผ๊ฑฐ์˜ ์ด๋ฒคํŠธ๋ฅผ ์žฌ์‹คํ–‰(Replay)ํ•  ์ˆ˜ ์žˆ๋‹ค [3]. - **๋…๋ฆฝ์ ์ด๊ณ  ์œ ์—ฐํ•œ ๋น„๋™๊ธฐ ๋‹ค์ค‘ ์ฒ˜๋ฆฌ**: ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ(์˜ˆ: Azure IoT Hub, Event Hubs, Apache Kafka ๋“ฑ)์€ ํŒŒ์ดํ”„๋ผ์ธ ์—ญํ• ์„ ํ•˜์—ฌ ๋‹ค์ˆ˜์˜ ํ•˜์œ„ ์ŠคํŠธ๋ฆผ ํ”„๋กœ์„ธ์„œ๋กœ ์ด๋ฒคํŠธ๋ฅผ ๋ถ„๋ฐฐํ•œ๋‹ค [1]. ์ด๋ฒคํŠธ๊ฐ€ ์ŠคํŠธ๋ฆผ์— ๋ณด์กด๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(์†Œ๋น„์ž)๋Š” ๋‹ค๋ฅธ ํ•ธ๋“ค๋Ÿฌ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์ฃผ๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋“ฑ ๊ฐ์ž์˜ ์†๋„์™€ ๋ชฉ์ ์— ๋งž์ถฐ ์ด๋ฒคํŠธ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค [5, 6]. - **๋Œ€๊ทœ๋ชจ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์›Œํฌ๋กœ๋“œ ๋Œ€์‘**: ์ฃผ๋ฌธ ๊ฒฐ์ œ, RFID ์ „์†ก, ์„ผ์„œ ๋ฐ์ดํ„ฐ ๋“ฑ ๋ฐฉ๋Œ€ํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋Š” ์ผ์ƒ์  ์ด๋ฒคํŠธ๋“ค์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ•„ํ„ฐ๋ง ๋ฐ ๋ณ€ํ™˜ํ•˜์—ฌ ์˜๋ฏธ ์žˆ๋Š” ์ •๋ณด๋กœ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค [1, 2]. ํŠนํžˆ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ ์žฆ์€ IoT ํ™˜๊ฒฝ์ด๋‚˜ ๋ง‰๋Œ€ํ•œ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋Š” ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ์—์„œ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค [6]. ## โš–๏ธ Trade-offs & Caveats - **์‹œ์Šคํ…œ ๋ณต์›์„ฑ ๋ฐ ๊ฐ์‚ฌ ์šฉ์ด์„ฑ(์žฅ์ )**: ์ด๋ฒคํŠธ๋ฅผ ์žฌ์‹คํ–‰(Replay)ํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์„ฑ ๋•๋ถ„์— ์‹œ์Šคํ…œ ์žฅ์•  ํ›„์˜ ๋ณต๊ตฌ, ๋Šฆ๊ฒŒ ์ฐธ์—ฌํ•œ ์†Œ๋น„์ž์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”, ๋ฒ„๊ทธ ์ˆ˜์ • ํ›„์˜ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ ์žฌ์ฒ˜๋ฆฌ๊ฐ€ ๋งค์šฐ ์šฉ์ดํ•˜๋‹ค [3]. ๋˜ํ•œ ๊ณผ๊ฑฐ์˜ ์ด๋ฒคํŠธ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์‚ฌ์šฉ์ž ํ–‰๋™ ํŒจํ„ด์„ ํŒŒ์•…ํ•˜๊ฑฐ๋‚˜, ์ด๋ฒคํŠธ ์†Œ์‹ฑ(Event Sourcing)์„ ํ†ตํ•ด ๊ณผ๊ฑฐ์˜ ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ์™„๋ฒฝํžˆ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค [6]. - **์ตœ์ข… ์ผ๊ด€์„ฑ(Eventual Consistency) ๊ฐ์ˆ˜**: ์ด๋ฒคํŠธ ์ƒ์‚ฐ์ž์™€ ์†Œ๋น„์ž๊ฐ€ ๋น„๋™๊ธฐ ์ฑ„๋„์„ ํ†ตํ•ด ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋˜์–ด ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒคํŠธ๊ฐ€ ๊ฒŒ์‹œ๋œ ์งํ›„ ๋ชจ๋“  ์„œ๋น„์Šค์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ‰์‹œ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ ์ง€์—ฐ(Time lag)์ด ๋ฐœ์ƒํ•œ๋‹ค [7]. ์‹œ์Šคํ…œ์˜ ํŠน์ • ๋ถ€๋ถ„๋“ค์ด ํ˜„์žฌ ์ƒํƒœ์— ๋Œ€ํ•ด ์ผ์‹œ์ ์œผ๋กœ ๋™์˜ํ•˜์ง€ ์•Š๋Š” ์ฐฝ(window)์„ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค [7]. - **์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฐ ์ˆœ์„œ ๋ณด์žฅ์˜ ๋ณต์žก์„ฑ**: ๋ณต์ˆ˜์˜ ์†Œ๋น„์ž ์ธ์Šคํ„ด์Šค๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋  ๋•Œ, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ์ˆœ์„œ๋ฅผ ๋ณด์žฅํ•˜๊ฑฐ๋‚˜ ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ(exactly-once) ์ฒ˜๋ฆฌ๋˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊นŒ๋‹ค๋กœ์šฐ๋ฉฐ ๋ฉฑ๋“ฑ์„ฑ(Idempotent)์„ ๊ณ ๋ คํ•œ ์„ค๊ณ„๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค [7]. ๋˜ํ•œ ๋น„๋™๊ธฐ ํ†ต์‹  ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ์žฌ์ „์†ก(Resubmit)ํ•  ๊ฒฝ์šฐ ์ด๋ฒคํŠธ๊ฐ€ ์ˆœ์„œ๋ฅผ ๋ฒ—์–ด๋‚˜ ์ฒ˜๋ฆฌ๋  ์œ„ํ—˜์ด ์žˆ๋‹ค [7]. - **์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋””๋ฒ„๊น… ์˜ค๋ฒ„ํ—ค๋“œ**: ๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ์ง€์†์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์„ค๊ณ„๋Š” ์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง์—๋Š” ์œ ๋ฆฌํ•˜์ง€๋งŒ, ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ์š”๊ตฌ๋Ÿ‰๊ณผ ๋น„์šฉ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค [6]. ๋˜ํ•œ ์—ฌ๋Ÿฌ ๋น„๋™๊ธฐ ๊ตฌ์„ฑ ์š”์†Œ์— ๊ฑธ์ณ ํ๋ฅด๋Š” ๋‹จ์ผ ๋น„์ฆˆ๋‹ˆ์Šค ํŠธ๋žœ์žญ์…˜์„ ๋””๋ฒ„๊น…ํ•˜๊ณ  ์ถ”์ ํ•˜๋ ค๋ฉด Correlation ID์™€ ๊ฐ™์€ ์ •๊ตํ•œ ๊ด€์ธก์„ฑ(Observability) ๋„๊ตฌ๊ฐ€ ๋„์ž…๋˜์–ด์•ผ ํ•œ๋‹ค [8]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - `[[Event-Driven Architecture]]` - ์—ฐ๊ฒฐ ์ด์œ : ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋Š” ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์‚ฐํ•˜๊ณ  ์†Œ๋น„ํ•˜๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜์˜ ํ•ต์‹ฌ ์‹คํ–‰ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค [2, 3]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ด๋ฒคํŠธ ๋ธŒ๋กœ์ปค์™€ ๋ฉ”๋””์—์ดํ„ฐ ํ† ํด๋กœ์ง€์˜ ์ฐจ์ด, ์ƒ์„ฑ์ž์™€ ์†Œ๋น„์ž์˜ ๋А์Šจํ•œ ๊ฒฐํ•ฉ ์›๋ฆฌ [9]. - `[[Complex event processing]]` - ์—ฐ๊ฒฐ ์ด์œ : ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ์œ ์ž…๋˜๋Š” ๋‹จ์ˆœ ์ด๋ฒคํŠธ๋‚˜ ์ผ์ƒ์  ์ด๋ฒคํŠธ๋“ค์„ ์‹œ๊ฐ„์ , ์ธ๊ณผ์  ํŒจํ„ด์œผ๋กœ ํ‰๊ฐ€ํ•˜์—ฌ ๋ณตํ•ฉ์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ์˜๋ฏธ๋‚˜ ์ด์ƒ ์ง•ํ›„๋ฅผ ๋„์ถœํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค [10]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋‹จ์ˆœํ•œ ์ŠคํŠธ๋ฆผ์„ ๋„˜์–ด, ๋‹ค์ˆ˜์˜ ์ด๋ฒคํŠธ๋ฅผ ์ƒ๊ด€ ๋ถ„์„(Correlation)ํ•˜๊ณ  ํŒจํ„ด์„ ๋งค์นญํ•˜๋Š” ์ •๊ตํ•œ ๋ฐ์ดํ„ฐ ํ•ด์„ ๊ธฐ๋ฒ• [10]. - `[[Event Sourcing]]` - ์—ฐ๊ฒฐ ์ด์œ : ์ŠคํŠธ๋ฆผ์— ์ด๋ฒคํŠธ๋ฅผ ์˜๊ตฌ ์ €์žฅํ•˜๋Š” ํŠน์„ฑ์€, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ ๋ณ€๊ฒฝ์„ ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๋กœ๋งŒ ๊ธฐ๋กํ•˜์—ฌ ์˜์†์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ์ด๋ฒคํŠธ ์†Œ์‹ฑ ํŒจํ„ด ๊ตฌํ˜„์˜ ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค [6]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๊ฐ์‚ฌ ์ถ”์ (Audit trails) ์‹œ์Šคํ…œ ๋ฐ ๋ฐ์ดํ„ฐ์˜ ๊ณผ๊ฑฐ ์ƒํƒœ ์žฌ๊ตฌ์„ฑ ์›๋ฆฌ [6, 11]. #### [๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] - `[[Apache Kafka]]` - ์—ฐ๊ฒฐ ์ด์œ : ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ™˜๊ฒฝ์—์„œ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํŒŒ์ดํ”„๋ผ์ธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๋‹ค์ˆ˜์˜ ์ŠคํŠธ๋ฆผ ํ”„๋กœ์„ธ์„œ์— ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ํ”Œ๋žซํผ์ด๋‹ค [1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํŒŒํ‹ฐ์…˜, ๋กœ๊ทธ ๋ณด์กด, ๊ทธ๋ฆฌ๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜คํ”„์…‹์„ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์˜ ์‹ค์ œ ๋ฌผ๋ฆฌ์  ๊ตฌํ˜„ ๊ตฌ์กฐ [1, 3]. - `[[Azure IoT Hub]]` - ์—ฐ๊ฒฐ ์ด์œ : ์„ผ์„œ ๋“ฑ ํ•˜๋“œ์›จ์–ด ๊ธฐ๊ธฐ(IoT)์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์ŠคํŠธ๋ฆผ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์ด๋‹ค [1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์™€ ์†๋„๋ฅผ ์š”๊ตฌํ•˜๋Š” IoT ์›Œํฌ๋กœ๋“œ์—์„œ์˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• [1, 12]. ### Deeper Research Questions - ๋ณต์ˆ˜์˜ ์ŠคํŠธ๋ฆผ ํ”„๋กœ์„ธ์„œ๊ฐ€ ๊ฐœ๋ณ„์ ์ธ ์†๋„๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ฝ์–ด๊ฐˆ ๋•Œ, ๋ฐ์ดํ„ฐ ๋กœ๊ทธ์˜ ํฌ๊ธฐ์™€ ์Šคํ† ๋ฆฌ์ง€ ๋น„์šฉ์„ ํšจ์œจ์ ์œผ๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์กด(Retention) ์ •์ฑ…์€ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? - ๋น„๋™๊ธฐ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ™˜๊ฒฝ์—์„œ ํŠธ๋žœ์žญ์…˜ ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ํšŒ๋ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜(Compensating Transaction)์€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”๊ฐ€? - ํ(Queue) ๊ธฐ๋ฐ˜์˜ ์ฒ˜๋ฆฌ(์ •ํ™•ํžˆ ํ•œ ๋ฒˆ ์ฒ˜๋ฆฌ)์™€ ์ŠคํŠธ๋ฆผ(Stream) ๊ธฐ๋ฐ˜์˜ ์ฒ˜๋ฆฌ(๋‹ค์ˆ˜ ์†Œ๋น„์ž์˜ ๋‹ค์ค‘ ํŽ˜์ด์Šค ์ฒ˜๋ฆฌ)๋ฅผ ๋‹จ์ผ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๊ฒฐํ•ฉํ•  ๋•Œ์˜ ์„ค๊ณ„ ๊ธฐ์ค€์€ ๋ฌด์—‡์ธ๊ฐ€? - ๊ณ ๋„๋กœ ๋ถ„์‚ฐ๋œ ์ŠคํŠธ๋ฆผ ํ™˜๊ฒฝ์—์„œ ์Šคํ‚ค๋งˆ ๋ฒ„์ „์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ, ๊ธฐ์กด ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ ˆ๊ฑฐ์‹œ ์†Œ๋น„์ž์™€ ์‹ ๊ทœ ์†Œ๋น„์ž๊ฐ€ ์ถฉ๋Œ ์—†์ด ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฒคํŠธ ์ง„ํ™”(Event Evolution) ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? - ๋ณตํ•ฉ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ(CEP)์™€ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ(ESP)๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๊ธˆ์œต ์‚ฌ๊ธฐ ํƒ์ง€์™€ ๊ฐ™์€ ์˜ˆ์ธก ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ๋•Œ์˜ ์ง€์—ฐ ์‹œ๊ฐ„(Latency) ์ตœ์†Œํ™” ๊ธฐ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** Apache Kafka, Azure Event Hubs์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ IoT ์„ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ŠคํŠธ๋ฆผ ํ”„๋กœ์„ธ์„œ๋กœ ์ „๋‹ฌํ•œ๋‹ค [1]. - **System Design:** ์†Œ๋น„์ž๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋”๋ผ๋„ ํ์—์„œ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” '๋‚ด๊ตฌ์„ฑ ์žˆ๋Š” ๋กœ๊ทธ(durable log)' ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•˜์—ฌ, ํŠน์ • ์ปดํฌ๋„ŒํŠธ ์žฅ์•  ์‹œ ๋กœ๊ทธ๋ฅผ ๋‹ค์‹œ ์ฝ์–ด ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•œ๋‹ค [3]. - **Operation / Maintenance:** ๋ฒ„๊ทธ๊ฐ€ ๋ฐฐํฌ๋œ ํ›„ ๋ฐœ๊ฒฌ๋˜์—ˆ์„ ๋•Œ, ์ˆ˜์ •๋œ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•œ ๋‹ค์Œ ์ŠคํŠธ๋ฆผ์˜ ์ฝ๊ธฐ ํฌ์ธํ„ฐ๋ฅผ ๊ณผ๊ฑฐ๋กœ ๋˜๋Œ๋ ค(Replay) ์˜ํ–ฅ์„ ๋ฐ›์€ ์ด๋ฒคํŠธ๋“ค์„ ์žฌ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์šด์˜ ์‚ฌ๊ณ ์— ๋Œ€์ฒ˜ํ•œ๋‹ค [3]. - **Learning Path:** ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด -> ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง• ๋ฐ Event-Driven Architecture ํ†ต์‹  ํŒจํ„ด ํ•™์Šต -> Queue ๋ชจ๋ธ๊ณผ Stream ๋ชจ๋ธ ๋น„๊ต -> Event Sourcing ๋ฐ ์ŠคํŠธ๋ฆผ ๋ถ„์„(CEP) ์‹ฌํ™” ์ ์šฉ [2, 6, 10, 13]. - **My Project Relevance:** ๊ณ ์šฉ๋Ÿ‰์˜ ์‹ค์‹œ๊ฐ„ ํด๋ฆญ์ŠคํŠธ๋ฆผ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ด์•ผ ํ•˜๋Š” e-์ปค๋จธ์Šค ํ”Œ๋žซํผ, ๋˜๋Š” ์ง€์†์ ์œผ๋กœ ์œ„์น˜ ๋ฐ ์ƒํƒœ ์ •๋ณด๋ฅผ ์Ÿ์•„๋‚ด๋Š” ์šด์†ก ์‹œ์Šคํ…œ(์˜ˆ: ์ฐจ๋Ÿ‰ ํ˜ธ์ถœ ์•ฑ)์˜ ๋ฐฑ์—”๋“œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•์— ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค [1]. ### Adjacent Topics - `[[Microservices Architecture]]` - ํ™•์žฅ ๋ฐฉํ–ฅ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ๊ตฌํ˜„ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ํŒจ์‹ฑ(Async Message Passing)์„ ์‚ฌ์šฉํ•˜๋Š” ์ „๋žต์œผ๋กœ์˜ ํ™•์žฅ [7, 14]. - `[[CQRS (Command Query Responsibility Segregation)]]` - ํ™•์žฅ ๋ฐฉํ–ฅ: ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ(์ด๋ฒคํŠธ ์†Œ์‹ฑ)์„ ์ปค๋งจ๋“œ ๋ชจ๋ธ๋กœ ์ €์žฅํ•œ ๋’ค, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ทฐ(Read Model)๋กœ ํˆฌ์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ƒํƒœ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ตฌ์กฐ์  ํŒจํ„ด ์—ฐ๊ตฌ [15, 16]. --- *Last updated: 2026-05-02*