비동기 스트림

👶 TypeScript

비동기 스트림 - 이벤트 방출기

이벤트 방출기 이벤트 방출기는 채널로 이벤트를 방출하고 채널에서 발생하는 이벤트를 리스닝하는 API를 제공합니다. interface Emitter { // 이벤트 방출 emit(channel: string, value: unknown): void // 이벤트가 방출되었을 때 어떤 작업을 수행 on(channel: string, f:(value: unknown)=>void): void } 이벤트 방출기는 JavaScript에서 자주 사용하는 디자인 패턴입니다. DOM 이벤트, 제이쿼리 이벤트, NodeJS의 EventEmitter 등을 사용하면서 이미 이벤트 방출기를 사용해 본 적 있으신 분도 계실 겁니다. 대부분의 언어에서 이런 형태의 이벤트 방출기는 안전하지 않습니다. value의 타입이 특정 chan..

👶 TypeScript

비동기 스트림

비동기 스트림 미래의 서로 다른 시점에 이용할 수 있게 될 값이 여러 개라면 어떻게 처리해야 할까요? 이런 상황은 생각보다 자주 발생합니다. 예를 들어 파일 시스템에서 파일의 일부를 읽는 상황, 티빙 서버로부터 비디오 스트리밍의 픽셀들을 받는 상황, 폼을 작성하느라 여러 키를 입력하는 상황, 연말 파티에 수십 명의 친구가 오는 상황 등이 모두 이에 해당한다고 볼 수 있습니다. 각각의 이벤트가 서로 관련 없어 보이지만, 비동기 스트림 관점에선 다들 비슷합니다. 이들은 모두 여러 개의 데이터로 이루어지며, 각각의 데이터를 미래의 어떤 시점에 받게 된다는 점에서 똑같습니다. 몇 가지 방법으로 이런 상황을 설계할 수 있는데, 가장 흔히 NodeJS의 Event Emitter 같은 이벤트 방출기(event emi..

개발자 린다씨
'비동기 스트림' 태그의 글 목록