반응형
Rx란?
Reactive Programing 입니다.
리액티브 프로그램은 프로그램 자신의 주변 환경과 끊임없이 상호작용을 하는데 프로그램이 주도하는 것이 아니라 환경이 변하면 이벤트를 받아 동작합니다.
명령형 프로그래밍과 다르다!
- 명령형 프로그래밍(Imperative programming) – 작성된 코드가 정해진 순서대로 실행됨.
- 리액티브 프로그래밍(Reactive Programing) – 데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 메서드가 업데이트 되는 방식.
사용 이유
1. 자바가 동시성 처리를 하는데 번거로움이 있다. 다수의 비동기실행흐름을 생성하고 결과를 취합하여 최종리턴하는게 어렵다.
-> completableFuture 도 가능하나 당시에는 제공되지 않았다.
2. 비동기 흐름을 조합할 수 있는 방법을 제공한다.
3. 콜백 지옥 상황을 개선할수있다. -> 비동기 연산을 필터링, 변환, 조합해 해결한다. (map, filter, reduce)
RxKotlin, RxJava, RxAndroid, RxSwift 등들은 서로 다른 것이 아니라 하나의 ReactiveX Extensions이라고 보면 되겠습니다.
- RxJava: Java(JVM)를 위한 ReactiveX Extensions
Reactive programming(리액티브 프로그래밍) 패러다임을 자바에서 구현한 프로그래밍 라이브러리 - RxKotlin: Kotlin을 위한 ReactiveX Extensions
RxJava 라이브러리를 기반으로 포팅하여 코틀린을 위한 리액티브 프로그래밍의 특정 부분을 함수형 프로그래밍으로써 구현한 라이브러리 - RxAndroid: Android를 위한 ReactiveX Extensions
RxJava에 최소한의 클래스를 추가하여 안드로이드 앱에서 리액티브 구성요소를 쉽고 간편하게 사용하게 만드는 라이브러리 - RxSwift: Swift를 위한 ReactiveX Extensions
ReactiveX Extensions에는 공통점이 있습니다.
- 효율적으로 신속하게 비동기 처리를 도와줌
- 함수형 프로그래밍을 일부 지원함
- 옵저버패턴(Observer pattern)을 사용함
- 콜백(Callback)에서 또 콜백을 하는 콜백 지옥에서 벗어날 수 있다.
출처 :
wsym.tistory.com/entry/rxjava%EB%A5%BC-%EC%93%B0%EB%8A%94-%EC%9D%B4%EC%9C%A0
velog.io/@jojo_devstory/Android-RxKotlin-RxAndroid%EB%9E%80-Reactive-Programing
반응형
'안드로이드' 카테고리의 다른 글
Wildcard(*) import 방지 (0) | 2021.05.03 |
---|---|
Gradle Dependency 관리하기 (buildSrc) (0) | 2021.04.02 |
Android Dalvik & ART 차이 (0) | 2021.03.29 |
Android Context란? (0) | 2021.03.29 |
MVC, MVP, MVVM 장단점 (0) | 2021.03.28 |