반응형
RxJS (Reactive Extensions for JavaScript)란?
RxJS는 Angular에 내장되어 있는 라이브러리로, JavaScript에서 리액티브 프로그래밍을 지원하기 위해 만들어졌다. 리액티브 프로그래밍이란 이벤트나 배열 같은 데이터 스트림과 전파를 중심으로 하여 변화에 유연하게 반응하는 프로그래밍 패러다임을 말한다. RxJS는 Observable 시퀀스를 이용하여 비동기와 이벤트 기반의 프로그래밍을 구현할 수 있게 해준다.
RxJS의 주요 키워드
Observable
RxJS는 Observer 패턴을 적용한 Observable 이라는 객체를 중심으로 동작한다. Observable은 향후 얻게될 값이나 이벤트를 호출할 수 있는 콜렉션에 대한 아이디어를 표현한다.
Observer
Observable이 전달한 값을 어떻게 받을지에 대한 정보가 들어있는 콜백 모음이다. 3가지 메소드가 있다.
- next: Observable 구독자에게 데이터를 전달한다.
- complete: Observable 구독자에게 완료 되었음을 알린다. next는 더 이상 데이터를 전달하지 않는다.
- error: Observable 구독자에게 에러를 전달한다. 이후에 next 및 complete 이벤트가 발생하지 않는다.
Subscription
Observable의 실행을 나타낸다. 주로 실행을 취소하는데 가장 유용하다.
Operators
순수 함수이며 map, filter, concat, reduce 같은 기능을 다루면서 함수형 프로그래밍을 가능케 한다.
Schedulers
동시성(concurrenct)을 컨트롤하기 위해 중앙화된 디스패처로, 이벤트 루프에 어떤 순서로 처리될지로 구현되었다. 3가지 종류가 있다.
- AsyncScheduler
setTimeout과 비슷하다.
asyncScheduler.schedule(() => console.log(‘async’), 2000); - AsapScheduler
asapScheduler.schedule(() => console.log(‘asap’));
다음 이벤트 루프에 실행 - QueueScheduler
scheduler에 전달된 state를 처리한다.
반응형
'웹_프론트엔드 > 로드맵 챌린지' 카테고리의 다른 글
프레임워크 - Vue.js (0) | 2022.02.16 |
---|---|
상태 관리 프레임워크 - NgRx란? (0) | 2022.02.15 |
프레임워크 - AngularJS와 Angular 2 (0) | 2022.02.11 |
상태 관리 라이브러리 - MobX란? (0) | 2022.02.10 |
상태 관리 라이브러리 - Redux 리덕스란? (0) | 2022.02.09 |