[typescript] RxJS 옵서버

RxJS(Reactive Extensions for JavaScript)는 옵서버 패턴을 사용하여 비동기 데이터 스트림을 다룰 수 있는 라이브러리이다. 옵서버는 데이터 스트림의 생산과 소비를 추상화하여, 콜백 함수 대신 옵서버 패턴을 통해 데이터 스트림을 처리할 수 있게 한다.

옵서버와 옵저버블

RxJS에서 옵서버는 데이터 스트림을 관찰하고 이에 반응할 수 있는 객체를 말한다. 이때 옵서버는 next, error, complete와 같은 메서드를 제공받아 옵저버블에서 보낸 데이터나 에러, 완료 신호를 처리할 수 있다.

옵저버블은 데이터를 생산하는 대상이다. 이 데이터는 비동기적으로 흐르는 데이터 스트림이 될 수 있다. RxJS에서는 주로 Observable 클래스를 이용해 옵저버블을 생성하고, subscribe 메서드를 사용하여 옵서버를 등록한다.

옵서버블과 옵서버 사용 예시

아래의 코드는 RxJS를 사용하여 간단한 옵서버블과 옵서버를 생성하고 사용하는 예시이다.

import { Observable } from 'rxjs';

// 옵저버블 생성
const observable = new Observable(subscriber => {
  subscriber.next('Hello');
  subscriber.next('World');
  setTimeout(() => {
    subscriber.next('RxJS');
    subscriber.complete();
  }, 2000);
});

// 옵서버 등록
observable.subscribe({
  next: data => console.log(data),
  error: err => console.error(err),
  complete: () => console.log('Done')
});

위 코드에서는 Observable 클래스를 이용하여 옵저버블을 생성하고, subscribe 메서드를 사용하여 옵서버를 등록한다. 옵저버블은 데이터를 두 번 보내고 나서 2초 후에 완료를 알리는 예시이다.

이처럼 RxJS의 옵서버 패턴을 사용하면 비동기 데이터 스트림을 효과적으로 관리하고 다룰 수 있다.

정리

RxJS의 옵서버 패턴은 데이터 스트림을 다루는 데 유용한 방법이다. 옵서버블과 옵서버를 적절히 활용하면 비동기적인 데이터 스트림을 쉽게 다룰 수 있으며, 이를 통해 코드의 가독성과 유지보수성이 향상된다.

이렇듯 RxJS의 옵서버 패턴은 현대의 프론트엔드 및 백엔드 애플리케이션 개발에서 매우 유용한 개념이다.

참고 문헌