728x90
Rx..., Reactive... 란
Reactive Programming : 비동기적 데이터 흐름을 처리하는 프로그래밍 패러다임, 핵심은 모든 데이터의 흐름을 비동기적인 데이터의 Stream으로 간주해 처리하며, Observer 디자인 패턴을 활용해서 비동기 이벤트를 처리하는 것이다, 즉 환경이나 데이터가 변하면 이벤트를 받아 동작하도록 만드는 프로그래밍 기법
ReactiveX : 관찰 가능한(Observable) 스트림을 사용하는 비동기 프로그래밍을 위한 API
RxJava : ReactiveX(Reactive Extensions)를 Java로 구현한 라이브러리
RxKotlin : Kotlin을 위한 ReactiveX(Reactive Extensions)
RxAndroid : RxJava를 안드로이드 개발을 쉽게 할 수 있도록 추가, 변형한 라이브러리
fun main() {
var items = PublishSubject.create<Int>()
items.onNext(1)
items.onNext(2)
items.filter { item: Int -> item % 2 == 0 }
.subscribe { x: Int? -> println(x) }
items.onNext(5)
items.onNext(6)
}
실행결과:
6
Reactive Programming 을 예제를 통해 확인해볼 수 있다.
실행결과로 6이 출력되는 것을 확인할 수 있다. 즉 PublishSubject라는 데이터 스트림에 추가된 값 중에 구독 시점에서 변경된 데이터를 옵저버에 전달하게 되는 것이다.
var items = ReplaySubject.create<Int>()
하지만 구독 시점 이 전의 데이터도 함께 얻고싶다면 ReplaySubject로 변경하여 실행하면 2, 6의 결과를 얻을 수 있게 된다.
RxJava를 이용하면 동시성 문제, 백그라운드 처리 등의 문제들을 편리하게 해결할 수 있도록 해준다.
'Rx' 카테고리의 다른 글
RxKotlin- Part 5. Hot Observable, Cold Observable (0) | 2021.02.10 |
---|---|
RxKotlin- Part 4. Observable 외 다른 스트림 (Single , Maybe) (0) | 2021.02.04 |
RxKotlin- Part 3. Observable 생성 (fromFuture, fromPublisher) (0) | 2021.01.31 |
RxKotlin- Part 2. Observable 생성 (fromArray(), fromIterable()) (0) | 2021.01.31 |
RxKotlin - Part 1. Observable 생성 - just(), onCreate() (0) | 2021.01.31 |