ReactiveX는 비동기 이벤트 스트림을 함수형 스타일로 처리할 수 있도록 해주는 프로그래밍 패러다임이자 API 집합이다.
Observable
이라는 데이터 스트림을 중심으로, 시간에 따라 발생하는 값을 LINQ처럼 조작하고 결합하며 처리할 수 있게 해준다.
전통적인 비동기 이벤트 처리 방식에는 다음과 같은 문제가 있었다:
이러한 문제를 해결하고자 이벤트를 컬렉션처럼 다룬다는 개념에서 시작된 것이 ReactiveX다.
즉, 마치 배열이나 리스트처럼 시간에 따라 발생하는 값들을 map
, filter
, merge
, combine
등의 연산자로 처리할 수 있게 해주는 것이다.
개념 | 설명 |
---|---|
Observable | 시간에 따라 값을 발행하는 데이터 스트림 |
Observer | Observable을 구독(subscribe)하고 값에 반응하는 소비자 |
Operators | Observable에 적용할 수 있는 연산자들 (map, filter, combineLatest 등) |
Subscription | Observer가 Observable을 구독할 때 생성되며, 구독 취소(dispose) 가능 |
Subject | Observer와 Observable의 역할을 동시에 수행 (이벤트를 직접 발행 가능) |