--- id: P-REINFORCE-WIKI-4268620D category: "10_Wiki/๐Ÿ’ก Topics/02_Architecture_Principles" confidence_score: 0.95 tags: ['publish-subscribe-model', 'event-driven-architecture', 'event-streaming', 'competing-consumers-pattern', 'azure-event-grid', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Publish-Subscribe Model]] ## ๐Ÿ“Œ Brief Summary Publish-Subscribe(๋ฐœํ–‰-๊ตฌ๋…) ๋ชจ๋ธ์€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(Event-Driven Architecture)์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋น„๋™๊ธฐ ํ†ต์‹  ๋ฐ ๋ฉ”์‹œ์ง• ํŒจํ„ด์ด๋‹ค [1]. ์ด ๋ชจ๋ธ์—์„œ๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐœํ–‰์ž(Producer)์™€ ์ด๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ตฌ๋…์ž(Consumer)๊ฐ€ ์„œ๋กœ ์™„์ „ํžˆ ๋ถ„๋ฆฌ(Decoupling)๋˜์–ด ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค [2]. ๋ฉ”์‹œ์ง• ์ธํ”„๋ผ๊ฐ€ ๊ตฌ๋… ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๋ฉฐ, ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœํ–‰๋˜๋ฉด ๋“ฑ๋ก๋œ ๋ชจ๋“  ๊ตฌ๋…์ž์—๊ฒŒ ํ•ด๋‹น ์ด๋ฒคํŠธ๊ฐ€ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๋˜์–ด ์ „๋‹ฌ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค [1]. ## ๐Ÿ“– Core Content * **์ƒ์‚ฐ์ž์™€ ์†Œ๋น„์ž์˜ ์™„์ „ํ•œ ๋ถ„๋ฆฌ:** Publish-Subscribe ๋ชจ๋ธ์—์„œ ์ƒ์‚ฐ์ž๋Š” ์–ด๋–ค ์†Œ๋น„์ž๊ฐ€ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š”์ง€ ์•Œ ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ์†Œ๋น„์ž๋“ค ์—ญ์‹œ ์„œ๋กœ ๋ถ„๋ฆฌ๋œ ์ƒํƒœ๋กœ ์กด์žฌํ•œ๋‹ค [2]. ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ ์š”์†Œ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๊ทน๋„๋กœ ๋‚ฎ์ถ”์–ด ๋…๋ฆฝ์ ์ธ ํ™•์žฅ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค [3]. * **๊ตฌ๋… ๊ธฐ๋ฐ˜์˜ ์ด๋ฒคํŠธ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…:** ํ†ต์‹ ์„ ์ค‘๊ฐœํ•˜๋Š” ๋ฉ”์‹œ์ง• ์ธํ”„๋ผ๋Š” ๊ตฌ๋…(Subscription) ํ˜„ํ™ฉ์„ ์ถ”์ ํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค [1]. ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœํ–‰๋˜๋ฉด, ์‹œ์Šคํ…œ์€ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ๋Š” ๋ชจ๋“  ์†Œ๋น„์ž์—๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ๋ณต์ œํ•˜์—ฌ ์ „๋‹ฌํ•˜๋ฏ€๋กœ ๋ชจ๋“  ์†Œ๋น„์ž๋Š” ๋™์ผํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ์ž ์ˆ˜์‹ ํ•˜๊ฒŒ ๋œ๋‹ค [1, 2]. * **์ด๋ฒคํŠธ์˜ ํœ˜๋ฐœ์„ฑ(์ผ์‹œ์„ฑ):** ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ(Event Streaming) ๋ชจ๋ธ๊ณผ ๋‹ฌ๋ฆฌ, Publish-Subscribe ํ™˜๊ฒฝ์—์„œ ์ˆ˜์‹ ๋œ ์ด๋ฒคํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์˜๊ตฌ์ ์ธ ๋กœ๊ทธ(Durable log)์— ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค [1]. ์ด ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์ƒˆ๋กœ์šด ๊ตฌ๋…์ž๊ฐ€ ์‹œ์Šคํ…œ์— ์ถ”๊ฐ€๋˜๋”๋ผ๋„ ๊ณผ๊ฑฐ์— ๋ฐœํ–‰๋œ ์ด๋ฒคํŠธ๋Š” ์ˆ˜์‹ ํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•  ์ˆ˜ ์—†๋‹ค [1]. * **์ธํ”„๋ผ ๋ฐ ๊ตฌํ˜„ ๊ธฐ์ˆ :** ์ด ํŒจํ„ด์€ ์ฃผ๋กœ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋‚˜ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์ด๋ฒคํŠธ ์ฑ„๋„์„ ํ†ตํ•ด ๊ตฌํ˜„๋œ๋‹ค [4]. ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์˜ ๊ฒฝ์šฐ Publish-Subscribe ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์œ„ํ•ด 'Azure Event Grid'์˜ ์‚ฌ์šฉ์„ ๊ณต์‹ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ [1], Google Cloud Platform์˜ 'Pub/Sub'์ด๋‚˜ RabbitMQ, Kafka์™€ ๊ฐ™์€ ๊ธฐ์ˆ ๋„ ๋„๋ฆฌ ํ™œ์šฉ๋œ๋‹ค [5, 6]. ## โš–๏ธ Trade-offs & Caveats * **๊ณผ๊ฑฐ ์ด๋ฒคํŠธ ์กฐํšŒ ๋ถˆ๊ฐ€ (No Event History):** ์ด๋ฒคํŠธ๊ฐ€ ์˜๊ตฌ ๋ณด๊ด€๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ด๋ฒคํŠธ๋ฅผ ๋‚˜์ค‘์— ์žฌ์ƒ(Replay)ํ•˜๊ฑฐ๋‚˜ ์ง€์—ฐ ํ•ฉ๋ฅ˜ํ•œ ์†Œ๋น„์ž(Late-arriving consumers)๊ฐ€ ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค์—๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค [1]. ์ด๋Ÿฌํ•œ ์š”๊ตฌ์‚ฌํ•ญ์ด ๊ฐ•๋ ฅํ•˜๋‹ค๋ฉด ์˜๊ตฌ ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ(Event Streaming) ๋ชจ๋ธ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค [1]. * **์ตœ์ข… ์ผ๊ด€์„ฑ(Eventual Consistency) ๋ฌธ์ œ:** ์ƒ์‚ฐ์ž์™€ ์†Œ๋น„์ž๊ฐ€ ๋น„๋™๊ธฐ ์ฑ„๋„์„ ํ†ตํ•ด ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฒคํŠธ ๋ฐœํ–‰ ์งํ›„์—๋Š” ์‹œ์Šคํ…œ ์ „๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฆ‰๊ฐ์ ์œผ๋กœ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์ตœ์ข… ์ผ๊ด€์„ฑ ์ƒํƒœ๊ฐ€ ํ•„์—ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค [3]. ์†Œ๋น„์ž๋Š” ๊ฐ์ž์˜ ์†๋„์— ๋งž์ถฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ, ์‹œ์Šคํ…œ์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์ด ์ผ์‹œ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ทฐ(View)๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ์„ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ์‹œ ๊ฐ์•ˆํ•ด์•ผ ํ•œ๋‹ค [3]. * **๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ์™€ ์—๋Ÿฌ ์ฒ˜๋ฆฌ์˜ ๋ณต์žก์„ฑ:** ๋‹จ์ผ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์— ๊ฑธ์ณ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ ์—๋Ÿฌ ์ถ”์ ๊ณผ ์‹œ์Šคํ…œ ๋ณต๊ตฌ๊ฐ€ ๋งค์šฐ ๊นŒ๋‹ค๋กญ๋‹ค [3]. ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ ์›๋ž˜ ์ƒํƒœ๋กœ ๋…ผ๋ฆฌ์  ๋ณต๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜(Compensating Transaction)์„ ์ ์šฉํ•ด์•ผ ํ•˜๋ฉฐ [3], ๋ˆ„๋ฝ๋œ ์ด๋ฒคํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ๋“œ ๋ ˆํ„ฐ ํ(Dead-Letter Queue, DLQ) ๋ฐ ์ „๋‹ด ์—๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ ์ฒ˜๋ฆฌ๊ฐ€ ์š”๊ตฌ๋œ๋‹ค [3]. * **์Šคํ‚ค๋งˆ ์ง„ํ™”(Schema Evolution) ์ถฉ๋Œ ๋ฆฌ์Šคํฌ:** ์ƒ์‚ฐ์ž์™€ ์†Œ๋น„์ž๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๋˜๋ฏ€๋กœ ์ด๋ฒคํŠธ ์Šคํ‚ค๋งˆ(๊ตฌ์กฐ)๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์ƒˆ๋กœ์šด ์Šคํ‚ค๋งˆ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ธฐ์กด ๊ตฌ๋…์ž ์‹œ์Šคํ…œ์—์„œ ์ž‘๋™ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค [7]. ์•„ํ‚คํ…์ฒ˜ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ์—„๊ฒฉํ•œ ์Šคํ‚ค๋งˆ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ „๋žต์„ ์ˆ˜๋ฆฝํ•ด์•ผ ํ•œ๋‹ค [7]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A (์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ )] - [[Event-Driven Architecture]] - ์—ฐ๊ฒฐ ์ด์œ : Publish-Subscribe ๋ชจ๋ธ์€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA) ํ†ต์‹ ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ํŒจ๋Ÿฌ๋‹ค์ž„(Pub/Sub, Event Streaming) ์ค‘ ํ•˜๋‚˜์ด๋‹ค [1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑ, ์ˆ˜์ง‘, ์ฒ˜๋ฆฌ, ์ „๋‹ฌํ•˜๋Š” ์ „์ฒด์ ์ธ ์‹œ์Šคํ…œ์˜ ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ํ๋ฆ„๊ณผ ๋ธŒ๋กœ์ปค(Broker)/๋ฉ”๋””์—์ดํ„ฐ(Mediator) ํ† ํด๋กœ์ง€์˜ ์„ค๊ณ„ ์›๋ฆฌ [4, 8]. #### [๊ด€๊ณ„ ์œ ํ˜• A (๋น„๊ต ๋ชจ๋ธ ๋ฐ ๋Œ€์•ˆ์  ์„ค๊ณ„)] - [[Event Streaming]] - ์—ฐ๊ฒฐ ์ด์œ : Publish-Subscribe ๋ชจ๋ธ๊ณผ ๋Œ€๋น„๋˜๋Š” ํŒจํ„ด์œผ๋กœ, ์ด๋ฒคํŠธ๋ฅผ ํŒŒํ‹ฐ์…˜ ๋‚ด์— ์—„๊ฒฉํ•œ ์ˆœ์„œ๋Œ€๋กœ ์˜๊ตฌ ๋ณด๊ด€ํ•˜๋Š” ํŠน์ง•์„ ์ง€๋‹Œ๋‹ค [1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ(Durability), ์ด๋ฒคํŠธ ์žฌ์ƒ(Replayability) ๋“ฑ ์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ฅธ ์ ์ ˆํ•œ ๋ฉ”์‹œ์ง• ์ธํ”„๋ผ์˜ ์„ ํƒ ๊ธฐ์ค€ [1]. - [[Competing Consumers Pattern]] - ์—ฐ๊ฒฐ ์ด์œ : ๋ชจ๋“  ์†Œ๋น„์ž๊ฐ€ ๋™์ผํ•œ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ๊ฐ ์ˆ˜์‹ ํ•˜๋Š” Pub/Sub ๋ชจ๋ธ๊ณผ ๋‹ฌ๋ฆฌ, ์—ฌ๋Ÿฌ ์†Œ๋น„์ž๊ฐ€ ํ•˜๋‚˜์˜ ํ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ ธ์™€ ์—๋Ÿฌ๊ฐ€ ์—†๋Š” ํ•œ '๋‹จ ํ•œ ๋ฒˆ๋งŒ' ๋ถ„ํ•  ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜๋Š” ํŒจํ„ด์ด๋‹ค [2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ์˜ ์ค‘๋ณต ๋ฐฉ์ง€ ๋ฐ ์ž‘์—… ๋ถ€ํ•˜ ๋ถ„์‚ฐ(Load Distribution)์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์ฒด์  ์„ค๊ณ„ ์ „๋žต [2]. #### [๊ด€๊ณ„ ์œ ํ˜• B (๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ)] - [[Azure Event Grid]] - ์—ฐ๊ฒฐ ์ด์œ : ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ Publish-Subscribe ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ๊ณต์‹์ ์œผ๋กœ ๊ถŒ์žฅ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๊ตฌํ˜„ ์„œ๋น„์Šค์ด๋‹ค [1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํผ๋ธ”๋ฆญ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ๋Œ€๊ทœ๋ชจ ๊ตฌ๋…์„ ํšจ์œจ์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ์ด๋ฒคํŠธ๋ฅผ ๋™์ ์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ์‹ค๋ฌด์ ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜ [1]. ### Deeper Research Questions - Publish-Subscribe ๋ชจ๋ธ์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ์˜๊ตฌ ์ €์žฅ๋˜์ง€ ์•Š๋Š” ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด Event Streaming๊ณผ ๊ฒฐํ•ฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? [1] - ๋น„๋™๊ธฐ ํ†ต์‹  ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ์ง€์—ฐ์— ๋”ฐ๋ฅธ ์ตœ์ข… ์ผ๊ด€์„ฑ(Eventual Consistency) ๋ฌธ์ œ๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ์›Œํฌํ”Œ๋กœ์šฐ ๊ด€์ ์—์„œ ์–ด๋–ป๊ฒŒ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? [3] - ๋Œ€๊ทœ๋ชจ Pub/Sub ์•„ํ‚คํ…์ฒ˜์—์„œ ๋ฉ”์‹œ์ง€์˜ ์ˆœ์„œ ๋ณด์žฅ(Processing events in order)์ด๋‚˜ ์ •ํ™•ํžˆ ํ•œ ๋ฒˆ ์ฒ˜๋ฆฌ(Exactly-once semantics)๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์–ด๋–ค ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋„์ž…ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? [3, 9] - ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณด์œ ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ Pub/Sub ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ๊ฐ€(Saga) ํŒจํ„ด์€ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์„ ์–ด๋–ป๊ฒŒ ์กฐ์œจํ•˜๋Š”๊ฐ€? [3, 10] - ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์žฅ์•  ์ถ”์ ์„ ์œ„ํ•ด ๋ชจ๋“  ์ด๋ฒคํŠธ์— ์ƒ๊ด€๊ด€๊ณ„ ID(Correlation ID)๋ฅผ ํฌํ•จ์‹œํ‚ค๋Š” ๊ด€์ธก์„ฑ(Observability) ํ™•๋ณด ์ „๋žต์€ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”๊ฐ€? [7] ### Practical Application Contexts - **Implementation:** Azure Event Grid, Google Cloud Pub/Sub, RabbitMQ, Kafka ๋“ฑ์˜ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ํ˜น์€ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋ฅผ ๋„์ž…ํ•˜์—ฌ ์ƒ์‚ฐ์ž์™€ ์†Œ๋น„์ž ๊ฐ„์˜ ๋น„๋™๊ธฐ ํ†ต์‹  ์ฑ„๋„์„ ๊ตฌํ˜„ํ•œ๋‹ค [1, 5, 6]. - **System Design:** ๋‹ค์ˆ˜์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋‚˜ ํ•˜์œ„ ์‹œ์Šคํ…œ์ด ๋™์ผํ•œ ๋‹จ์ผ ์ด๋ฒคํŠธ(์˜ˆ: ์ฃผ๋ฌธ ๋ฐœ์ƒ, ํšŒ์› ๊ฐ€์ž…)์— ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ชฉ์ (์•Œ๋ฆผ ์ „์†ก, ๋กœ๊ทธ ๋ถ„์„, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐฑ์‹  ๋“ฑ)์œผ๋กœ ๋ฐ˜์‘ํ•ด์•ผ ํ•  ๋•Œ ์‹œ์Šคํ…œ ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ์ ์šฉํ•œ๋‹ค [11]. - **Operation / Maintenance:** ๋น„๋™๊ธฐ ํ™˜๊ฒฝ์—์„œ ์‹คํŒจํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ „๋‹ด ์—๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ์™€ Dead-Letter Queue (DLQ)๋ฅผ ๊ตฌ์ถ• ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์œ ์‹ค๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋„๋ก ์šด์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜๋ฆฝํ•œ๋‹ค [3]. - **Learning Path:** ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA) ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด โ†’ ์ฃผ์š” ๋ฉ”์‹œ์ง• ํŒจํ„ด ๋น„๊ต(Pub/Sub vs Competing Consumers) โ†’ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„ ๋น„๋™๊ธฐ ํ†ต์‹  ๋ฐ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ•™์Šต [1-3]. - **My Project Relevance:** ๋ฃจํŠธ ์ฃผ์ œ์ธ '์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ์ง€์‹'์„ ์‹ค๋ฌด์— ์ ์šฉํ•  ๋•Œ, ํ™•์žฅ์„ฑ๊ณผ ์‹œ์Šคํ…œ ํƒ„๋ ฅ์„ฑ์ด ๊ทนํžˆ ์ค‘์š”ํ•œ ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒํƒœ๊ณ„์˜ ํ†ต์‹  ๊ธฐ๋ฐ˜์„ ์„ค๊ณ„ํ•˜๋Š” ํ•ต์‹ฌ ํŒจํ„ด์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค [3, 11]. ### Adjacent Topics - [[Microservices Architecture]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ตฌ์กฐ์—์„œ ๊ฐ ๋…๋ฆฝ๋œ ์„œ๋น„์Šค๊ฐ€ ์ž์‹ ๋งŒ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„, ๊ฒฐํ•ฉ๋„๋ฅผ ๋†’์ด์ง€ ์•Š๊ณ  ์‹œ์Šคํ…œ ์ „์ฒด์˜ ์ƒํƒœ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ํŒจ์‹ฑ(Pub/Sub)์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€ ์‹ฌํ™” ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋‹ค [10, 12]. --- *Last updated: 2026-05-02*