이벤트 기반 아키텍처(Event‑Driven Architecture | EDA)

아투·2025년 11월 10일
post-thumbnail

1. 이벤트 기반 아키텍처(Event-Driven Architecture | EDA)란?

1.1 배경 – 왜 이벤트 기반 아키텍처가 등장했는가

1.2 전통적 요청-응답 모델과의 차이

1.3 이벤트(Event), 이벤트 소스, 이벤트 핸들러 개념

1.4 EDA가 해결하려는 문제(확장성, 성능, 비동기 처리 등)

2. 이벤트 기반 아키텍처의 구성 요소

2.1 이벤트(Event)의 정의와 종류

2.2 이벤트 프로듀서(Producer)

2.3 이벤트 브로커(Message Broker: Kafka, RabbitMQ 등)

2.4 이벤트 컨슈머(Consumer)

2.5 이벤트 루프/디스패처(Event Loop & Dispatcher)의 역할

3. 이벤트 기반 아키텍처의 작동 원리

3.1 이벤트 생성 → 큐 전달 → 소비/처리 흐름

3.2 Pub/Sub 모델 vs Event Stream 모델

3.3 Push 방식 vs Pull 방식

3.4 이벤트 저장(Event Sourcing)과 상태 재구성

4. 이벤트 기반 아키텍처의 장점과 한계(트레이드오프)

4.1 장점 1: 고성능, 고확장성(Scalability)

4.2 장점 2: 서비스 간 결합도 감소(Loose Coupling)

4.3 한계(비용/제한): 시스템 복잡도 증가 및 운영 난이도 상승

5. 이벤트 기반 아키텍처의 패턴

5.1 Event Notification 패턴

5.2 Event-Carried State Transfer 패턴

5.3 Event Sourcing 패턴

5.4 CQRS(Command Query Responsibility Segregation)와의 관계

6. 이벤트 기반 아키텍처의 구현 기술

6.1 Kafka 기반 이벤트 스트리밍 구조

6.2 RabbitMQ 기반 메시징 구조

6.3 AWS SNS/SQS, Kinesis 등 클라우드 기반 메시징

6.4 Serverless와 EDA의 결합(Lambda 등)

7. 이벤트 기반 아키텍처의 실제 적용 사례

7.1 대규모 트래픽 서비스(넷플릭스, 우버, 카카오 등)

7.2 주문 처리/결제 시스템(이벤트 체인)

7.3 IoT·실시간 로그 처리·실시간 모니터링 시스템

8. 이벤트 기반 아키텍처 적용 시 고려사항

8.1 메시지 중복 처리(Idempotency)

8.2 메시지 유실/중복/순서 보장 문제

8.3 장애 처리 전략(재시도, DLQ)

8.4 데이터 일관성(Eventual Consistency)

8.5 운영 및 모니터링 포인트(Kafka Lag 등)

9. 이벤트 기반 아키텍처와 미래 기술

9.1 마이크로서비스(MSA)와 EDA의 시너지

9.2 분산 시스템과의 결합

9.3 Async-first 아키텍처의 확대

9.4 EDA와 AI 기반 자동화의 가능성

10. 결론 및 요약

10.1 핵심 개념 정리

10.2 EDA 도입을 결정하는 기준

10.3 비동기 시스템으로 전환할 때의 체크리스트

참고 문헌

0개의 댓글