더북(TheBook)

소비자

전체적으로 균형을 맞추려면 생산자로부터 이벤트를 받아들여 특정 방식으로 해당 이벤트를 처리하는 소비자(Consumer)가 있어야 합니다. 소비자가 소비할 이벤트에 대해 생산자를 듣기 시작하면 스트림이 생기게 되고, 이 시점에 스트림은 이벤트를 푸시하기 시작합니다. 여기서는 이 소비자를 옵저버(Observer)로 부릅니다.

스트림은 생산자에서 소비자로만 이동하며 다른 방향으로는 이동하지 않습니다. 다시 말해, 사용자가 키보드의 키를 누르면 다른 프로세스에서 소비되려고 흘러가는 이벤트를 생산하게 됩니다. 즉, 스트림 측면에서 생각하는 방법을 이해한다는 것은 데이터가 흐르는 방향을 결정하기 위해 애플리케이션을 업스트림과 다운스트림으로 생각하는 방법을 이해한다는 뜻입니다. RxJS와 관련하여 스트림은 항상 업스트림 옵저버블에서 다운스트림 옵저버로 흐릅니다. 그리고 두 컴포넌트는 느슨하게 결합되어 있으며 그림 1-12처럼 애플리케이션의 모듈성을 향상합니다.

▲ 그림 1-12 이벤트는 항상 옵저버블에서 옵저버로 흐르고 다른 방향으로 절대 흐르지 않는다.

 

예를 들어 키보드 이벤트 핸들러는 이벤트를 생성만 하고 소비하지 않으므로 업스트림입니다. 반면 키 입력을 기반으로 로직을 수행해야 하는 코드는 다운스트림입니다. 기초 수준에서 다시 보면 스트림은 생산자와 소비자만을 요구합니다. 소비자가 생산자에서 이벤트를 받기 시작하면 스트림을 생성할 수 있습니다. 이제 이 데이터로 무엇을 할 수 있을까요? 모든 일은 데이터 파이프라인에서 일어납니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.