서론
RxJava에서 Stream이 무엇인지, Stream의 상태엔 어떤 것이 있는지, Operator가 무엇이고 어떤 역할을 하는지, 마블 다이어그램은 무엇이고 Marble Diagram을 어떻게 보는 것인지 알아봅니다.
📚 TL; DR
📖 Stream
- 데이터 변화 도중, 생긴 이벤트들을 관찰자들에게 알려주는 객체
- Observer Pattern에서 데이터의 상태변화에 따라 데이터를 방출해주는 Subject와 유사한 개념
- 데이터의 변화를 방출하는 객체인 스트림에는, 데이터 흐름에서 발생할 수 있는 다양한 경우들도 하나의 이벤트로 방출한다.
- RxJava2에는 여러가지 종류의 Stream이 존재한다. ( 추후에 추가로 다룰 예정 )
- 스트림에서 방출되는 이벤트로는
onNext / onError / onComplete 등이 있으며, Stream의 종류 마다 이벤트가 다를 수 있다.
- 정수기 필터를 달아 수도관의 물을 우리가 변형 할 수 있듯 Stream을 원하는 데로 변형 할 수 있다
- ReactiveX 라이브러리에는 Stream을 변형하는데 사용되는 함수가 이미 정의되어 있으며, 이를 Operator라 한다.
📖 마블 다이어그램
- Stream에서 방출되는 데이터가 RxOperator를 통해 어떻게 다루어 지는지를 묘사한 다이어그램
- 마블 다이어그램을 통해서 데이터의 변환 과정을 쉽게 이해 할 수 있음
📚 Stream
📖 Stream 이란 ?
반응형 프로그래밍 포스팅을 통해, 반응형 프로그래밍이 데이터가 변경 되었을 때 어떤 작업을 서술하는 방식 이라는 것을 공부했습니다.
또, 옵저버 패턴 포스팅을 통해, 옵저버 패턴에는 데이터의 변화를 관찰자들에게 알려주는 Subject와 Subject를 관찰하는 Observer가 있다는 것을 확인 했습니다.