Marble Diagram(마블 다이어그램)
ReactiveX의 문서를 읽다보면 원형 또는 사각형 등의 도형과 화살표가 들어간 그림을 말한다. 주로 Flowable/Observable에서 메서드를 호출할 때 시간경과에 따른 데이터가 어떻게 전달되고 변화되는지를 표현한다.
[Filter Diagram]
filter 메서드는 원본 데이터 중 지정한 조건에 맞는 데이터만 통지하는 메서드로 Flowable과 Observable에 있는 메서드로 둘 다 같은 처리를 수행한다. filter 메서드에서 인자를 받아 데이터를 받을건지 제외할 것인지 판단하는 함수형 인터페이스를 사용하여 결과가 true 인 데이터만 통지를 한다.
[에러가 발생할 경우]
처리가 정상적으로 끝나지 못하고 중간에 에러를 통지하게 되면 해당 위치에 X표시를 하고 특정에러가 통지된다. 예를들어 onErrorReturnItem 메서드는 Flowable/Observable에 에러가 밸상하면 인자로 전달받은 데이터를 통지해 완료하는 Flowable/Observable을 생성한다.
[Zip Diagram]
여러 개의 Flowable/Observable을 사용해 처리하는 다이어 그램으로 Observable에서 데이터를 받아 새로운 데이터를 만들어 통지하는 Flowable/Observable을 생성한다. 원본Flowable/Observable이 여러 개라면 원본Flowable/Observable의 데이터 통지 시점이 각각 다를 수 있는데, zip 메서드는 통지되는 데이터의 순서에 따른다. 즉, 한쪽이 먼저 첫 번째 데이터를 통지해도 다른 한쪽이 첫 번째 데이터를 통지할 때가지 데이터 결과를 통지하지 않고 시점에 맞춰서 생성한다.
마블 다이어그램의 자세한 정보는 아래 사이트를 확인하면 된다.
'Language > Java' 카테고리의 다른 글
[Reactive Programming] RxJava 예외 처리 (0) | 2023.04.26 |
---|---|
[Reactive Programming] RxJava 비동기 처리 (0) | 2023.04.26 |
[Reactive Programming] Reactive Streams (0) | 2023.04.26 |
[Reactive Programming] RxJava 개념 (0) | 2023.04.26 |
[Reactive Programming] Reactive System(리액티브 시스템) (0) | 2023.04.26 |