Jump to section

이벤트 기반 아키텍처란 무엇일까요?

URL 복사

이벤트 기반 아키텍처는 애플리케이션 설계를 위한 소프트웨어 아키텍처 및 모델입니다. 이벤트 기반 시스템에서 이벤트 캡처, 커뮤니케이션, 처리, 지속성은 솔루션의 핵심 구조입니다. 이는 전통적인 요청 기반 모델과는 다릅니다.

대부분의 현대적인 애플리케이션 설계는 실시간으로 고객 데이터를 활용해야 하는 고객 참여 프레임워크처럼 이벤트 기반으로 이루어집니다. 이벤트 기반은 언어가 아닌 프로그래밍 방식이므로 이벤트 기반 애플리케이션은 모든 프로그래밍 언어로 구축될 수 있습니다. 이벤트 기반 아키텍처는 최소한의 결합을 지원하므로 현대적인 분산형 애플리케이션 아키텍처에 적합한 방법입니다.

이벤트 생성자는 어떤 이벤트 소비자가 이벤트를 수신하고 있는지 알지 못하고 이벤트에서 어떤 결과가 생기는지 알지 못하므로 이벤트 기반 아키텍처는 탄력적으로 결합되어 있습니다.

이벤트란 시스템 하드웨어 또는 소프트웨어 상태의 변화 또는 중대 사건의 발생을 의미합니다. 이벤트는 시스템의 다른 부분에 이벤트가 발생했음을 알리기 위해 해당 시스템에서 보내는 메시지 또는 알림을 뜻하는 이벤트 알림과는 다릅니다.

이벤트 소스는 내부 또는 외부 입력일 수 있습니다. 이벤트는 마우스 클릭이나 키보드 입력과 같은 사용자 또는 센서 출력과 같은 외부 소스에서 생성되거나 프로그램 로딩과 같이 시스템에서 비롯될 수 있습니다.

이벤트 기반 아키텍처는 이벤트 생성자와 이벤트 소비자로 구성되어 있습니다. 이벤트 생성자는 이벤트를 감지하며 메시지로 해당 이벤트를 나타냅니다. 생성자는 이벤트 소비자 또는 이벤트 결과를 알지 못합니다. 

이벤트가 감지된 후에는 이벤트 처리 플랫폼이 이벤트를 비동기식으로 처리하는 이벤트 채널을 통해 해당 이벤트 생성자에서 이벤트 소비자로 전송됩니다. 이벤트 발생 시 이벤트 소비자는 알림을 받아야 하며, 이벤트를 처리할 수도 있고 이벤트의 영향을 받기만 할 수도 있습니다. 

이벤트 처리 플랫폼은 올바른 응답을 실행하고 적합한 소비자에게 활동을 다운스트림으로 전송합니다. 이러한 다운스트림 활동은 이벤트 결과가 나타나는 위치입니다. 

Apache Kafka는 많이 사용되는 이벤트 처리 방식인 분산형 데이터 스트리밍 플랫폼으로, 이벤트 스트림 게시, 구독, 저장, 처리를 실시간으로 수행할 수 있습니다. Apache Kafka는 뛰어난 처리량과 확장성이 필요한 다양한 활용 사례를 지원하며, 특정 애플리케이션에서 데이터 공유를 위한 포인트 투 포인트(point-to-point) 통합의 필요성을 최소화하므로 지연 시간을 밀리초 단위로 줄일 수 있습니다. 

이벤트 처리 플랫폼으로 활용할 수 있는 다른 미들웨어 이벤트 관리자도 있습니다.

이벤트 기반 아키텍처는 게시/구독(pub/sub) 모델 또는 이벤트 스트림 모델을 기반으로 할 수 있습니다.

게시/구독 모델

이벤트 스트림 구독 기반의 메시징 인프라입니다. 이 모델을 사용하면 이벤트 발생 후 또는 게시 후에 알림을 받아야 하는 구독자에게 이벤트가 전송됩니다.

이벤트 스트리밍 모델

이벤트 스트리밍 모델을 사용하면 이벤트가 로그에 기록됩니다. 이벤트 소비자는 이벤트 스트림을 구독하지 않습니다. 그 대신 스트림의 모든 부분에서 읽기가 가능하며 언제든지 스트림에 참여할 수 있습니다. 

이벤트 스트리밍에는 몇 가지의 다른 유형이 있습니다.

  • 이벤트 스트림 처리는 Apache Kafka와 같은 데이터 스트리밍 플랫폼을 사용하여 이벤트를 수집하고 이벤트 스트림을 처리하거나 변환합니다. 이벤트 스트림 처리는 이벤트 스트림에서 의미 있는 패턴을 감지하는데 사용할 수 있습니다.
  • 단순 이벤트 처리는 이벤트가 이벤트 소비자에게 즉각적으로 동작을 트리거하는 경우입니다.
  • 복합 이벤트 처리는 이벤트 소비자가 패턴을 감지하기 위해 일련의 이벤트를 처리하도록 합니다.

이벤트 기반 아키텍처는 조직이 실시간으로 변화에 대응하여 의사 결정을 내릴 수 있는 유연한 시스템을 확보할 수 있도록 지원합니다. 실시간 상황 인식은 시스템의 현재 상태를 반영하는 모든 가용 데이터를 활용하여 수동 또는 자동으로 비즈니스 결정을 내릴 수 있음을 의미합니다. 

사물인터넷(IoT) 기기, 애플리케이션 및 네트워크와 같은 이벤트 소스에서 이벤트가 발생하는 경우 캡처되므로 이벤트 생성자와 이벤트 소비자가 실시간으로 상태 및 응답 정보를 공유할 수 있습니다. 

조직은 이벤트 기반 아키텍처를 시스템과 애플리케이션에 추가하여 애플리케이션의 확장성 및 응답성과 더 나은 비즈니스 의사 결정에 필요한 데이터와 컨텍스트에 대한 액세스를 개선할 수 있습니다.

애자일DevOps 방법론을 통해 개발되어 탄력적으로 결합된 이벤트 기반의 클라우드 네이티브 애플리케이션 아키텍처는 민첩성과 확장성을 동등하게 중요시하는 통합 접근 방식을 필요로 합니다. 

Red Hat의 애자일 인테그레이션은 리소스를 연결하는 접근 방식으로, 통합 기술, 애자일 제공 기술, 클라우드 네이티브 플랫폼을 결합하여 소프트웨어 제공 속도를 높이고 보안을 강화합니다. 

Red Hat은 하이브리드 클라우드 환경 전반에서 레거시 기술과 마이크로서비스를 신속히 연결하는 통합 플랫폼과 관리 소프트웨어를 제공하고 애자일 인테그레이션을 통해 이벤트 기반 아키텍처를 지원합니다.

Keep reading

문서

통합이란?

통합에 대해 알고 싶으신가요? 통합의 정의와 통합 방법, 오픈소스로 통합하는 것이 훨씬 효율적인 이유 등을 알아보세요.

문서

Apache Kafka란 무엇일까요?

Apache Kafka는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산 데이터 스트리밍 플랫폼입니다.

문서

API란?

API는 애플리케이션 소프트웨어를 구축하고 통합하기 위한 정의 및 프로토콜 세트인 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)를 뜻합니다.

통합에 대한 자세한 내용

제품

배포 및 애플리케이션 개발을 가속화합니다.

비즈니스를 혁신하고 끊임없이 변화하는 시장의 요구 사항을 충족하세요.

하이브리드 클라우드 경험을 간편화하고 클라우드 네이티브 애플리케이션 배포의 운영 비용과 복잡성을 줄입니다.

리소스

E-book

애자일 인프라의 생성과 기업의 적응력 향상

교육

무료 교육 과정

Red Hat 애자일 인테그레이션 기술 개요