Page 19 -
P. 19

그림 1-6 Publisher가 Subscriber에 통지하는 과정

                                                      받을 데이터 개수 요청
                                  스레드 1
                                                                                                      1
                                                                               스레드 2
                               Publisher(생산자)
                                                                            Subscriber(소비자)           RxJava의 기본
                                                          데이터
                                생산 처리 작업
                                                     데이터      데이터            소비 처리 작업




                                                      요청한 만큼
                                                      데이터 통지
                      생산 속도가 빠름
                                                                                   처리 속도가 느림



                    지금까지의 내용을 정리하면 Publisher와 Subscriber는 다음과 같은 4개 프로토콜로 데이터를
                    통지합니다.

                       표 1-2 Reactive Streams가 제공하는 프로토콜

                     프로토콜                      설명
                     onSubscribe               데이터 통지가 준비됐음을 통지
                     onNext                    데이터 통지
                     onError                   에러(이상 종료) 통지
                     onComplete                완료(정상 종료) 통지



                    다음으로 Reactive Streams가 제공하는 인터페이스를 살펴보겠습니다. Reactive Streams는
                    다음 표와 같이 인터페이스 4개를 제공합니다.

                       표 1-3 Reactive Streams의 인터페이스

                     인터페이스                     설명
                     Publisher                 데이터를 생성하고 통지하는 인터페이스
                     Subscriber                통지된 데이터를 전달받아 처리하는 인터페이스
                     Subscription              데이터 개수를 요청하고 구독을 해지하는 인터페이스

                     Processor                 Publisher와 Subscriber의 기능이 모두 있는 인터페이스



                                                                                                  027





     RxJava 리액티브 프로그래밍(본문)최종.indd   27                                                      2019-03-26   오전 11:26:30
   14   15   16   17   18   19   20   21   22   23   24