IT

EDA(Event Driven Architecture)의 개념과 구성 요소(Topology)

loattoa 2023. 5. 9. 14:53

EDA(Event Driven Architecture)는 애플리케이션이 이벤트에 실시간으로 응답 및 처리할 수 있도록 하는 소프트웨어 개발에 사용되는 설계 패턴입니다. EDA의 핵심 아이디어는 애플리케이션이 단순히 작업을 연속적이거나 선형적으로 수행하는 것이 아니라 이벤트에 반응하도록 설계할 수 있다는 것입니다. 이번 글 에서는 EDA의 개념을 살펴보고 널리 사용되는 두 가지 EDA 토폴로지 구성 요소인 중재자 토폴로지(Mediator Topology)와 브로커 토폴로지(Broker Topology)에 대해 알아보겠습니다.

 

EDA 개념

EDA는 애플리케이션에서 응답을 트리거하는 개별 발생인 이벤트 개념을 기반으로 합니다.이벤트는 애플리케이션 내에서 응답을 트리거하는 개별 이벤트입니다. 이벤트는 사용자가 웹페이지 상의 버튼을 클릭하는 것부터 온도 변화를 검출하는 센서까지 무엇이든 될 수 있습니다. 이벤트가 발생하면 애플리케이션에서 응답이 트리거되고 이 응답에는 데이터 처리, 데이터베이스 업데이트 또는 다른 이벤트 트리거가 포함될 수 있습니다.
EDA는 기존의 요구/응답 기반 아키텍처와는 다릅니다.애플리케이션은 사용자 또는 다른 애플리케이션으로부터의 요구를 선형 또는 순차적으로 처리하도록 설계되어 있습니다. EDA에서 애플리케이션은 이벤트 발생 시 반응하도록 설계되어 있어 보다 유연하고 동적인 처리가 가능합니다.

 

EDA 구성요소

EDA 시스템을 구성하는 몇 가지 구성요소가 있으며 그 중에는 이벤트 제작자, 이벤트 소비자, 이벤트 처리자 등이 포함됩니다. 이벤트 공급자는 센서, 사용자 인터페이스, 데이터베이스 등의 이벤트 생성을 담당합니다. 이벤트 사용자는 이벤트를 수신하여 처리하고 이벤트 데이터를 기반으로 액션과 응답을 트리거합니다. 이벤트 프로세서는 이벤트 데이터의 처리와 분석을 처리하고 유용한 정보로 변환합니다.

 

1. 중재자 토폴로지(Mediator Topology)

중재자 토폴로지에서는 중재자가 이벤트 제작자로부터 이벤트를 받아 이벤트 소비자에게 배포하는 중심 허브 역할을 합니다. 중개자은 이벤트 생산자와 소비자 사이의 중개자 역할을 하며 양자 간 데이터 흐름을 관리합니다. 이 토폴로지는 중재자가 모든 당사자에게 단일 창구를 제공함으로써 프로세스를 간소화하기 때문에 서로 통신해야 하는 여러 이벤트 공급자와 사용자가 존재하는 상황에서 도움이 됩니다.
중재자 토폴로지의 장점 중 하나는 이벤트 제작자와 소비자 간의 보다 유연한 의사소통을 가능하게 한다는 것입니다. 중재자는 각 생산자와 소비자 사이에 직접적인 커뮤니케이션 채널을 구축하는 대신 데이터 흐름을 관리하는 허브 역할을 수행 합니다. 이를 통해 EDA 시스템의 설계와 구현이 간단해지고 관리와 유지보수가 쉬워집니다.

 

2. 브로커 토폴로지(Broker Topology)

브로커 토폴로지에서 메시지 브로커는 이벤트 공급자와 소비자 간의 이벤트 흐름을 관리하는 중앙 허브 역할을 합니다. 메시지 브로커는 생산자로부터 이벤트를 수신하고 처리한 후 적절한 사용자에게 전달합니다. 이 토폴로지는 메시지 브로커가 이들 사이의 데이터 처리와 라우팅을 처리할 수 있기 때문에 이벤트 생성자와 소비자가 다수 존재하는 경우 유용합니다..
브로커 토폴로지의 장점 중 하나는 확장성과 결함에 대한 관용(fault tolerance)을 실현할 수 있다는 것입니다. 이벤트 작성자와 소비자의 수가 증가함에 따라 메시지 브로커는 증가된 부하를 처리하기 위해 스케일업할 수 있습니다. 또한 생산자 또는 소비자에게 장애가 발생한 경우에도 메시지 브로커는 이벤트를 계속 처리하여 데이터가 손실되지 않도록 합니다.

 

3. 중재자 토폴로지와 브로커 토폴로지 비교

중재자 토폴로지와 브로커 토폴로지 모두 EDA에서 사용되고 있지만, 둘 사이에는 몇 가지 중요한 차이가 있습니다. 큰 차이점 중 하나는 중재자 토폴로지는 생산자와 소비자 사이의 통신에 유연성을 제공하고 브로커 토폴로지는 확장성과 fault tolerance를 제공한다는 점입니다.
또 다른 차이점은 데이터 관리입니다. 중재자 토폴로지에서는 중재자가 데이터 흐름을 관리하는데, 이는 복잡한 데이터 흐름과 여러 생산자와 소비자가 있는 상황에서 유용합니다. 브로커 토폴로지에서는 메시지 브로커가 데이터 흐름을 관리합니다.이는 대량의 생산자와 소비자가 존재하고 확장성과 fault tolerance의 필요성이 높은 상황에서 도움이 됩니다.

 

결론

EDA는 애플리케이션이 이벤트에 실시간 응답할 수 있는 강력한 설계 패턴으로 유연성과 동적 처리에 강점이 있습니다. 그리고 EDA로 설계할 때는 시스템이 성능 요건을 충족하고 확장성과 보수성을 갖추고 있는지 확인하기 위해 적절한 토폴로지를 선택하는 것이 중요합니다. 중재자 토폴로지와 브로커 토폴로지는 두 가지 일반적인 EDA 토폴로지 컴포넌트입니다.중재자 토폴로지는 여러 이벤트 제작자와 소비자가 서로 통신해야 하는 상황에서 유용합니다. 모든 당사자에게 단일 접점을 제공하고 커뮤니케이션 프로세스를 간소화하며 생산자와 소비자 간의 커뮤니케이션에 보다 유연성을 제공합니다.
한편 브로커 토폴로지는 이벤트 제작자나 소비자가 많은 상황에서 도움이 됩니다. 확장성과 fault tolerance를 제공하여 시스템이 부하 증가를 처리하고 장애에서 회복할 수 있도록 합니다.요약하자면 중재자 토폴로지와 브로커 토폴로지 모두 장단점이 있으며, 토폴로지 선택은 EDA 시스템의 특정 요건에 달려 있습니다. 선택한 토폴로지에 관계없이 EDA는 강력한 설계 패턴으로 개발자가 보다 유연하고 응답성이 높은 동적 애플리케이션을 만드는 데 사용될 수 있는 아키텍쳐라 할 수 있겠습니다.

 

'IT' 카테고리의 다른 글

통신 프로토콜의 개념과 HTTP, HTTPS 각 특징 및 차이점  (0) 2023.05.09