카테고리 없음

24/01/12 TIL __ 이벤트 드리븐 아키텍쳐 (EDA)

GABOJOK 2024. 1. 12. 16:17

 

 

실시간 스트리밍 서비스(실시간 채팅기능)을 기획하고 있어서 이와 관련된 기술들을 좀 찾아봤다. 

오늘은 이벤트 드리븐에 대해 적어보려 한다.

 

이벤트 드리븐 아키텍쳐

 

 

🧐이게 왜 나왔을까?🧐

프로그램이 복잡해 지면서, 동시에 여러 프로그램을 실행하다 보니 이벤트가 몹시 다양하게 발생하게 되었다. 

즉 흐름 예측이 힘들다. 

따라서 동시에 수행되는 다른 프로그램들을 고려해서 개발을 진행하고자

운영체제가 알아서 처리해 주도록 만든 것!!

데이터 흐름의 실시간 감지나 분석하는데 적합한 구조로 알려져 있는데

이벤트가 발생하자 마자 시스템이 즉각 이를 알고 대응하도록 설계되어 있기 때문이다. 

그래서 실시간 채팅과 실시간 라이브 스트리밍 서비스의 기획단계에서 찾아보게 되었다. 

 

 

이벤트 드리븐 아키텍쳐에 대해 간단하게 말하기 전 

먼저 이벤트 드리븐이란

시스템이나 소프트웨어가 이벤트에 의해 제어되고, 작동한다. 

즉 이벤트 발생에 의해서 프로그램의 흐름이 결정!!

 

각 이벤트는 독립적인 단위로 존재하며, 시스템의 여러 컴포넌트 간에 상호작용을 정의한다.  

또한 이벤트 핸들러가 동시에 실행이 가능하다. 

독립적이고, 확장성이 있기에, 복잡하고 역동적인 상황에 가장 효율적으로 대응이 가능한 모델이다. 

 

이벤트 구독과 느슨한 결합이라는 용어가 있어 찾아봤는데, 대단한건 아니고

 

이벤트 구독은  이벤트가 발생하면 알림받고 행동을 수행하는걸 말한다. 

느슨한 결합은  자신이 관심을 가지고 있는 이벤트에만 구독을 등록하며, 다른 컴포넌트와의 의존성을 낮춘다. 

즉  구성 요소간 의존성을 낮추고, 독립성을 강화하기 위한것. 이를 나타내는 특징들이 있었는데,

독립적, 상호의존 최소, 유연성 향상, 인터페이스 일관성, 수정 용이성이 있었다.

 

처음엔 복잡했는데 볼수록 의존성을 낮추어 효율적인 대응을 하기 위한 다양한 방법들 중 하나가 아닌가 싶었다. 

다만 이벤트 발생시 빠르게 대응할 수 있다는 점이 가장 큰 특이점이라 생각되었다.