Programming/RxJava
-
[RxJava] 4. Filtering & Combining OperatorProgramming/RxJava 2020. 9. 6. 15:03
Filtering & Combining Operator 분류 조합 연산자 Filtering Operator Combining Operator Utility 1. Filtering Operator (분류 연산자) debounce 아이템이 생성되고 일정시간 동안 다른 아이템이 생성되지 않으면 데이터를 전달하는 연산자 distinct 이전에 전달한 아이템은 전달하지 않게 하는 연산자이다. 중복 제거 distinctUntilChanged 변경이 생기기 전까지 중복된 데이터를 전달하지 않는 연산자이다. 동일한 값을 가진 객체를 필터링하고 싶을 때는 클래스 내부에 hashCode와 equals가 구현되어 있어야 한다. 변경이 생기기 전까지 중복데이터를 전달하지 않는다. filter 특정 조건에 참이 되는 데이터만 ..
-
[RxJava] 3. Creating & Transforming OperatorProgramming/RxJava 2020. 9. 6. 01:50
RxJava 연산자 1. Creating Operator : Obseverbale을 생성하는 연산자 defer 연산자 defer 연산자는 옵저버가 구독할 때까지 Observable의 생성을 지연시키다가 subscribe() 메소드를 호출할 때 Observable 아이템을 생성한다. just() 메소드와 defer() 메소드를 통해 각각 Observable을 발행하고 5초 간 Thread를 sleep시킨 뒤 구독 하면 just() 연산자로 만든 옵저버블은 객체를 생성하는 시점의 시간을 발행하고, defer() 연산자로 만든 옵저버블은 구독한 시점의 시간을 발행한다. 구독하기 직전에 Observable을 생성하여 가장 최신의 상태 또는 아이템이 포함되도록 하는 것이 목적이라면 defer 연산자를 사용할 수 ..
-
[RxJava] 2. Subject / 생산자Programming/RxJava 2020. 9. 2. 15:27
SubjectSubject는 Observable과 Observer를 모두 구현한 추상 타입으로 하나의 소스로부터 다중의 구독자에게 멀티캐스팅이 가능하다.Subject는 Observer를 구현하므로 onNext(), onError(), onComplete() 등 메소르르 수동으로 호출하여 이벤트를 구독자들에게 전달할 수 있다.Observable 이면서 Observable이다. 발행과 구독을 모두 Subject 객체를 통해 한다.* Observable과 Observer의 성격을 둘다 가지고 있는 클래스 * Observable이 가지고 있는 subscribe와 여러 operator를 사용 할 수 있음 * Observer가 가지고 있는 onNext, onError, onComplete를 사용 할 수 있음 * s..
-
[RxJava] 1. Observer Pattern에 대한 이해Programming/RxJava 2020. 8. 16. 19:46
Observer Pattern (관찰자 패턴) 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. Instance observer/subscriber Observable Observable(옵저버블)은 이벤트를 만들어내는(emit) 주체 이벤트 스트림을 통해 만든 이벤트를 내보낸다. (0 개부터 여러 개의 이벤트를 내보내는 것이 가능) Observer Observer(옵저버)는 Observable에서 만들어진 이벤트에 반응(react)하며, 이벤트를 받았을 때 수행할 ..
-
[RxJava] 넷플릭스가 만든 라이브러리, RxJavaProgramming/RxJava 2020. 8. 16. 14:18
Reactive Extentions(ReactiveX) ReactiveX는 이벤트 기반 비동기 프로그래밍을 위한 라이브러리이다. 콜백 방식과 달리, 발생하는 이벤트를 이벤트 스트림에 전달하고, 이벤트 스트림을 관찰하다가 원하는 이벤트를 감지하면 이에 따른 동작을 수행하는 방식 RxJava란 무엇인가? RxJava는 넷플릭스에서 만든 Reactive Programming 라이브러리다. ReactiveX 라이브러리의 JVM 구현체. ReactiveX 라이브러리에서 제공하는 기능들을 안드로이드를 포함한 모든 자바 기반 플랫폼에서 사용할 수 있도록 한 것이다. RxJava는 함수형 프로그래밍이다. Java는 함수형 언어가 아니므로 RxJava 라이브러리는 순수 함수로 작성된 리액티브 연산자를 제공한다. 리액티브..