Contents

Marble Diagram에 대해

Reactive Stream 공식 문서에 자주 나오는 구슬 같이 생긴 친구들의 정체는 뭘까?

https://www.oreilly.com/library/view/reactive-programming-for/9781785882883/ch03s02.html

Marble Diagram

ReactiveX 프로젝트는 Observable한 스트림을 통한 비동기적 프로그래밍 API이다. 그리고 Observable과 비동기적 프로그래밍의 흐름을 보다 이해하기 쉽게 구성해 커뮤니케이션과 전달을 효율적으로 할 수 있게 해주는 그림이 바로 마블 다이어그램이다.

Observable 아이템들을 시간 순으로, 그래픽으로 나타내는 것이 마블 다이어그램이다.

마블 다이어그램은 또한 merge, delay, scan과 같은 Observable한 시퀀스들에 대한 연산자들을 표현하기 위한 ‘사실상’ 표준이다.

구성 요소들

https://medium.com/@jshvarts/read-marble-diagrams-like-a-pro-3d72934d3ef5

마블 다이어그램에서 주의 깊게 봐야할 점으로는

  • 시간 순으로 이루어지는 흐름 (사실상 Stream의 특징이기도 하다)
  • 완료 신호에 따른 분기 (onComplete() 콜)
  • 그리고 각각의 타입이 어떻게 변하는지

각각의 언어에 적용되는 디테일은 다르지만, ReactiveX 프로젝트 진영에서 추구하는 철학 자체는 동일하다 보니 마블 다이어그램이라는 동일한 도표로 플로우를 나타낼 수 있는 장점이 있다고 생각한다.

나중에 RxJS를 좀 더 본격적으로 사용하게 된다면 Observable에 대해 좀 더 정리해봐야겠다.