--- id: P-REINFORCE-WIKI-5CC9CCB0 category: "10_Wiki/๐Ÿ’ก Topics/02_Architecture_Principles" confidence_score: 0.95 tags: ['broker-architecture-pattern', 'event-driven-architecture', 'mediator-topology', 'message-broker', 'microservices-architecture', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Broker Architecture Pattern]] ## ๐Ÿ“Œ Brief ์‹œ Summary Broker Architecture Pattern(๋ธŒ๋กœ์ปค ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด)์€ ๋ถ„์‚ฐ๋œ ์‹œ์Šคํ…œ์—์„œ ์ค‘์•™ ์กฐ์ •์ž(Orchestrator) ์—†์ด ์ด๋ฒคํŠธ๋ฅผ ์ „์ฒด ์‹œ์Šคํ…œ์— ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜์—ฌ ๋น„๋™๊ธฐ ํ†ต์‹ ๊ณผ ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋””์ปคํ”Œ๋ง์„ ์ง€์›ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด๋‹ค [1]. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฉ”์‹œ์ง€๋‚˜ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ค‘์•™ ๋ธŒ๋กœ์ปค๊ฐ€ ์ด๋ฅผ ์ˆ˜์‹ ํ•˜๊ธฐ๋กœ ๊ตฌ๋…(Subscribe)๋œ ์ ์ ˆํ•œ ์„œ๋ฒ„(์ด๋ฒคํŠธ ์†Œ๋น„์ž)๋กœ ๋ถ„๋ฐฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค [2, 3]. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ์˜ ๋…๋ฆฝ์„ฑ์„ ๋ณด์žฅํ•˜๋ฉฐ ๋†’์€ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ, ๋‚ด๊ฒฐํ•จ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค [1, 4]. ## ๐Ÿ“– Core Content * **์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ:** Broker ํŒจํ„ด์€ ์ฃผ๋กœ ์ด๋ฒคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ(Client), ๋ฉ”์‹œ์ง€๋ฅผ ๋ถ„๋ฐฐํ•˜๋Š” ๋ธŒ๋กœ์ปค(Broker), ๊ทธ๋ฆฌ๊ณ  ๋ธŒ๋กœ์ปค์— ๊ตฌ๋…ํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์„œ๋ฒ„(Server)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค [2, 5]. ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA)์˜ ๋งฅ๋ฝ์—์„œ๋Š” ๊ฐœ์‹œ ์ด๋ฒคํŠธ(Initiating Event), ์ด๋ฒคํŠธ ๋ธŒ๋กœ์ปค(Event Broker), ์ด๋ฒคํŠธ ์ฑ„๋„(Event Channel), ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ(Event Handler), ์ฒ˜๋ฆฌ ์ด๋ฒคํŠธ(Processing Event)์˜ 5๊ฐ€์ง€ ์š”์†Œ๋กœ ๋ชจ๋ธ๋ง ๋˜๊ธฐ๋„ ํ•œ๋‹ค [6]. * **์ค‘์•™ ์ง‘์ค‘์‹ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ๋ถ€์žฌ(Choreography):** ๋ฉ”๋””์—์ดํ„ฐ(Mediator) ํ† ํด๋กœ์ง€์™€ ๋‹ฌ๋ฆฌ, ์ „์ฒด ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ต์ œํ•˜๊ฑฐ๋‚˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์ค‘์•™์˜ ์กฐ์ •์ž๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค [1, 7, 8]. ๋ธŒ๋กœ์ปค๋Š” ๋‹จ์ง€ ์ด๋ฒคํŠธ๋ฅผ ์ ์ ˆํ•œ ์ฑ„๋„๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ด๋ฒคํŠธ์™€ ๊ทธ์— ๋Œ€ํ•œ ๋ฐ˜์‘์ด ์ปดํฌ๋„ŒํŠธ๋“ค ์‚ฌ์ด์—์„œ ์ง์ ‘ ์ฒด์ธ์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋˜๋Š” ์•ˆ๋ฌด(Choreography) ๋ฐฉ์‹์„ ์ทจํ•œ๋‹ค [1, 8, 9]. * **์‹œ์Šคํ…œ ๋ถ„๋ฆฌ ๋ฐ ์œ ์—ฐํ•œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ:** ๊ฐ ์‹œ์Šคํ…œ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ์„œ๋กœ์˜ ์กด์žฌ๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ณ ๋„์˜ ๋””์ปคํ”Œ๋ง(Decoupling) ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค [10]. ์ด๋ฒคํŠธ ๋ธŒ๋กœ์ปค๋Š” ๋‹ค์ค‘ ์ฑ„๋„ ํ†ต์‹ ์„ ์ง€์›ํ•˜์—ฌ ๊ฐ ์ฑ„๋„ ์‹๋ณ„์ž๋ฅผ ํ†ตํ•ด ์ด๋ฒคํŠธ๋ฅผ ๋ผ์šฐํŒ…ํ•œ๋‹ค [7]. ์ด๋กœ ์ธํ•ด ์ƒˆ๋กœ์šด ์†Œ๋น„์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค [1, 11]. ## โš–๏ธ Trade-offs & Caveats * **๊ฐ•์  (Pros):** * **ํ™•์žฅ์„ฑ ๋ฐ ๋‚ด๊ฒฐํ•จ์„ฑ:** ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋งค์šฐ ๋‚ฎ์•„, ๋ถ€ํ•˜ ์ฆ๊ฐ€ ์‹œ ์ƒˆ๋กœ์šด ์„œ๋ฒ„๋‚˜ ์ด๋ฒคํŠธ ์†Œ๋น„์ž๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜ํ‰์ ์œผ๋กœ ํ™•์žฅ(Horizontal scaling)ํ•  ์ˆ˜ ์žˆ๋‹ค [1, 4, 11]. ์ปดํฌ๋„ŒํŠธ ์žฅ์•  ์‹œ์—๋„ ๋ธŒ๋กœ์ปค๊ฐ€ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ์–ด ๋‚ด๊ฒฐํ•จ์„ฑ(Fault tolerance)์ด ์šฐ์ˆ˜ํ•˜๋‹ค [4, 12]. * **๋ฏผ์ฒฉ์„ฑ:** ๊ธฐ์กด ํ”„๋กœ๋“€์„œ๋‚˜ ์†Œ๋น„์ž๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ์ƒˆ๋กœ์šด ์†Œ๋น„์ž๋ฅผ ์‹œ์Šคํ…œ์— ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค [13]. * **๋‹จ์  ๋ฐ ์ œ์•ฝ ์‚ฌํ•ญ (Cons/Caveats):** * **์—๋Ÿฌ ์ฒ˜๋ฆฌ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€:** ์ค‘์•™ ์กฐ์ •์ž๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์„ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์žฌ์‹คํ–‰ํ•˜๋Š” ๋‚ด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๋ถ€์กฑํ•˜๋‹ค [1]. ์ „์ฒด์ ์ธ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํŒŒ์•…ํ•˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ๊ฐ€ ๋งค์šฐ ์–ด๋ ค์šฐ๋ฉฐ, ์‹œ์Šคํ…œ ์ „๋ฐ˜์˜ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜(Inconsistency)๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค [1, 8]. * **๋‹จ์ผ ์žฅ์• ์ (SPOF) ์œ„ํ—˜:** ์ค‘์•™ ๋ธŒ๋กœ์ปค ์ž์ฒด๊ฐ€ ์ ์ ˆํ•œ ํŽ˜์ผ์˜ค๋ฒ„(Failover) ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์—†์ด ์„ค๊ณ„๋  ๊ฒฝ์šฐ, ๋ธŒ๋กœ์ปค์˜ ์žฅ์• ๊ฐ€ ์‹œ์Šคํ…œ ์ „์ฒด์˜ ๋งˆ๋น„๋กœ ์ด์–ด์ง€๋Š” ๋‹จ์ผ ์žฅ์• ์ ์ด ๋  ์œ„ํ—˜์ด ์žˆ๋‹ค [12, 14]. * **ํ†ต์‹  ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ณต์žก์„ฑ:** ์„œ๋น„์Šค ์„ค๋ช…์˜ ํ‘œ์ค€ํ™”๊ฐ€ ์š”๊ตฌ๋˜๋ฉฐ [15], ๋ฉ”์‹œ์ง€ ๋ผ์šฐํŒ… ๊ณผ์ •์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ ์ง€์—ฐ(Latency)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค [14, 15]. ๋˜ํ•œ ๋น„์„ ํ˜•์ ์ธ ์ด๋ฒคํŠธ ์ „ํŒŒ๋กœ ์ธํ•ด ๋””๋ฒ„๊น…์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค [16]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] * [[Event-Driven Architecture]] * ์—ฐ๊ฒฐ ์ด์œ : ๋ธŒ๋กœ์ปค ํŒจํ„ด์€ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜(EDA)๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ํ† ํด๋กœ์ง€ ์ค‘ ํ•˜๋‚˜์ด๋‹ค [9, 17]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ธŒ๋กœ์ปค๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์–ด๋–ป๊ฒŒ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ์ „๋ฐ˜์ ์ธ ์›๋ฆฌ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. * [[Mediator Topology]] * ์—ฐ๊ฒฐ ์ด์œ : ๋ธŒ๋กœ์ปค ํŒจํ„ด๊ณผ ๋Œ€๋น„๋˜๋Š” EDA์˜ ๋˜ ๋‹ค๋ฅธ ํ† ํด๋กœ์ง€๋กœ, ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ค‘์•™์—์„œ ๊ฐ•๋ ฅํ•˜๊ฒŒ ํ†ต์ œํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค [1, 8, 9]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ธŒ๋กœ์ปค ํŒจํ„ด์˜ ๊ทน๋‹จ์  ๋””์ปคํ”Œ๋ง(์•ˆ๋ฌด ๋ฐฉ์‹)์ด ๊ฐ–๋Š” ์žฅ๋‹จ์ ์„ ๋ฉ”๋””์—์ดํ„ฐ์˜ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•˜์—ฌ ์•„ํ‚คํ…์ฒ˜์  ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(์ƒํƒœ ์ œ์–ด vs ํ™•์žฅ์„ฑ)๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. #### [๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] * [[Message Broker]] * ์—ฐ๊ฒฐ ์ด์œ : ๋ธŒ๋กœ์ปค ํŒจํ„ด์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฏธ๋“ค์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์ธํ”„๋ผ์ด๋‹ค. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: Apache Kafka, RabbitMQ, ActiveMQ์™€ ๊ฐ™์€ ๊ตฌ์ฒด์ ์ธ ํˆด๋“ค์ด ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์–ด๋–ป๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ์ค‘๊ณ„ํ•˜๊ณ  ์žฅ์• ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š”์ง€ ๊ธฐ์ˆ ์ ์ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค [12, 15, 18]. ### Deeper Research Questions * ์ค‘์•™ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์—†๋Š” ๋ธŒ๋กœ์ปค ํ† ํด๋กœ์ง€์—์„œ ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜ ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ, ๋ฐ์ดํ„ฐ์˜ ์ตœ์ข… ์ผ๊ด€์„ฑ(Eventual Consistency)์„ ๋ณต๊ตฌํ•˜๊ณ  ๋ณด์ƒ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ์˜ ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? * ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ํ™˜๊ฒฝ์—์„œ ์ค‘์•™ ๋ธŒ๋กœ์ปค๊ฐ€ ๋‹จ์ผ ์žฅ์• ์ (SPOF) ๋ฐ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ(Bottleneck)์ด ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋กœ์ปค ํŽ˜๋”๋ ˆ์ด์…˜(Federation) ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? * ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์—์„œ ๋ธŒ๋กœ์ปค ํŒจํ„ด์„ ์ ์šฉํ•  ๋•Œ, ๋™๊ธฐ์‹ ์š”์ฒญ-์‘๋‹ต(Request-Response) ํŒจํ„ด๊ณผ ๋น„๋™๊ธฐ์‹ ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆฌ๋ฐ ํŒจํ„ด์„ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ํ˜ผํ•ฉ(Hybrid)ํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ธ๊ฐ€? * ๋ธŒ๋กœ์ปค๋ฅผ ํ†ตํ•ด ํŒŒ์ƒ๋˜๋Š” ์ˆ˜๋งŽ์€ ์ด๋ฒคํŠธ๋“ค์˜ ๋น„์„ ํ˜•์  ํ๋ฆ„ ์†์—์„œ, ์ „์ฒด ๋น„์ฆˆ๋‹ˆ์Šค ํŠธ๋žœ์žญ์…˜์„ ์ถ”์ (Tracing)ํ•˜๊ณ  ๊ฐ€์‹œ์„ฑ(Observability)์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•œ ์ƒ๊ด€ ID(Correlation ID) ๋ฐ ๋ถ„์‚ฐ ํŠธ๋ ˆ์ด์‹ฑ ๊ธฐ๋ฒ•์€ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜์–ด์•ผ ํ•˜๋Š”๊ฐ€? * ์ด๋ฒคํŠธ ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ(Schema Evolution)๋  ๋•Œ, ๊ธฐ์กด ์ด๋ฒคํŠธ ์†Œ๋น„์ž๋“ค์ด ๋ธŒ๋ ˆ์ดํฌ๋˜์ง€ ์•Š๋„๋ก ์ด์ „ ๋ฒ„์ „๊ณผ ์ƒˆ ๋ฒ„์ „์„ ๋ธŒ๋กœ์ปค์—์„œ ์–ด๋–ป๊ฒŒ ํ˜ธํ™˜ ๋ฐ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š”๊ฐ€? ### Practical Application Contexts * **Implementation:** Apache Kafka, RabbitMQ, JBoss Messaging, Apache ActiveMQ ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ์†”๋ฃจ์…˜์„ ๋„์ž…ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ๋ผ์šฐํŒ… ๋ฐ ํ์ž‰ ๊ณ„์ธต์„ ๊ตฌํ˜„ํ•œ๋‹ค [12, 15]. * **System Design:** ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์—์„œ ์„œ๋น„์Šค ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๊ณ„์ธต์œผ๋กœ ์ ์šฉํ•˜๊ฑฐ๋‚˜, ์ด๊ธฐ์ข… ์‹œ์Šคํ…œ(Heterogeneous systems) ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์—ฐ๋™ํ•˜๋Š” ์ธ๊ทธ๋ ˆ์Šค/์—๊ทธ๋ ˆ์Šค ๋ธŒ๋ฆฟ์ง€ ๊ตฌ์กฐ๋กœ ์„ค๊ณ„ํ•œ๋‹ค [3, 12]. * **Operation / Maintenance:** ๋ธŒ๋กœ์ปค ์ปดํฌ๋„ŒํŠธ์˜ ๋ฉ”์‹œ์ง€ ๋ˆ„์ ๋Ÿ‰, ์‘๋‹ต ์ง€์—ฐ ์‹œ๊ฐ„, ๊ฐ€์šฉ์„ฑ์„ ์ƒ์‹œ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•˜๋ฉฐ, ์žฅ์•  ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด Dead-Letter Queue(DLQ)๋ฅผ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜ ๋ณ„๋„์˜ ์—๋Ÿฌ ์ฒ˜๋ฆฌ ํ”„๋กœ์„ธ์„œ(Error-handler processor)๋ฅผ ์šด์˜ํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๋งˆ๋ จํ•ด์•ผ ํ•œ๋‹ค [13]. * **Learning Path:** ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ -> ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง• ๋ฐ ํ(Queue)/์ŠคํŠธ๋ฆผ(Stream) ๋ชจ๋ธ์˜ ์ดํ•ด -> Message Broker(Kafka ๋“ฑ)์˜ ์‹ค๋ฌด ์ ์šฉ -> ๋ธŒ๋กœ์ปค์™€ ๋ฉ”๋””์—์ดํ„ฐ ํ† ํด๋กœ์ง€์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„ ๋ถ„์„ ์ˆœ์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค. * **My Project Relevance:** ์ „์ž์ƒ๊ฑฐ๋ž˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ์—์„œ ์ƒˆ ์ฃผ๋ฌธ, ์žฌ๊ณ  ์—…๋ฐ์ดํŠธ, ๊ฒฐ์ œ ์ฒ˜๋ฆฌ, ์•Œ๋ฆผ ๋ฐœ์†ก ๋“ฑ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด ๋™์‹œ์— ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐ˜์‘ํ•ด์•ผ ํ•˜๋Š” ๋น„๋™๊ธฐ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ํ•ต์‹ฌ ํŒจํ„ด์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค [3]. ### Adjacent Topics * [[Microservices Architecture]] * ํ™•์žฅ ๋ฐฉํ–ฅ: ๋ธŒ๋กœ์ปค ํŒจํ„ด์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐ„์˜ ๋А์Šจํ•œ ๊ฒฐํ•ฉ(Loose Coupling)๊ณผ ๋…๋ฆฝ์  ํ™•์žฅ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ†ต์‹  ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋นˆ๋ฒˆํžˆ ์ฑ„ํƒ๋˜๋ฏ€๋กœ, MSA์˜ ์ „๋ฐ˜์ ์ธ ์„ค๊ณ„ ์›์น™๊ณผ ์„œ๋น„์Šค ๋ถ„ํ•  ์ „๋žต์œผ๋กœ ํ•™์Šต์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. * [[Saga Pattern]] * ํ™•์žฅ ๋ฐฉํ–ฅ: ๋ธŒ๋กœ์ปค๋ฅผ ํ™œ์šฉํ•œ ์•ˆ๋ฌด(Choreography) ๊ธฐ๋ฐ˜์˜ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ ์ผ๋ จ์˜ ๋กœ์ปฌ ํŠธ๋žœ์žญ์…˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ์‹คํŒจ ์‹œ ๋ณด์ƒ(Compensating) ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๊ณ ๊ธ‰ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ํŒจํ„ด์œผ๋กœ ๋ฐœ์ „์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. --- *Last updated: 2026-05-02*