더북(TheBook)

2.3.2 RxJS 옵저버블 생성

Rx에서 옵저버는 옵저버블을 구독합니다. 1장에서 보았듯이 서브젝트가 옵저버블처럼 행동한다는 점에서 옵저버 패턴과 유사합니다. Rx.Observable은 옵저버가 수신할 알림을 보내는 객체를 나타냅니다. 옵저버는 옵저버블에서 방출된 모든 이벤트에 비동기로 반응하므로 대규모 이벤트가 발생하면 흐름을 차단하는 대신 애플리케이션을 유연하게 유지할 수 있습니다. 이는 클라이언트와 서버 모두에서 비동기 응답 코드를 구현하는 데 이상적입니다.

Rx.Observable은 사람마다 다른 의미를 가집니다. 함수형 프로그래밍 순수주의자에게 이는 펑터(functor)라는, 정확히는 엔도펑터(endofunctor)라는 특별한 범주에 속합니다(펑터는 Rx를 이해하는 데 필수 사항이 아니므로 이 책에서는 다루지 않지만, 다른 함수형 프로그래밍 관련 책에서 찾아볼 수 있습니다). 대부분 사람에게는 펑터는 단순히 현재 메모리에 있거나 미래에 존재할 특정 데이터 소스들을 래핑하고 옵저버블 인스턴스 메서드를 순서대로 호출하여 연산자들을 연결하는 데이터 타입입니다. 그림 2-9는 이 개념을 간단히 시각화하여 보여줍니다.

▲ 그림 2-9 입력을 원하는 결과(구독자들이 보게 되는)로 변환하는 메서드 또는 연산자의 순차적 적용

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.