RxJs 퀵스타트 도트체이닝 파이프 오퍼레이터 - ChoDragon9/posts GitHub Wiki

도트체이닝 -> 파이프 오퍼레이터

도트체이닝을 구성하기 위해서는 옵서버 객체가 모든 오퍼레이터를 가지고 있어야 한다. 따라서 Observable.prototype에 사용하는 모든 오퍼레이터가 추가된다. 이는 RxJS를 사용할 때 불필요한 오퍼레이터를 모두 가지고 있어야 하기 때문에 파일 사이즈를 증가시킨다.

즉, 프로젝트에서 rxjs의 맵 오퍼레이터만 사용하더라도 switchMap, filter ...등 RxJS가 제공하는 모든 오퍼레이터를 함께 가지고 있어야 한다. 하지만 pipe 오퍼레이터 방식을 사용하면 Webpack이나 rollup을 통해 트레 셰이킹을 자유롭게 할 수 있다. 뿐만 아니라 파이프 오퍼레이터는 함수형태로만 오퍼레이터가 만들어지기 때문에 Observable과의 결합도를 떨어뜨려 더욱더 쉽게 사용자 오퍼레이터를 작성할 수 있다.

이러한 이유로 RxJS 6.0에서는 도트체이닝을 버리고, 파이브 오퍼레이터 방식만 제공한다. 하지만 rxjs-compat 모듈을 추가로 사용 가능하다.

  • Tree Shaking : 사용하지 않는 모듈을 번들링할 때 제거하는 기능