--- id: P-REINFORCE-WIKI-161C11A9 category: Unified confidence_score: 0.95 tags: ['event-driven-architecture-pattern', 'broker-topology', 'mediator-topology', 'microservices-architecture-pattern', 'event-sourcing', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Event-Driven Architecture Pattern]] ## πŸ“Œ Brief μ •μš” 이벀트 기반 μ•„ν‚€ν…μ²˜(Event-Driven Architecture, EDA)λŠ” μ‹œμŠ€ν…œ ꡬ성 μš”μ†Œλ“€μ΄ 직접적인 동기적 μš”μ²­μ΄ μ•„λ‹Œ '이벀트(μƒνƒœμ˜ μ€‘λŒ€ν•œ λ³€ν™”)'λ₯Ό λΉ„λ™κΈ°μ μœΌλ‘œ 생성, 감지, μ†ŒλΉ„ν•˜λ©° μƒν˜Έμž‘μš©ν•˜λŠ” λΆ„μ‚°ν˜• μ†Œν”„νŠΈμ›¨μ–΄ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ΄λ‹€ [1-3]. 이 방식은 ꡬ성 μš”μ†Œ κ°„μ˜ κ°•ν•œ 결합을 제거(Loose coupling)ν•˜μ—¬ μ‹œμŠ€ν…œμ˜ μ²˜λ¦¬λŸ‰κ³Ό μ‹€μ‹œκ°„ 응닡성을 κ·ΉλŒ€ν™”ν•˜λ©°, 각 μ»΄ν¬λ„ŒνŠΈλ₯Ό λ…λ¦½μ μœΌλ‘œ ν™•μž₯ν•  수 있게 ν•œλ‹€ [4, 5]. 주둜 μ‹€μ‹œκ°„ 데이터 처리, IoT μ„Όμ„œ 슀트림, λŒ€κ·œλͺ¨ μ „μžμƒκ±°λž˜ μ›Œν¬ν”Œλ‘œμš° λ“± 높은 ν™•μž₯μ„±κ³Ό 민첩성이 μš”κ΅¬λ˜λŠ” ν™˜κ²½μ—μ„œ μ‚¬μš©λœλ‹€ [6-9]. ## πŸ“– Core Content * **핡심 ꡬ성 μš”μ†Œ (Core Components):** EDAλŠ” 주둜 이벀트λ₯Ό μˆ˜μ§‘ 및 μ „μ†‘ν•˜λŠ” **이벀트 μƒμ„±μž(Event Producers)**, μƒμ„±μžμ™€ μ†ŒλΉ„μžλ₯Ό μ—°κ²°ν•˜λŠ” **이벀트 채널(Event Channels/Brokers)**, μ „λ‹¬λœ 이벀트λ₯Ό μ²˜λ¦¬ν•˜λŠ” **이벀트 처리기(Event Processors)**, 그리고 μ΅œμ’…μ μœΌλ‘œ μ΄λ²€νŠΈμ— λ°˜μ‘ν•˜λŠ” **이벀트 μ†ŒλΉ„μž(Event Consumers/Sinks)**둜 κ΅¬μ„±λœλ‹€ [6, 10, 11]. μƒμ„±μžλŠ” 이벀트λ₯Ό μ‚¬μš©ν•˜λŠ” μ†ŒλΉ„μžκ°€ λˆ„κ΅¬μΈμ§€, ν˜Ήμ€ μ‘΄μž¬ν•˜λŠ”μ§€μ‘°μ°¨ μ•Œ ν•„μš”κ°€ μ—†μœΌλ©° 였직 이벀트 μ±„λ„λ‘œ 정보λ₯Ό μ „λ‹¬ν•œλ‹€ [11]. * **μ£Όμš” ν† ν΄λ‘œμ§€ (Topologies):** 이벀트 흐름을 μ œμ–΄ν•˜λŠ” 방식에 따라 크게 두 κ°€μ§€ ν† ν΄λ‘œμ§€λ‘œ λ‚˜λ‰œλ‹€. * **브둜컀 ν† ν΄λ‘œμ§€ (Broker Topology):** 쀑앙 μ‘°μ •μž 없이 μ»΄ν¬λ„ŒνŠΈλ“€μ΄ 이벀트λ₯Ό μ£Όκ³ λ°›μœΌλ©° 자율적으둜 흐름을 μ œμ–΄ν•˜λŠ” μ•ˆλ¬΄(Choreography) 방식이닀 [12, 13]. 이벀트 채널(λ©”μ‹œμ§€ 큐 λ“±)을 톡해 이벀트λ₯Ό λΈŒλ‘œλ“œμΊμŠ€νŠΈν•˜λ©°, μ‹œμŠ€ν…œμ˜ 응닡성, ν™•μž₯μ„±, μž₯μ•  ν—ˆμš©μ„±μ΄ λ†’μ§€λ§Œ 전체적인 μ›Œν¬ν”Œλ‘œμš°λ₯Ό νŒŒμ•…ν•˜κ±°λ‚˜ 였λ₯˜λ₯Ό λ³΅κ΅¬ν•˜κΈ° μ–΄λ ΅λ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€ [12-14]. * **메디에이터 ν† ν΄λ‘œμ§€ (Mediator Topology):** μ€‘μ•™μ˜ 이벀트 메디에이터(Event Mediator)κ°€ μ›Œν¬ν”Œλ‘œμš°λ₯Ό κ΄€λ¦¬ν•˜κ³  각 단계에 λ§žλŠ” λͺ…령을 μ „λ‹¬ν•˜λŠ” μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜(Orchestration) 방식이닀 [12, 13]. λ³΅μž‘ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 μ œμ–΄μ™€ λΆ„μ‚° μ‹œμŠ€ν…œμ˜ μ—λŸ¬ μ²˜λ¦¬μ— μœ λ¦¬ν•˜μ§€λ§Œ, 메디에이터 μžμ²΄κ°€ μ„±λŠ₯ 병λͺ© ν˜„μƒμ„ μœ λ°œν•˜κ±°λ‚˜ 단일 μž₯애점이 될 μœ„ν—˜μ΄ μžˆλ‹€ [12, 13, 15]. * **이벀트 처리 λ©”μ»€λ‹ˆμ¦˜ (Event Processing & Messaging):** λ‹¨μˆœν•œ μƒνƒœ 변화에 즉각 λ°˜μ‘ν•˜λŠ” 'λ‹¨μˆœ 이벀트 처리', 지속적인 데이터 μŠ€νŠΈλ¦Όμ—μ„œ 정보λ₯Ό ν•„ν„°λ§ν•˜λŠ” '이벀트 슀트림 처리(Event Stream Processing)', λ‹€μ–‘ν•œ 이벀트 νŒ¨ν„΄μ„ λΆ„μ„ν•˜μ—¬ λΉ„μ¦ˆλ‹ˆμŠ€ 이상을 νƒμ§€ν•˜λŠ” '볡합 이벀트 처리(Complex Event Processing, CEP)' μŠ€νƒ€μΌλ‘œ μ‘μš©λœλ‹€ [8, 16-18]. 톡신 방식은 이벀트λ₯Ό μΌνšŒμ„±μœΌλ‘œ μ „λ‹¬ν•˜λŠ” κ²Œμ‹œ-ꡬ독(Publish-subscribe) λͺ¨λΈκ³Ό 이벀트λ₯Ό 영ꡬ적인 둜그둜 μœ μ§€ν•˜μ—¬ 과거의 이벀트λ₯Ό μž¬μƒ(Replay)ν•  수 μžˆλŠ” 이벀트 슀트리밍(Event streaming) λͺ¨λΈλ‘œ κ΅¬ν˜„λ  수 μžˆλ‹€ [19]. ## βš–οΈ Trade-offs & Caveats * **μ΅œμ’… 일관성 (Eventual Consistency):** μƒμ‚°μžμ™€ μ†ŒλΉ„μžκ°€ λΉ„λ™κΈ°μ μœΌλ‘œ μ™„μ „νžˆ λΆ„λ¦¬λ˜μ–΄ 있기 λ•Œλ¬Έμ— μ΄λ²€νŠΈκ°€ μ‹œμŠ€ν…œ μ „λ°˜μ— λ°˜μ˜λ˜λŠ” 데 μ‹œκ°„μ°¨(μ§€μ—°)κ°€ λ°œμƒν•  수 μžˆλ‹€ [20, 21]. λ”°λΌμ„œ μ‹œμŠ€ν…œμ˜ λ‹€μ–‘ν•œ 뢀뢄이 μΌμ‹œμ μœΌλ‘œ λ‹€λ₯Έ μƒνƒœλ₯Ό 보일 수 있으며, 은행 νŠΈλžœμž­μ…˜κ³Ό 같이 κ°•λ ₯ν•˜κ³  즉각적인 데이터 일관성(Strong Consistency)이 μš”κ΅¬λ˜λŠ” μ‹œμŠ€ν…œμ—λŠ” μ ν•©ν•˜μ§€ μ•Šμ„ 수 μžˆλ‹€ [7, 21, 22]. * **였λ₯˜ 처리 및 데이터 손싀 μœ„ν—˜ (Error Handling & Data Loss):** 비동기 톡신 ν™˜κ²½μ—μ„œ νŠΉμ • μ»΄ν¬λ„ŒνŠΈκ°€ μ‹€νŒ¨ν•  경우 μ›Œν¬ν”Œλ‘œμš° 전체가 μ€‘λ‹¨λ˜κ±°λ‚˜ 이벀트 데이터가 μœ μ‹€λ  μœ„ν—˜μ΄ μžˆλ‹€ [21]. 이λ₯Ό 막기 μœ„ν•΄ 배달 μ‹€νŒ¨ 큐(Dead-Letter Queue)둜 이벀트λ₯Ό μ „λ‹¬ν•˜λŠ” μ „λ‹΄ μ—λŸ¬ ν•Έλ“€λŸ¬ ν”„λ‘œμ„Έμ„œλ‚˜ 보상 νŠΈλžœμž­μ…˜(Compensating Transaction) 등을 κ΅¬ν˜„ν•΄μ•Ό ν•˜μ§€λ§Œ, 이둜 인해 μ•„ν‚€ν…μ²˜μ˜ ꡬ쑰적 λ³΅μž‘μ„±μ΄ 크게 μ¦κ°€ν•œλ‹€ [13, 21]. * **μˆœμ„œ 보μž₯ 및 λ©±λ“±μ„± 문제 (Message Ordering and Idempotency):** ν™•μž₯성을 μœ„ν•΄ μ†ŒλΉ„μžμ˜ 닀쀑 μΈμŠ€ν„΄μŠ€λ₯Ό μ‹€ν–‰ν•  경우, μ΄λ²€νŠΈκ°€ μˆœμ„œλŒ€λ‘œ μ²˜λ¦¬λ˜μ§€ μ•Šκ±°λ‚˜ 쀑볡 처리될 μœ„ν—˜μ΄ μžˆλ‹€ [21]. λ”°λΌμ„œ μ†ŒλΉ„μžλŠ” μ΄λ²€νŠΈκ°€ μ—¬λŸ¬ 번 μ „μ†‘λ˜λ”λΌλ„ μ•ˆμ „ν•˜κ²Œ μ²˜λ¦¬ν•  수 μžˆλŠ” λ©±λ“±μ„±(Idempotent) λ‘œμ§μ„ κ°–μΆ”μ–΄μ•Ό ν•œλ‹€ [21]. * **κ΄€μΈ‘ κ°€λŠ₯μ„± 및 λ””λ²„κΉ…μ˜ 어렀움 (Observability and Debugging):** 쀑앙 ν†΅μ œ 없이 독립적인 μ»΄ν¬λ„ŒνŠΈλ“€μ΄ λΉ„λ™κΈ°λ‘œ λ™μž‘ν•˜λ―€λ‘œ μ—λŸ¬ λ°œμƒ μ‹œ 원인을 μΆ”μ ν•˜κΈ° μ–΄λ ΅λ‹€ [20, 23]. 단일 호좜 μŠ€νƒμ΄ μ—†μœΌλ―€λ‘œ 상관 ID(Correlation ID)λ₯Ό μ΄λ²€νŠΈμ— ν¬ν•¨μ‹œμΌœ λΆ„μ‚° νŠΈλ ˆμ΄μ‹±μ„ κ΅¬ν˜„ν•˜λŠ” λ“± λͺ¨λ‹ˆν„°λ§ 체계λ₯Ό μ΄ˆκΈ°μ— ꡬ좕해야 ν•˜λŠ” 뢀담이 μžˆλ‹€ [23]. * **μ˜€λ²„μ—”μ§€λ‹ˆμ–΄λ§ μœ„ν—˜ (Over-engineering Risk):** ꡬ쑰가 μ§€λ‚˜μΉ˜κ²Œ μ„ΈλΆ„ν™”λ˜μ–΄ κ³Όλ„ν•œ 이벀트λ₯Ό μƒμ„±ν•˜λ©΄ μ‹œμŠ€ν…œμ΄ 압도될 수 있으며, λ‹¨μˆœν•œ CRUD μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ μš©ν•  경우 λ©”μ‹œμ§€ 브둜컀 인프라 ꡬ좕 및 μœ μ§€ λΉ„μš©μ΄ 이점보닀 컀질 수 μžˆλ‹€ [20, 23]. ## πŸ”— Knowledge Connections ### Related Concepts #### [μ•„ν‚€ν…μ²˜ ν† ν΄λ‘œμ§€/νŒ¨ν„΄ (Architecture Topologies/Patterns)] - [[Broker Topology]] - μ—°κ²° 이유: Event-Driven Architecture λ‚΄μ—μ„œ 쀑앙 μ œμ–΄ 없이 μ‹œμŠ€ν…œμ˜ ν™•μž₯μ„±κ³Ό 비결합성을 κ·ΉλŒ€ν™”ν•˜κΈ° μœ„ν•΄ μ„ νƒν•˜λŠ” 핡심 λ‚΄λΆ€ ν† ν΄λ‘œμ§€μ΄λ‹€ [12, 14]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ κ°„μ˜ 자율적인 μ•ˆλ¬΄(Choreography) 방식 톡신 및 비동기 μ›Œν¬ν”Œλ‘œμš° ꡬ성 방법 [12, 13]. - [[Mediator Topology]] - μ—°κ²° 이유: λ³΅μž‘ν•œ 닀단계 이벀트 μ²˜λ¦¬κ°€ ν•„μš”ν•  λ•Œ μ€‘μ•™μ—μ„œ 이벀트 흐름을 ν†΅μ œν•˜κ³  μ‘°μœ¨ν•˜λŠ” EDA의 또 λ‹€λ₯Έ ν•„μˆ˜ ν† ν΄λ‘œμ§€μ΄λ‹€ [12, 24]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜(Orchestration) λ°©μ‹μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 μ œμ–΄, μ—λŸ¬ 핸듀링 및 μƒνƒœ 관리 λ©”μ»€λ‹ˆμ¦˜ [12, 13, 15]. - [[Microservices Architecture Pattern]] - μ—°κ²° 이유: EDAλŠ” λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ μ•„ν‚€ν…μ²˜ ν™˜κ²½μ—μ„œ λ…λ¦½λœ μ„œλΉ„μŠ€λ“€μ΄ 데이터λ₯Ό μ£Όκ³ λ°›κ³  μƒνƒœλ₯Ό λ™κΈ°ν™”ν•˜κΈ° μœ„ν•œ κ°€μž₯ 효과적인 톡신 λ©”μ»€λ‹ˆμ¦˜μœΌλ‘œ 빈번히 κ²°ν•©λ˜μ–΄ μ‚¬μš©λœλ‹€ [25-27]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: κ°œλ³„ μ„œλΉ„μŠ€κ°€ 자체 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μœ μ§€(Database per Service)ν•˜λ©΄μ„œ λΆ„μ‚° νŠΈλžœμž­μ…˜μ„ λΉ„λ™κΈ°λ‘œ μ²˜λ¦¬ν•˜λŠ” 방법 [26, 27]. #### [데이터 및 λ©”μ‹œμ§€ 처리 기법 (Data & Message Processing Techniques)] - [[Event Sourcing]] - μ—°κ²° 이유: λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœλ₯Ό 직접 μˆ˜μ •ν•˜λŠ” λŒ€μ‹ , μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” λͺ¨λ“  '이벀트'λ₯Ό μΆ”κ°€ μ „μš©(Append-only) 둜그둜 영ꡬ μ €μž₯ν•˜λŠ” EDA와 κΈ΄λ°€ν•˜κ²Œ μ—°κ΄€λœ νŒ¨ν„΄μ΄λ‹€ [28, 29]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 과거의 이벀트λ₯Ό μž¬μƒ(Replay)ν•˜μ—¬ μ‹œμŠ€ν…œ μƒνƒœλ₯Ό μž¬κ΅¬μΆ•ν•˜λŠ” 원리와 μ™„λ²½ν•œ 감사 좔적(Audit Trail) κ΅¬ν˜„ 방법 [29, 30]. - [[CQRS (Command Query Responsibility Segregation)]] - μ—°κ²° 이유: μ‹œμŠ€ν…œμ˜ 읽기(Query)와 μ“°κΈ°(Command) λͺ¨λΈμ„ λΆ„λ¦¬ν•˜λŠ” νŒ¨ν„΄μœΌλ‘œ, EDA 및 Event Sourcingκ³Ό μ‹œλ„ˆμ§€λ₯Ό 이루어 κ³ λΆ€ν•˜ μ‹œμŠ€ν…œμ˜ μ„±λŠ₯을 μ΅œμ ν™”ν•˜λŠ” 데 자주 μ‚¬μš©λœλ‹€ [26, 31, 32]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: 비동기 이벀트λ₯Ό 톡해 λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€ ν™˜κ²½μ—μ„œ 읽기 μ „μš© λ³΅μ œλ³Έμ„ μ§€μ†μ μœΌλ‘œ μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•˜λŠ” 기법 [26]. ### Deeper Research Questions - Event-Driven Architectureκ°€ μˆ˜λ°˜ν•˜λŠ” 'μ΅œμ’… 일관성(Eventual Consistency)'을 μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄, 은행 κ±°λž˜μ™€ 같은 λΉ„μ¦ˆλ‹ˆμŠ€ λ„λ©”μΈμ—μ„œλŠ” μ–΄λ–€ 보완적 μ„€κ³„λ‚˜ 보상 νŠΈλžœμž­μ…˜(Saga νŒ¨ν„΄ λ“±)을 ꡬ체적으둜 ν™œμš©ν•˜λŠ”κ°€? - λŒ€κ·œλͺ¨ νŠΈλž˜ν”½μ„ μ²˜λ¦¬ν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œ 브둜컀 ν† ν΄λ‘œμ§€μ™€ 메디에이터 ν† ν΄λ‘œμ§€λ₯Ό ν˜Όν•©(Hybrid) μ μš©ν•  λ•Œ, 이벀트λ₯Ό λΌμš°νŒ…ν•˜κ³  경계λ₯Ό μ„€μ •ν•˜λŠ” μ•„ν‚€ν…μ²˜μ  νŒλ‹¨ 기쀀은 무엇인가? - 이벀트 브둜컀둜 ν™œμš©λ˜λŠ” 큐(Queue) 방식과 슀트림(Stream) 방식 간에 데이터 μ˜μ†μ„±κ³Ό 재처리(Replay) κ΄€μ μ—μ„œμ˜ 기술적 κ΅¬ν˜„ 차이와 μ„±λŠ₯ νŠΈλ ˆμ΄λ“œμ˜€ν”„λŠ” μ–΄λ– ν•œκ°€? - 이벀트 μ†ŒλΉ„μžκ°€ 비동기 λ©”μ‹œμ§€λ₯Ό μ²˜λ¦¬ν•˜λŠ” κ³Όμ •μ—μ„œ μž₯μ• κ°€ λ°œμƒν–ˆμ„ λ•Œ 데이터 μœ μ‹€μ„ 막고 μ—λŸ¬λ₯Ό κ²©λ¦¬ν•˜λŠ” Dead-Letter Queue(DLQ) λ©”μ»€λ‹ˆμ¦˜μ€ μ–΄λ–»κ²Œ κ΅¬μ„±λ˜λŠ”κ°€? - μ™„μ „ν•˜κ²Œ 결합이 ν•΄μ œλœ(Decoupled) μ»΄ν¬λ„ŒνŠΈ ν™˜κ²½μ—μ„œ 단일 λΉ„μ¦ˆλ‹ˆμŠ€ νŠΈλžœμž­μ…˜μ˜ 전체 생λͺ…μ£ΌκΈ°λ₯Ό κ΄€μΈ‘(Observability)ν•˜κ³  λ””λ²„κΉ…ν•˜κΈ° μœ„ν•΄ 상관 ID(Correlation ID)와 λΆ„μ‚° νŠΈλ ˆμ΄μ‹±μ€ μ–΄λ–»κ²Œ μ‹œμŠ€ν…œμ— ν†΅ν•©λ˜μ–΄μ•Ό ν•˜λŠ”κ°€? ### Practical Application Contexts - **Implementation:** Apache Kafka, RabbitMQ λ“±μ˜ λ©”μ‹œμ§€ 브둜컀λ₯Ό ν™œμš©ν•˜μ—¬ 이벀트 채널을 κ΅¬μΆ•ν•˜κ±°λ‚˜, Azure Event Grid, Event Hubs, AWS Lambda와 같은 ν΄λΌμš°λ“œ 제곡 슀트리밍 및 μ„œλ²„λ¦¬μŠ€ μ„œλΉ„μŠ€λ₯Ό 톡해 이벀트 μƒμ„±μžμ™€ μ†ŒλΉ„μžλ₯Ό μ—°κ²°ν•œλ‹€ [6, 8, 19]. - **System Design:** μ „μžμƒκ±°λž˜ μ‹œμŠ€ν…œ(μ£Όλ¬Έ->결제->λ°°μ†‘μ˜ 비동기 νŒŒμ΄ν”„λΌμΈ), 주식 거래 ν”Œλž«νΌ, 슀마트 ν™ˆ(IoT μ„Όμ„œ 데이터 처리), 라이브 슀트리밍 뢄석 λ“± κ³ ν™•μž₯μ„±κ³Ό μ‹€μ‹œκ°„ μ²˜λ¦¬κ°€ μš”κ΅¬λ˜λŠ” 도메인 섀계에 μ΅œμš°μ„ μ μœΌλ‘œ κ³ λ €λœλ‹€ [6, 7, 9]. - **Operation / Maintenance:** κ°œλ³„ 이벀트 μ†ŒλΉ„μžμ˜ μ‹€νŒ¨κ°€ μ‹œμŠ€ν…œ 전체에 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šλ„λ‘ μ„œν‚· 브레이컀 νŒ¨ν„΄κ³Ό DLQλ₯Ό λ°°μΉ˜ν•˜μ—¬ 볡원λ ₯을 높이고, λΆ„μ‚° νŠΈλ ˆμ΄μ‹± 도ꡬλ₯Ό 톡해 였λ₯˜ 흐름을 μ‹€μ‹œκ°„μœΌλ‘œ 쀑앙 λͺ¨λ‹ˆν„°λ§ν•΄μ•Ό ν•œλ‹€ [21, 23]. - **Learning Path:** 전톡적인 ν΄λΌμ΄μ–ΈνŠΈ-μ„œλ²„μ˜ 동기식(REST API λ“±) μš”μ²­-응닡 νŒ¨ν„΄μ˜ ν•œκ³„λ₯Ό ν•™μŠ΅ν•œ ν›„, λ©”μ‹œμ§€ 큐와 이벀트 슀트림의 λ™μž‘ 원리, μ΅œμ’… 일관성 κ°œλ…, λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ κ°„μ˜ Saga νŒ¨ν„΄ 적용 순으둜 μ•„ν‚€ν…μ²˜ 이해λ₯Ό 고도화할 수 μžˆλ‹€ [9, 21, 26]. - **My Project Relevance:** μ„œλΉ„μŠ€ κ°„ κ°•κ²°ν•©μœΌλ‘œ 인해 배포 μ§€μ—°μ΄λ‚˜ μ‹œμŠ€ν…œ μ„±λŠ₯ μ €ν•˜κ°€ λ°œμƒν•˜λŠ” λ ˆκ±°μ‹œ μ‹œμŠ€ν…œμ„ ν˜„λŒ€ν™”ν•  λ•Œ, μ›Œν¬ν”Œλ‘œμš°λ₯Ό λΆ„λ¦¬ν•˜μ—¬ 비동기 처리둜 μ „ν™˜ν•˜κΈ° μœ„ν•œ μ•„ν‚€ν…μ²˜ 기반으둜 ν™œμš©ν•  수 μžˆλ‹€ [9]. ### Adjacent Topics - [[Serverless Architecture Pattern]] - ν™•μž₯ λ°©ν–₯: μ„œλ²„λ₯Ό κ΄€λ¦¬ν•˜μ§€ μ•Šκ³  νŠΈλž˜ν”½ 변동에 따라 이벀트(트리거)에 λ°˜μ‘ν•΄ 짧은 ν•¨μˆ˜(Functions)λ₯Ό μ‹€ν–‰ν•˜λŠ” ν΄λΌμš°λ“œ λ„€μ΄ν‹°λΈŒ 섀계 λ°©μ‹μœΌλ‘œ, EDAλ₯Ό 인프라 λ ˆλ²¨μ—μ„œ μ–΄λ–»κ²Œ κ·ΉλŒ€ν™”ν•  수 μžˆλŠ”μ§€ 탐ꡬ [33, 34]. - [[Space-Based Architecture Pattern]] - ν™•μž₯ λ°©ν–₯: λŒ€μš©λŸ‰ λ™μ‹œμ„± 처리 μ‹œ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ˜ 병λͺ©μ„ ν”Όν•˜κΈ° μœ„ν•΄ 인메λͺ¨λ¦¬ 데이터 κ·Έλ¦¬λ“œλ₯Ό ν™œμš©ν•˜λŠ” νŒ¨ν„΄μœΌλ‘œ, EDA와 ν•¨κ»˜ 병렬 처리 및 λŒ€κ·œλͺ¨ λΆ€ν•˜ 뢄산을 λ‹¬μ„±ν•˜λŠ” 방법을 연ꡬ [35-37]. --- *Last updated: 2026-05-02*