더북(TheBook)

스트림을 구독하면 마우스 클릭이나 키 입력 같은 다른 여러 데이터 소스를 똑같은 방향으로 탐색하게 됩니다. 이론적으로 말하면, 의사 Stream 타입은 반복 가능한 객체이므로 기존 방식의 루프로 일련의 키 입력 이벤트를 탐색할 수 있습니다.

const stream = Stream(R, x, J, S)[Symbol.iterator](); -- 네 개의 키 입력을 래핑하는 스트림을 생성합니다.
 
for(let keyEvent of stream) { -- 스트림을 탐색한다는 것은 스트림을 구독한다는 것과 같은 의미입니다(자세한 내용은 뒤에서 설명합니다).
console.log(event.keyCode);
}
//-> 82, 120, 74, 83

또한 RxJS에서 스트림은 Iterator 인터페이스를 준수하며, 이 스트림의 구독자는 그 안에 포함된 모든 이벤트를 듣습니다. 앞에서 보았듯이 이터레이터는 반복 메커니즘과 반복되는 데이터를 비즈니스 로직에서 분리하는 데 큰 도움이 됩니다. 데이터가 프로그램의 제어 흐름을 정의할 때 이를 데이터 기반 코드(data-driven code)라고 합니다.

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