반응형
비동기 스트림
미래의 서로 다른 시점에 이용할 수 있게 될 값이 여러 개라면 어떻게 처리해야 할까요?
이런 상황은 생각보다 자주 발생합니다.
예를 들어 파일 시스템에서 파일의 일부를 읽는 상황, 티빙 서버로부터 비디오 스트리밍의 픽셀들을 받는 상황, 폼을 작성하느라 여러 키를 입력하는 상황, 연말 파티에 수십 명의 친구가 오는 상황 등이 모두 이에 해당한다고 볼 수 있습니다.
각각의 이벤트가 서로 관련 없어 보이지만, 비동기 스트림 관점에선 다들 비슷합니다.
이들은 모두 여러 개의 데이터로 이루어지며, 각각의 데이터를 미래의 어떤 시점에 받게 된다는 점에서 똑같습니다.
몇 가지 방법으로 이런 상황을 설계할 수 있는데, 가장 흔히 NodeJS의 Event Emitter 같은 이벤트 방출기(event emitter)를 이용하거나 RxJS 같은 리액티브 프로그래밍 라이브러리를 이용합니다.
두 방식의 차이는 콜백과 프로미스의 관계와 비슷합니다.
이벤트는 빠르고 가벼운 반면 리액티브 프로그래밍 라이브러리는 더 강력하며 이벤트 스트림을 조합하고 연결하는 가능을 제공합니다.
리액티브 프로그래밍과 관련한 정보는 RxJS, MostJS, xtream 등 유명한 리액티브 프로그래밍 라이브러리에서 제공하는 문서를 참고하면 됩니다.
https://www.npmjs.com/package/rxjs
https://github.com/cujojs/most
https://www.npmjs.com/package/xstream
반응형
'👶 TypeScript' 카테고리의 다른 글
프론트엔드 프레임워크와 백엔드 프레임워크 (0) | 2023.01.26 |
---|---|
백엔드 프레임워크 (0) | 2023.01.25 |
JavaScript의 이벤트 루프 (0) | 2023.01.24 |
콜백(callback) 사용하기 (0) | 2023.01.24 |
async와 await (0) | 2023.01.23 |