본문 바로가기
개발

RxJS를 배워 보았다. 용어 정리

by 보그몽 2020. 6. 23.

포스팅 타이틀

RxJS는 Reactive Programming에 기반하여 만들어진, 비동기 어플리케이션의 작성에 있어서의 솔루션이다.

Functional 프로그래밍과 Flow기반의 Reactive 프로그래밍을 기반으로 하여 러닝 커브가 다소 높다고 할 수 있다.

아래는 비동기 어플리케이션의 작성에 사용하는 솔루션들이 있다.

  • Callback
  • Promise
  • Generator
  • async/await
  • RxJS

 

*여기서 Reactive Programming이란,

  • 비동기적 데이터 흐름을 다루는 프로그래밍이다.
  • Functional Programming을 이용하여 여러 데이터 흐름을 합치고, 생성하고, 걸러낸다.
  • 상태를 저장하지 않고 순수 함수를 사용해 로직을 구성한다.
  • 즉, 상태를 변경하여 결과가 달라지는 Side-Effect를 최소화할수있다는 것이다.

 

 

RxJS의 구성 요소로는 크게 Observable, Observer, Operator, Scheduler 가 있다.

 

Observable

시퀀스와 표현력있는 쿼리 연산자를 사용하는 비동기적이고 이벤트 베이스의 프로그램 구성을 위한 라이브러리 집합

특정 객체를 관찰하는 Observer에게 여러 이벤트나 값을 보내는 역할을 한다.

특정 개체를 관찰하는 Observer에게 여러 이벤트나 값을 보낸다.

생성 → 구독 → 실행 → 구독 해제 의 라이프사이클을 가진다.

Observable.create((observer) => {
	try{
		observer.next('item');
	} catch(e) {
			observer.errer(e)
	} finally {
		observer.complete();
	}
}).subscribe(
	(x)=>console.log(x),
	(err) => console.error(err),
	() => console.log("complele")
)

 

Observer

Observable에 의해 전달받은 value를 소비하는 Consumer이다.

next, error, complete이 있다.

Observer는 Observable을 구독한다.

const observer = {
	next: x => console.log("asdfasdfas")
	error: err => console.error(err)
	complete:()=> console.log("Observer got a complete notification")
} 


observable.subscribe(observer)

 

 

Operator

Operator은 아래와 같이 두개의 종류로 나눌 수 있다.

  • Observerable을 생성할 수 있는 operator
    • interval, from, fromEvents, of ...
  • Pipeable, Observable을 input으로 받아 Observable을 Return하는 Operator (Pure하다)
    • map, first, scan ...

댓글