CODE

[ReactiveX]반응형 프로그래밍, ReactiveX란 무엇일까?

[ReactiveX]반응형 프로그래밍, ReactiveX란 무엇일까?

ReactiveX란?

ReactiveX란?

ReactiveX란 반응형 프로그래밍을 용이하게 하기 위해 사용되는 라이브러리로 대부분의 프로그래밍 언어에 대응하기 때문에 대표적으로 사용되고 있다. 반응형 프로그래밍에 더불어 함수형 프로그래밍, 선언형 프로그래밍을 용이하게 해준다.

ReactiveX를 구성하는 세가지 요소

옵져버블(observable)

관찰대상이라는 의미로 일련의 값들을 반환한다. 연속적으로 발행되어 나오는 값들을 stream(흐름)이라고 부른다.

오퍼레이터(Operators)

옵져버블이 파이프를 거치면서 연산되는 과정이다. 주로 순수함수를 통해 연산된다.

옵져버(Observer)

관찰자라는 의미로 파이프를 바라보며 값을 기다리다가 최종 작업을 실행한다. 이렇게 값을 기다리고 최종 작업을 실행하는 과정을 subscribe, 구독한다고 표현한다.

ReactiveX를 사용하는 이유

소프트웨어의 각종 요소들을 순수함수로 가공할 수 있는 흐름(stream)으로 다룸으로써 함수형 프로그래밍의 강점을 적용하는 범위를 대폭 확장시켜준다. 1차원적인 값 뿐만 아니라 시간의 흐름, 사용자의 동작, 네트워크 요청 결과에 이르기까지 흐름을 만들 수 있으며 시간에 관련된 순수함수가 다양하여 각종 비동기, 애니메이션 등의 작업을 용이하게 한다.

함수형 프로그래밍이란?

함수형 프로그래밍이란 코딩 중 오류의 소지가 될 수 있는 변수의 사용을 지양하고 순수 함수(filter, slice, map, join)들을 사용하여 프로그래밍을 하는 것을 말한다.

데이터 정제하는 과정이 프로그램 실행 중 값이 바뀔 수 있는데 이를 일일이 감안하여 코드를 짜기는 쉽지 않다. 특히 여러 작업이 동시에 돌아가는 멀티스레딩 환경에서는 둘 이상의 스레드가 하나의 변수에 접근할 때 이를 감안해서 조치를 취하지 않으면 파악하기 난이한 오류를 발생시킬 수 있다.

이러한 이유로 함수형 프로그램밍에서는 변수를 사용하지 않고 순수함수들, 즉 외부의 데이터를 변경하지 않고 받아온 값들을 내부에서 처리해서 반환하는 함수들을 사용한다.

함수형이 아닌 방식으로 짜인 코드의 경우 동사들을 사용한 명령조의 느낌이라면 함수형 코드의 경우 과정을 선언하는 형태를 띄고 있으며 이미 존재하는 순수 함수들을 가져다 쓴다.(함수형 프로그래밍 = 선언형 프로그래밍)

최신글