본문 바로가기

프로그래밍/RxJava

[RxJava-1] Reactive Programming 과 ReactiveX 그리고 RxJava

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 형태로 구현한 라이브러리이다.