더북(TheBook)

2.1.2 이터레이터 패턴

RxJS 스트림의 핵심 디자인 원칙은 배열처럼 친숙한 탐색 메커니즘을 제공하는 것입니다. 이터레이터는 배열, 트리, 맵 심지어 스트림 등 이러한 요소를 활용하는 데 사용되는 기본 데이터 구조와는 독립적으로, 즉 그 구조와 상관없이 데이터의 컨테이너를 탐색하는 데 사용됩니다. 또한 이 패턴은 반복 자체에서 각 요소에 적용된 비즈니스 로직을 분리하는 데 효과적입니다. 이터레이터 패턴을 사용하는 목적은 그림 2-5와 같이 각 요소에 접근하고 다음 요소로 이동하는 단일 프로토콜을 제공하는 것입니다.

▲ 그림 2-5 이터레이터는 for나 while 루프 같은 탐색 메커니즘을 추상화하므로 모든 타입의 데이터 처리가 정확히 동일한 방식으로 수행된다.

 

먼저 이 패턴을 간단히 설명하고 뒤에서 스트림에 적용하는 방법을 살펴보겠습니다. 자바스크립트 ES6(또는 ES2015) 표준이 이터레이터 프로토콜을 정의하며, 이 프로토콜을 통해 사용자는 반복 가능한 객체의 반복 동작을 정의하거나 사용자 지정을 할 수 있습니다. 가장 익숙한 반복 가능한 객체는 배열과 문자열입니다. ES6에서는 여기에 MapSet을 추가했습니다. RxJS에서는 스트림을 반복 가능한 데이터 타입으로 취급합니다.

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