목록타닥타닥/RxJava (6)
혼자 있고 싶네요. 모두 나가주세요.
참조 : [http://reactivex.io/documentation/operators.html] RxJAVA의 연산자 거의 모든 연산자들이 Observable을 return하기 때문에 return 값을 그대로 받아서 연산자를 이어나가는 연산자 체인을 가능하게 한다. 메서드 체인을 제공하는 빌더 패턴과는 다르게 Observable의 연산자 체인은 호출 순서 에 따라 결과가 달라진다고 한다. 몇 가지의 연산자를 통해 감을 잡아보도록 하자. Observable 생성 연산자 create create 연산자는 직접적인 코드를 통해 Observable을 만들 수 있게 해준다. 이 연산자를 Observer를 매개변수로 삼는 함수로 넘길 수 있다.이 함수를 사용하여 Observer의 onNext, onError, ..
참조 : [https://github.com/ReactiveX/RxJava/wiki/Connectable-Observable-Operators] Connectable Observable ConnectableObservable과 operator에 대해 아라보자. ConnectableObservable.connect( ) — Connectable Observable이 결과를 뱉기 시작하도록 명령한다. Observable.publish( ) — Observable을 Connectable Observable로서 표현한다. Observable.replay( ) — 모든 Subscribers들이 같은 일련의 아이템들을 볼 수 있도록 보장한다. 심지어 이미 배출된 아이템이 있더라도 처음부터 보여준다. Connecta..
참조 : [http://reactivex.io/documentation/subject.html] Subject subject는 Observer나 Observable처럼 행동하는 ReactiveX의 일부 구현체에서(ex. RxJava) 사용 가능한 연결다리 혹은 프록시이다. Subject는 Observer이기 때문에 하나 이상의 Obervable들을 구독할 수 있고 또한 Observable이기 때문에 아이템들을 하나 하나 거치면서 재배출하고 새로운 아이템을 배출할 수도 있다. 한 Subject는 한 Observable을 구독하므로써 (Cold Observable인 경우에만 - (Hot, Cold Observable)) Observable이 아이템을 배출하도록 만든다. 이것은 Subject를 Cold Obe..
참조 : [http://reactivex.io/documentation/observable.html] “Hot” 하고 “Cold” 한 Observables Observable(관찰 대상)이 결과물들을 뱉어내는 타이밍은 Observable 마음이다. 핫(Hot)한 Observable은 뜨거워서 빨리빨리 처리를 해야 한다. 만들어지면 최대한 빨리 결과물을 뱉어내고 따라서 어떤 Observer라도 아무때나 중간에 관찰을 시작할수 있다. 하지만 찬(Cold) Observable은 누가 자신을 subscribe(구독)하고 나서야 결과를 뱉어낸다. 결국, Cold한 Observable을 구독하는 Observer는 그 Observable의 첫 결과물부터 차례로 받을수 있음이 보장된다. ReactiveX에는 Hot과 ..
RxAndroid란? 안드로이드에서 RxJava를 사용할 수 있도록 편리한 툴을 제공 용어 정리 Subject == Observable : Event를 발생시키는 관찰 대상 Observer == Subscriber : Observable을 보고 있다가 Event가 발생하면 처리하는 관찰자 첨에 Observer, Observable 구분하기가 빡시다. 눈을 일을 하는데 머리는 일을 하질 않는다. 준비하기 compile 'io.reactivex:rxandroid:0.24.0'이 한줄을 app 단위 Gradle에 추가하여 준다. Hello, RxJava? 일단 거두절미하고 다짜고짜 출력해 보도록 하자. 아직 RxJava랑 친하지 않으니, 'Hello, RxJava!' 처럼 공격적인 느낌표보다는 조심스러운 물음..
Reactive Programming이란? 여기에서 이런 문장을 찾았다. Reactive programming is programming with asynchronous data streams. Reactive Programming 에서는 변수들, 사용자 입력, 자료구조 등 모든 것들을 Stream으로 여긴다. 그리고 다양한 기능들을 이용하여 Stream을 다음과 같이 조작 할 수 있다. 하나 이상의 Stream이 다른 Stream의 입력값이 될 수 있다. 두개의 Stream을 Merge 할 수 있다. Stream을 Filter하여 내가 관심있는 Stream만 추릴 수 있다. 한 Stream을 새로운 것으로 Map 가능하다. Stream 이해하기 Stream이란 시간순으로 진행되는 이벤트들의 일련의 순서..