이벤트 드리븐

이진일·2026년 4월 16일
post-thumbnail

이벤트 드리븐 아키텍처란?

  • 이벤트 드리븐 아키텍처는 시스템에서 발생하는 이벤트(상태 변화나 행동)를 기반으로 동작하는 소프트웨어 설계 스타일이다. 이벤트는 비동기적으로 처리되며, 서비스 간의 느슨한 결합을 통해 독립적으로 동작할 수 있게 한다.

주요 개념

  • 이벤트: 시스템 내에서 발생하는 상태 변화나 행동을 나타내는 메시지이다.
  • 이벤트 소스: 이벤트를 생성하여 이벤트 버스에 전달하는 역할을 한다.
  • 이벤트 핸들러: 이벤트를 수신하여 처리하는 역할을 한다.
  • 이벤트 버스: 이벤트 소스와 이벤트 핸들러 간의 메시지 전달을 중개한다.

이벤트 드리븐 아키텍처의 장점

  • 느슨한 결합

    • 서비스 간의 강한 종속성을 제거하여 독립적인 개발과 배포가 가능
    • 이벤트 기반 통신을 통해 서비스 간의 결합도를 낮춤
  • 확장성

    • 수평 확장이 용이하여 대규모 시스템에서 유용
    • 이벤트 프로듀서와 컨슈머를 독립적으로 확장 가능
  • 비동기 처리

    • 이벤트를 비동기적으로 처리하여 시스템의 응답성 향상
    • 요청과 응답을 비동기적으로 처리하여 성능 최적화

이벤트 드리븐 아키텍처의 단점

  • 복잡성 증가

    	- 이벤트 기반 통신으로 인해 시스템의 복잡성 증가 가능
    • 이벤트 흐름과 상태 관리를 체계적으로 설계 필요
  • 장애 전파

    	- 이벤트 실패 시 다른 서비스로 장애가 전파될 수 있음
    • 이벤트 재처리 및 장애 복구 메커니즘 구현 필요

이벤트 드리븐 예시(온라인 쇼핑몰)

  1. 이벤트 소스: 사용자가 온라인 쇼핑몰에서 주문을 한다.

    • 주문 서비스가 주문 생성 이벤트를 발생시킨다.
  2. 이벤트 버스: KafkaRabbitMQ와 같은 메시지 브로커가 주문 생성 이벤트를 전달한다.

  3. 이벤트 핸들러

    • 재고 서비스: 주문 생성 이벤트를 수신하여 재고를 확인하고 업데이트한다.
    • 배송 서비스: 주문 생성 이벤트를 수신하여 배송 준비를 시작한다.
    • 결제 서비스: 주문 생성 이벤트를 수신하여 결제 처리를 한다.

Spring Cloud Stream이란?

  • Spring Cloud Stream은 이벤트 드리븐 마이크로서비스를 구축하기 위한 프레임워크이다.
  • Kafka, RabbitMQ 등의 메시지 브로커와 통합하여 이벤트 스트리밍을 처리한다.
  • 프로듀서와 컨슈머 간의 통신을 추상화하여 간편하게 이벤트 기반 애플리케이션을 개발할 수 있다.

주요 특징# 이벤트 드리븐 아키텍처란?

  • 이벤트 드리븐 아키텍처는 시스템에서 발생하는 이벤트(상태 변화나 행동)를 기반으로 동작하는 소프트웨어 설계 스타일이다. 이벤트는 비동기적으로 처리되며, 서비스 간의 느슨한 결합을 통해 독립적으로 동작할 수 있게 한다.

주요 개념

  • 이벤트: 시스템 내에서 발생하는 상태 변화나 행동을 나타내는 메시지이다.
  • 이벤트 소스: 이벤트를 생성하여 이벤트 버스에 전달하는 역할을 한다.
  • 이벤트 핸들러: 이벤트를 수신하여 처리하는 역할을 한다.
  • 이벤트 버스: 이벤트 소스와 이벤트 핸들러 간의 메시지 전달을 중개한다.

이벤트 드리븐 아키텍처의 장점

  • 느슨한 결합

    • 서비스 간의 강한 종속성을 제거하여 독립적인 개발과 배포가 가능
    • 이벤트 기반 통신을 통해 서비스 간의 결합도를 낮춤
  • 확장성

    • 수평 확장이 용이하여 대규모 시스템에서 유용
    • 이벤트 프로듀서와 컨슈머를 독립적으로 확장 가능
  • 비동기 처리

    • 이벤트를 비동기적으로 처리하여 시스템의 응답성 향상
    • 요청과 응답을 비동기적으로 처리하여 성능 최적화

이벤트 드리븐 아키텍처의 단점

  • 복잡성 증가

    	- 이벤트 기반 통신으로 인해 시스템의 복잡성 증가 가능
    • 이벤트 흐름과 상태 관리를 체계적으로 설계 필요
  • 장애 전파

    	- 이벤트 실패 시 다른 서비스로 장애가 전파될 수 있음
    • 이벤트 재처리 및 장애 복구 메커니즘 구현 필요

이벤트 드리븐 예시(온라인 쇼핑몰)

  1. 이벤트 소스: 사용자가 온라인 쇼핑몰에서 주문을 한다.

    • 주문 서비스가 주문 생성 이벤트를 발생시킨다.
  2. 이벤트 버스: KafkaRabbitMQ와 같은 메시지 브로커가 주문 생성 이벤트를 전달한다.

  3. 이벤트 핸들러

    • 재고 서비스: 주문 생성 이벤트를 수신하여 재고를 확인하고 업데이트한다.
    • 배송 서비스: 주문 생성 이벤트를 수신하여 배송 준비를 시작한다.
    • 결제 서비스: 주문 생성 이벤트를 수신하여 결제 처리를 한다.

Spring Cloud Stream이란?

  • Spring Cloud Stream은 이벤트 드리븐 마이크로서비스를 구축하기 위한 프레임워크이다.
  • Kafka, RabbitMQ 등의 메시지 브로커와 통합하여 이벤트 스트리밍을 처리한다.
  • 프로듀서와 컨슈머 간의 통신을 추상화하여 간편하게 이벤트 기반 애플리케이션을 개발할 수 있다.

주요 특징

  • 바인더 추상화: 메시지 브로커와의 통합을 위한 추상화 레이어를 제공합니다.
  • 프로듀서/컨슈머 모델: 이벤트를 생성하고 처리하는 프로듀서와 컨슈머 모델을 지원합니다.
  • 유연한 설정: 다양한 설정 옵션을 통해 손쉽게 커스터마이징할 수 있습니다.
  • 바인더 추상화: 메시지 브로커와의 통합을 위한 추상화 레이어를 제공합니다.
  • 프로듀서/컨슈머 모델: 이벤트를 생성하고 처리하는 프로듀서와 컨슈머 모델을 지원합니다.
  • 유연한 설정: 다양한 설정 옵션을 통해 손쉽게 커스터마이징할 수 있습니다.

0개의 댓글