본문 바로가기
Rx

리액티브연산자란?

by 봄석 2018. 12. 24.

본 내용은 필자가 학습한 내용을 정리하는 내용입니다.

대부분 의 내용이 아래 책의 내용이므로 원서를 구매해서 직접보시는걸 추천드립니다!

RxJava 프로그래밍 리액티브 프로그래밍 기초부터 RxAndroid까지 한 번에

유동환 , 박정준 지음 | 한빛미디어 | 2017년 09월 04일 출간

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788968488658&orderClick=LAV&Kc=


리액티브 연산자란?

리액티브 연산자는 함수라고 할수있다. 형식만 놓고 보았을 때 Observable등의 클래스에 포함되어 있으므로 자바 관점에서는 메소드이다. 하지만 함수형 프로그래밍 원리에 따르면 리액티브 연산자는 부수효과(side effect)*가 없는 순수함수(pure functions)이다. 그러므로 메소드보다는 함수라고 하는것이 자연스럽다.

*부수효과 - 여러 스레드가 경쟁조건(race condition)에 빠지게 되었을때 예측할 수 없는 잘못된 결과가 나오는것




 연산자

설명 

 생성(Creating) 연산자


Observable, Single 클래스 등으로 데이터의 흐름을 만들어내는 함수이다. create(), ,just()나 fromArray()등등 그리고 interval(), range(), timer(), defer()등이 있다. 모든 RxJava 프로그래밍은 생성 연산자에서 시작한다. 


 변환(Transforming) 연산자


어떤 입력을 받아서 원하는 출력 결과를 내는 전통적인 의미의 함수. map() ,flatMap()등 


 필터(Filter) 연산자 


입력 데이터 중에 원하는 데이터만 걸러낸다. filer(), first(), take()등 


 합성(Combining) 연산자


생성,변환,필터 연산자가 주로 단일 Observable을 다룬다면 합성 연산자는 여러 Observable을 조합하는 역할을 한다.

한개의 Observable뿐만 아니라 여러개의 Observable을 생성하고 조합해 보는것이 RxJava프로그래밍의 묘미일것이다. 


 오류 처리(Error Handling) 연산자


onErrorReturn(), onErrorResumeNext()와 retry() 등이 있다. 


 유틸리티(Utility) 연산자 


주로 연산자로는 subscribeOn()과 observeOn() 등이 있으며 비동기 프로그래밍을 지원한다 


 조건(Conditional) 연산자 


Observable의 흐름을 제어하는 역할을 한다

 

 수학과 집합형(Mathematical and Aggregate) 연산자 


수학 함수와 연관있는 연산자 


 배압(Back pressure) 연산자 


배압 이슈에 대응하는 연산자 




댓글