안드로이드

RxKotlin, RxAndroid란?

코딩하는후운 2021. 3. 26. 17:06
반응형

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