2.3.2 RxJS 옵저버블 생성
Rx에서 옵저버는 옵저버블을 구독합니다. 1장에서 보았듯이 서브젝트가 옵저버블처럼 행동한다는 점에서 옵저버 패턴과 유사합니다. Rx.Observable
은 옵저버가 수신할 알림을 보내는 객체를 나타냅니다. 옵저버는 옵저버블에서 방출된 모든 이벤트에 비동기로 반응하므로 대규모 이벤트가 발생하면 흐름을 차단하는 대신 애플리케이션을 유연하게 유지할 수 있습니다. 이는 클라이언트와 서버 모두에서 비동기 응답 코드를 구현하는 데 이상적입니다.
Rx.Observable
은 사람마다 다른 의미를 가집니다. 함수형 프로그래밍 순수주의자에게 이는 펑터(functor)라는, 정확히는 엔도펑터(endofunctor)라는 특별한 범주에 속합니다(펑터는 Rx를 이해하는 데 필수 사항이 아니므로 이 책에서는 다루지 않지만, 다른 함수형 프로그래밍 관련 책에서 찾아볼 수 있습니다). 대부분 사람에게는 펑터는 단순히 현재 메모리에 있거나 미래에 존재할 특정 데이터 소스들을 래핑하고 옵저버블 인스턴스 메서드를 순서대로 호출하여 연산자들을 연결하는 데이터 타입입니다. 그림 2-9는 이 개념을 간단히 시각화하여 보여줍니다.
▲ 그림 2-9 입력을 원하는 결과(구독자들이 보게 되는)로 변환하는 메서드 또는 연산자의 순차적 적용