ReactiveX 란?

2024. 3. 9. 22:07swift

ReactiveX, RX는 reactive eXtensions의 줄임말이며 ReactiveX 관찰 가능한 시퀀스를 사용하여 비동기 이벤트 기반 프로그램을 구성하기 위한 라이브러리다.

 

 

 

여기서 시퀸스는 일련의 이벤트 또는 데이터 스트림을 나타내는 개념이라고 보면 된다. sequences 순서들이라는 뜻을 가지고 있고 비동기적으로 발생하는 이벤트를 처리하기 위한 도구로 사용되며 이벤트는 스트림에 도착하는 순서대로 처리하게 된다.

 

 

ReactiveX 옵저버 패턴이터레이터 패턴함수형 프로그래밍 등의 개념을 결합하여 반응형 프로그래밍(Reactive Programming) 구현했다. 

 

  • 옵저버 패턴 : 옵저버는 객체의 상태의 변화를 관찰한다. 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다.
  • 이터레이터 패턴 : 반복자 패턴이라고도 하며 자료 구조와 같이 접근이 잦은 객체에 대한 동일한 인터페이스를 사용하도록 하는 패턴이다. 그리고 내부 표현 방법의 노출 없이 순차적인 접근이 가능하다.

 

 

반응형 프로그래밍(Reactive Programming)이란 데이터의 흐름을 먼저 정의하고 데이터가 변경되었을 때, 연관되는 함수가 알아서 처리하는 것을 말한다. 즉, 프로그래머가 어떠한 기능을 직접 정해서 실행하는 것이 아닌, 시스템에 이벤트가 발생하였을 때 알아서 처리되는 것이다.

 

기존의 명령형 방식을 pull 방식, 반응형 방식을 push 방식이라고도 한다.
pull
방식은 데이터를 사용하는 (consumer) 에서 데이터를 직접 가져와 사용한다면, push 방식은 데이터의 변화가 발생한 곳에서 새로운 데이터를 consumer 에게 전달한다.

 


 

출처

https://velog.io/@abc9985/RxJavaReactiveX%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

https://velog.io/@hhi-5258/Rxjava%EB%9E%80