RxJS(Reactive Extensions for JavaScript)는 자바스크립트에서 반응형 프로그래밍을 지원하기 위한 라이브러리입니다. 반응형 프로그래밍은 데이터 흐름에 초점을 맞추어 데이터의 변화를 감지하고 이에 대응하는 방식으로 동작합니다.
RxJS의 기본 개념은 옵저버블(Observable)과 옵저버(Observer)로 이루어져 있습니다. 옵저버블은 이벤트 스트림이나 비동기 작업 등 데이터의 흐름을 표현하는 개념입니다. 이러한 옵저버블은 값, 에러, 완료와 같은 세 가지 유형의 알림을 발행할 수 있습니다.
옵저버는 옵저버블에서 발생하는 알림을 구독하여 처리합니다. 옵저버는 옵저버블로부터 알림을 받으면 원하는 동작을 수행할 수 있습니다. 이때, 옵저버는 세 가지 메서드를 구현해야 합니다. 첫 번째는 next
메서드로 옵저버블에서 발행한 값 알림을 처리하는 것이고, 두 번째는 error
메서드로 에러 알림을 처리하는 것입니다. 마지막으로 complete
메서드로 옵저버블의 완료 알림을 처리합니다.
RxJS는 옵저버블과 옵저버를 함께 사용하여 데이터의 흐름을 모델링하고 다양한 연산자를 이용해 데이터를 변형하고 조작할 수 있습니다. 이를 통해 비동기 작업, 이벤트 처리, 상태 관리 등 다양한 문제를 반응형으로 해결할 수 있습니다.
RxJS는 함수형 프로그래밍의 개념을 기반으로 설계되었으며, 다양한 연산자를 제공하여 데이터의 변환, 병합, 필터링, 지연 등을 더욱 쉽게 처리할 수 있도록 합니다. 또한, RxJS는 다른 비동기 라이브러리와 호환성이 높아 다양한 환경에서 사용할 수 있습니다.
참고 자료: