Marble Diagram과 Reactive 연산자

fireFox·2022년 5월 2일
0

Reactive Programming

목록 보기
3/3

개요

Reactive Programming을 통해 발생하는 비동기적인 데이터의 흐름을 시간의 흐름에 따라 시각적으로 표시한 다이어그램

마블 다이어그램은 Reactive 연산자의 전체적인 흐름도이며, Reactive 연산자를 이해하기 위한 도구이다. 위 표의 해석은 아래와같다. (시계방향)

1) 실선은 Observable의 timeline. 시간은 왼쪽에서 오른쪽으로 흐른다.
시간순으로 데이터가 발행하는 것을 표현한다.
2) Observable에서 발행한 데이터. 데이터를 발행할때는 onNext 알림이 발생한다.
3) Observable이 성공적으로 완료되었음을 나타내는 수직선. onComplete 알림이 발생한다.
4) 점선과 상자는 Observable에 변환이 적용되고 있음을 나타낸다.
상자안의 문자는 어떤 변환인지에 대한 특성을 나타낸다.
5) 변환된 결과가 출력된 timeline
6) Observable가 비정상적으로 종료되거나 에러 발생시, 수직선이 아닌 X가 표시된다.
onError 알림이 발생한다.

Reactive 연산자

그럼 Reactive한 프로그램을 만들기위한 연산자들을 알아보자

아래 사이트는 각 연산자들을 마블 다이어그램 형식으로 볼 수 있는 사이트이다. 아래 그림처럼 각 연산자들의 동작방식을 알기쉽게 마블 다이어그램 형식으로 나타내며, 각 객체를 직접 마우스로 움직여 볼수 있어서 더 쉽게 이해할 수 있다.
https://rxmarbles.com/

연산자의 종류

1) 생성 : 시퀀스를 생성하는 연산자

  • just, create, fromArray, fromCallable, fromIterable, interval, timer, range, repeat

2) 변환 : 한 시퀀스를 다른 시퀀스로 바꾸는 역할 1:1 매칭으로 바꿔준다고 생각하면된다.

  • buffer, flatMap, groupBy, map

3) 필터 : 데이터를 필터링 해주는 연산자. 조건이 ture인 데이터만 걸러준다.

  • debounce, distinct, distinctUntilChanged, filter, ofType, ignoreElements, throttleFirst, throttleLast, skip, take

4) 결합 : 두개의 데이터를 조합해서 새로운 Observable을 만드는 연산자.

  • combinedLatest, merge, startWith, zip

5) 오류처리 : Observable이 발생 시킨 오류를 복구할 수 있도록 도와주는 연산자.

  • onError, retry

6) 유틸리티 : 유틸리티 작업을 수행하는데 도움을 주는 연산자

  • deley, do, serialize, subscribe, timestamp

7) 조건 : Observeble의 흐름을 제어하는 역할을 하는 연산자

  • all, contains, defaultEmpty, takeUntil

8) 집계 : 수학적으로 데이터를 계산할 수 있는 연산자

  • average, count, max, min, reduc, sum
profile
기억날때 기록하자

0개의 댓글