본문 바로가기

프로그래밍/RxJava

[RxJava] 데이터 발행자와 수신자

지금까지 Observable을 살펴보면서 다양한 용어를 새롭게 배웠다.

처음 공부하기 때문에 좀 헷갈려서 간단한 기준으로 분류하려고한다.

 

크게 데이터를 발행하는 쪽데이터를 수신하는 쪽으로 나눌 수 있다.

데이터 발행자(data source) 데이터 수신자
Observable 구독자(Subscriber)
Single 옵서버(Observer)
Maybe 소비자(Consumer)
Subject  
Completable  

데이터 발행자는 클래스의 개념이기에 명확하게 구분된다.

하지만, 데이터 수신자는 몇 가지 용어를 번갈아 가면서 사용하므로 개념이 명확히 구분이 되지 않는다.

 

1. 구독자

- RxJava에서 Observable을 연결할 때는 subscribe() 함수를 호출한다.

이 과정이 구독이므로 구독자가 된다.

 

2. 옵서버

- RxJava는 옵서버 패턴을 구현한다.

따라서 데이터 발신자는 Observable이 되고 데이터 수신자를 옵서버라고 할 수 있다.

 

3. 소비자

- RxJava 1.x에서는 subscribe() 함수를 호출할 때 Subscriber 클래스를 인자로 넘겼지만

RxJava 2.x에서는 모두 함수형 인터페이스인 Consumer를 인자로 넘긴다.

 

간단하게 생각하면 어떤 용어든지 같은 의미로 사용된다.

즉, 데이터 수신자를 크게 의식하지 않고 분류하지 않아도 될거 같다.