Observable

내승현·2022년 5월 1일
0

Observable이란 ?

RxJava의 가장 핵심적인 요소는 Observable이다. Observable은 데이터 흐름에 맞게 알림을 보내 Observer가 데이터를 사용할 수 있도록 한다. 즉, Observable을 이용해 데이터를 회수하고 변환하는 메커니즘을 정의하고, Observer는 이를 구독해 데이터가 준비되면 이에 반응한다.

이 패턴을 Oberver Pattern이라고 하며, Reactive Programming은 이 Oberver Pattern에 기반을 둔다.

Observable은 Collections(List, ArrayList, …)를 사용할 때와 같은 방식으로 비동기 이벤트 스트림을 처리할 수 있다.
다만 Collections의 Iterable이 Push 방식이라면, Observable은 Iterable의 Pull 버전이다.
Iterable은 Consumer(데이터를 소비하는 곳)가 값을 Pull한 후 값이 도착할 때까지 기다리며 Thread를 차단한다면, Observable은 Thread를 차단하지 않고 값이 사용가능하면 Consumer에게 값을 Push한다.

정리하자면,

1. Observable이 데이터 스트림을 처리하고, 완료되면 데이터를 발행(emit)한다.
2. 데이터를 발행할 때마다 구독하고 있는 모든 Observer가 알림을 받는다.
3. Observer는 수신한 데이터를 가지고 어떠한 일을 한다.

profile
아토언니의 프론트엔드 개발자로서의 기록

0개의 댓글