Reactive Programming, ReactiveX, RxJava 이 무엇인지 알아보고, 무엇이 다른지 이해해보겠습니다.
Reactive Programming (리액티브 프로그래밍) 은 데이터의 흐름(stream)과 전달에 관한 프로그래밍 패러다임입니다.
패러다임이란, 사람들의 견해나 사고를 규정하는 인식 체계를 말합니다. 저는 패러다임을 어떤 것을 알아가고 인식하는 관점이라고 이해했습니다. 그렇다면, 프로그래밍 패러다임은 프로그래밍을 인식하는 방식이나 방향이라고 할 수 있겠네요.
예를 들어, 객체지향 프로그래밍은 코드를 객체들의 집합으로 구분해서 코드를 인식하는 방식이고, 함수형 프로그래밍은 코드를 순수 함수로 구분하여 프로그래밍하는 방식입니다. 정리하면, 리액티브 프로그래밍은 데이터를 전달하여 코딩하는 프로그래밍 방식이구나 라고 이해할 수 있습니다.
기존의 프로그래밍은 변화된 데이터가 있을 때 필요한 데이터를 직접 가져오는 PULL 방식이었습니다. 하지만, 리액티브 프로그래밍은 데이터의 변화가 발생했을 때 변경한 곳에서 새로운 데이터를 보내주는 PUSH 방식입니다.
ReactiveX 는 옵저버(Observer) 패턴, 이터레이터(iterator) 패턴, 함수형 프로그래밍 등 여러 디자인 패턴과 프로그래밍 패러다임으로 구성된 API 입니다. 관찰 가능한(observable) 비동기적인 데이터 흐름(stream)을 함수 형태로 구현하여 비동기 프로그래밍을 쉽게 구현하도록 합니다. 정리하면, 비동기적인 데이터 흐름을 순수 함수 형태로 코딩하는 방식입니다.
RxJava 는 ReativeX 를 Java 형태로 구현한 라이브러리이다. RxJs, RxSwift 등 여러가지가 있습니다.
이 세가지 개념을 지금 당장 이해하지 않아도 됩니다.
시작이 반이라는 말처럼 RxJava 를 시작한 것에 의의를 둡시다.
[정리]
- Reactive Programming (리액티브 프로그래밍)
: 데이터의 흐름(stream)과 전달에 관한 프로그래밍 패러다임이다.
- ReactiveX
: 관찰 가능한(observable) 비동기적인 데이터 흐름(stream)을 함수 형태로 프로그래밍하는 API 이다.
- RxJava
ReativeX 를 Java 형태로 구현한 라이브러리이다.
'프로그래밍 > RxJava' 카테고리의 다른 글
[RxJava] Subject 클래스 (0) | 2022.11.09 |
---|---|
[RxJava-4] 연산자 (Operator) (0) | 2021.10.27 |
[RxJava-3] 데이터 발행자(Data Source) : Observable 과 Single, Maybe, Completable (0) | 2021.10.27 |
[RxJava-2] Observable 에 대하여 (0) | 2021.10.12 |