Observable
data publisher. Observer에게 데이터를 전달하는 주체. 데이터 전달 방식에 따라 Cold Observable과 Hot Observable로 나뉜다. Cold Observable은 subscribe이 발생하는 시점에 데이터를 발행하며 Cold Observable을 subscribe하는 Observer는 subscribe한 시점에 관계 없이 같은 데이터를 받는다. Hot Observable은 subscribe이 발생하지 않아도 데이터를 발행한다. Cold Observable과 달리 Hot Observable을 subscribe하는 Observer는 subscribe 시점에 따라 다른 데이터를 받을 수 있다.
Observer
data consumer. 3개의 함수로 정의되는 단순한 객체. 객체를 정의하는 함수는 next, error, complete 이다. next는 Observable이 데이터를 발행할 때 호출한다. error는 Observable에서 오류가 발생했을 때 호출된다. complete은 Observable이 완료되면 호출된다.
Subscriber
처음에는 Observer == Subscriber 라고 생각했다. Observer를 이용해서 Observable을 subscribe하는 객체 정도로 이해하면 될 것같다.
Operator
Observable에서 발행하는 데이터 스트림을 생성/변형/필터링/조합등을 하기 위한 사용하는 rx에 정의된 연산자를 말한다.
Higher-Order Observable/Operator
Observable에서 발행하는 데이터가 값이 아닌 다른 Observable인 경우 Observable을 발행하는 Observable을 Higher-Order Observable이라고 한다. 마찬가지로 연산의 결과가 Observable은 Operator를 Higher-Order Operator라고 한다. 대표적은 Higher-Order Operator로 conscatMap, mergeMap, switchMap등이 있다.