더북(TheBook)

3.2.1 핵심 연산자 소개

연산자에는 두 종류가 있습니다. 인스턴스 메서드 또는 옵저버블 타입의 정적 메서드입니다. RxJS 5 재조정 과정에서 API 외형을 대폭으로 단순화했습니다. 즉, 연산자 수를 줄이고 그 사용법을 단순화했습니다. 따라서 RxJS 5의 연산자 대부분은 정적 또는 인스턴스 메서드로 호출할 수 있습니다(인스턴스라고 할 때 이는 옵저버블 인스턴스의 .(점) 표기법을 사용하여 인스턴스를 호출하는 것을 뜻합니다).

RxJS에는 컬렉션 작업, 스트림에서의 요소 추출, 데이터 조작 및 변환, 오류 처리 등의 많은 공통 작업을 처리하는 연산자들이 내장되어 있습니다. 여기서는 주로 사용하는 map, filter, reduce뿐만 아니라 reduce의 변형인 scan도 살펴보겠습니다.

 

옵저버블에 연산자 매핑하기

RxJS를 다룰 때 가장 많이 보게 되는 연산자는 map()입니다. RxJS만 이 연산자를 구현하는 것은 아니며 모든 라이브러리가 동일한 FP 원칙을 따릅니다. FP에서 map()은 함수를 적용하여 옵저버블로 실행되는 데이터의 특성을 변경하기 때문에 변환(transformation)이라는 연산 범주에 속합니다. 따라서 단일 출력값 또는 일대일 변환으로 볼 수 있습니다. map :: x -> f(x)라는 표기법을 사용하면 주어진 값 x에 대해 입력 x를 출력 f(x)와 연결할 수 있습니다. 다음과 같이 주어진 백분율 값을 일련의 가격에 적용하는 간단한 예제를 보겠습니다.

const addSixPercent = x => x + (x * .06);
Rx.Observable.of(10.0, 20.0, 30.0, 40.0)
.map(addSixPercent) -- 이 함수를 옵저버블 소스의 각 값에 적용합니다.
.subscribe(console.log); //-> 10.6, 21.2, 31.8, 42.4
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.