Page 17 -
P. 17

1.2         Reactive Streams                                  RxJava



                                                                                                      1



                    다양한 리액티브 프로그래밍 라이브러리의 표준 사양인 Reactive Streams를 살펴보겠습니다.                           RxJava의 기본




                    1.2.1 Reactive Streams란


                    RxJava 버전이 1.x에서 2.x로 올라간 배경에는 Reactive Streams가 있습니다. Reactive
                    Streams란 라이브러리나 프레임워크에 상관없이 데이터 스트림을 비동기로 다룰 수 있는 공통
                    메커니즘으로, 이 메커니즘을 편리하게 사용할 수 있는 인터페이스를 제공합니다.


                       ●   Reactive Streams http://www.reactive-streams.org

                    즉, Reactive Streams는 인터페이스만 제공하고 구현은 각 라이브러리와 프레임워크에서 합니다.

                       ●   Reactive Streams Specification for the JVM https://github.com/reactive-streams/
                         reactive-streams-jvm




                    1.2.2 Reactive Streams의 구성


                    Reactive Streams는 데이터를 만들어 통지하는 Publisher(생산자)와 통지된 데이터를 받아 처

                    리하는 Subscriber(소비자)로 구성됩니다. Subscriber가 Publisher를 구독(subscribe)하면
                    Publisher가 통지한 데이터를 Subscriber가 받을 수 있습니다.

                       ●   Publisher 데이터를 통지하는 생산자

                       ●   Subscriber 데이터를 받아 처리하는 소비자

                    그럼 Publisher가 데이터를 통지한 후 Subscriber가 이 데이터를 받을 때까지의 데이터 흐름을
                    간단하게 살펴봅시다.

                    먼저 Publisher는 통지 준비가 끝나면 이를 Subscriber에 통지(onSubscribe)합니다. 해당 통지

                    를 받은 Subscriber는 받고자 하는 데이터 개수를 요청합니다. 이때 Subscriber가 자신이 통지
                    받을 데이터 개수를 요청하지 않으면 Publisher는 통지해야 할 데이터 개수 요청을 기다리게 되

                                                                                                  025





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