Page 11 -
P. 11

1   just 메서드 인자로 전달된 데이터를 통지하는 생산자(Flowable)를 생성한다.
                     2   생산자가 데이터를 통지하면 소비자(이 예제에서 람다식으로 구현된 함수형 인터페이스)가 받은 데이터를 출력한다.
                                                                                                      1
                     실행 결과
                      Hello
                      World                                                                           RxJava의 기본


                    이처럼 데이터를 통지하는 생산자를 생성하고 통지한 데이터를 소비자가 받아 처리하는 방식이
                    RxJava의 기본 처리 방식입니다.




                    1.1.2 리액티브 프로그래밍이란


                    리액티브 프로그래밍은 데이터가 통지될 때마다 관련 프로그램이 반응(reaction)해 데이터를 처리

                    하는 프로그래밍 방식입니다.
                    예를 들어, GPS 위치 정보가 변경될 때의 데이터 전송 흐름을 상상해보면 이해하기 쉽습니다. 이

                    동해 위치 정보가 변경될 때마다 데이터를 전송하고 이동을 멈추면 데이터 전송도 중지하는 것처
                    럼 생성되는 데이터를 한 번에 보내지 않고 각각의 데이터가 생성될 때마다 순서대로 보냅니다.
                    이러한 데이터 흐름을 데이터 스트림(data stream)이라고 합니다. 이것은 이미 생성된 데이터 집합
                    인 리스트(list) 같은 컬렉션(collection)과는 다르게 앞으로 발생할 가능성이 있는 데이터까지도 포

                    함하는 데이터 집합체입니다.
                    또한, 이 데이터 스트림은 이벤트와도 관련이 있어서 문자열을 입력하는 행위는 입력한 데이터가

                    순서대로 생성되는 것으로 생각할 수 있습니다. 예를 들어 ‘abc’라고 입력하면 입력 이벤트가 발
                    생할 때 다음과 같은 데이터가 생성된다고 생각할 수 있습니다.

                    1. [a]

                    2. [ab]
                    3. [abc]


                    마찬가지로 버튼을 누르는 행위에 대한 구체적인 데이터가 없더라도 ‘버튼을 누르다’라는 이벤트
                    데이터가 생성된다고 생각할 수 있습니다. 버튼을 여러 번 누른다면 누른 횟수만큼 ‘버튼을 누르
                    다’라는 이벤트 데이터가 발생합니다. 즉, 이벤트도 발생할 때마다 데이터를 전송하는 데이터 스

                    트림으로 다룰 수 있습니다.


                                                                                                  019





     RxJava 리액티브 프로그래밍(본문)최종.indd   19                                                      2019-03-26   오전 11:26:30
   6   7   8   9   10   11   12   13   14   15   16