더북(TheBook)

1.4.2 RxJS 프로젝트

RxJS는 앞에서 설명한 비동기 프로그래밍에서 나타나는 수많은 문제를 관리하고자 들인 노력의 산물이며, 매튜 포드위소키(Matthew Podwysocki)가 마이크로소프트에서 만든 Rx.Net로부터 포팅한 오픈 소스 프레임워크입니다. RxJS는 넷플릭스(Netflix)에서 벤 레시(Ben Lesh)가 속한 커뮤니티 주도의 프로젝트로 발전했고, 마이크로소프트에 의해 RxJS 5까지 왔습니다.7 이 버전은 완전히 새로운 아키텍처와 성능에 초점을 맞추고 API 외형을 극도로 단순화했습니다. RxJS는 단순한 배열처럼 모든 동기 데이터 소스를 처리하는 방법과 비슷하게 비동기 데이터를 처리하고자 관용적인 추상화를 제공하므로 다른 자바스크립트 방법론보다 몇몇 이점이 있습니다. 자세한 설치 정보는 부록 A에서 볼 수 있습니다.

ReactiveX(RX) 프로젝트8의 웹 사이트를 방문해 보면 ‘옵저버블 스트림을 사용하는 비동기 프로그래밍용 API’라는 정의를 볼 수 있습니다. 이 장의 마지막 부분에서는 해당 정의가 의미하는 바를 정확하게 이해할 수 있습니다. 이 책에서는 해당 개념을 쉽게 설명하고 제시된 문제들을 해결하는 올바른 방향을 제시하려고 합니다.

RxJS에서 스트림 측면에서 생각하기가 어떤 모습인지 좀 더 구체적으로 살펴봅시다. 그림 1- 9는 데이터를 스트림(또는 파이프라인)에서 어떻게 다루는지 간단히 보여줍니다.

▲ 그림 1-9 일반적인 데이터 처리 파이프라인은 비동기 데이터의 연속된 스트림을 처리하여 이벤트 생산자(예를 들어 마우스를 클릭하고 있는 사용자)에서 소비자(예를 들어 클릭에 반응하는 코드)로 이동하게 한다. 파이프라인은 데이터가 소비자들에게 전달되어 사용되기 전에 미리 데이터를 처리한다.

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