Event-Bus Programming

Seooooo24·2024년 11월 22일

Event-Bus란?

  • 외부 프로세스와의 연동을 위해 이벤트를 발생하여 통신하는 방법
    버스는 이벤트가 다니는 통로라고 보면 된다. 이벤트를 발생시킨 뒤 그걸 이벤트 버스를 통해서 다른 프로세스에 전달해주고, 그 이벤트를 받은 프로세스가 결괏값을 다시 리턴해주는 방식이다.

Event-Bus의 특징

  • 이벤트 기반으로 통신하면 시스템의 변경이 상대적으로 쉽다. 클라이언트-서버 프로그래밍 같은 경우는 직접 서버와 연결되어 있기 때문에 서버의 위치를 정확하게 지정해주어야 한다. 그러나 이벤트-버스 프로그래밍은 버스에 연결되어 있는 다른 프로세스들로 이벤트를 전달하기가 쉬우므로 훨씬 쉽게 시스템 변경이 가능하다.
  • 다만, 이벤트가 명확히 전송되었는지 알 수가 없으며, 응답 시간을 예측하기가 매우 어렵다. (Non-Deterministic)
  • 정리하자면, 변경은 쉬운데 결정이 어렵다.

Event-Bus의 종류

Implicit Invocation

  • 변경 정보를 전달할 대상을 명확히 알지 않고 정보를 전달한다.
  • 하나를 뿌리면 불특정 다수가 모두 전달 받는다. 특정 하나한테 보내는 게 아니라, 브로드캐스팅과 같은 것이다. 받고 싶은 사람만 받아서 쓰는 것과 마찬가지!
  • 변경이 훨씬 쉽다. 대신 모두에게 보내기 때문에 예측이 어렵다!

Explicit Invocation

  • 변경 정보를 전달한 대상을 명확히 알고 변경 정보를 전달한다.
  • 클라이언트-서버 방식과 비슷하다. 특정한 받을 사람을 지정해서 뿌리는 것이다.

0개의 댓글