Page 12 -
P. 12

리액티브 프로그래밍은 이러한 데이터 스트림으로 데이터를 전달받은 프로그램이 그때마다 적절
               히 처리할 수 있게 구성됐습니다. 다시 말해 프로그램이 필요한 데이터를 직접 가져와 처리하는
               것이 아니라 보내온 데이터를 받은 시점에 반응해 이를 처리하는 프로그램을 만드는 것이 리액티

               브 프로그래밍입니다.
               예를 들어, 상품가격과 부가가치세 세율로 부가가치세를 계산하는 프로그램이 있다고 해봅시다.
               리액티브 프로그래밍이 아니라면 상품가격과 부가가치세 세율을 얻는 것만으로는 어떤 일도 일어

               나지 않습니다. 값을 얻은 후에 ‘부가가치세를 계산한다’라는 행위(action)가 이루어져야 비로소 부
               가가치세를 계산합니다. 또한, 부가가치세를 계산한 후 상품가격이 변경되더라도 다시 계산 처리
               행위가 이루어지지 않는 한 부가가치세는 변경되지 않습니다.

                  그림 1-1 리액티브 프로그래밍이 아닐 때

                                                          2. 버튼을 누른다
                                 상품가격:
                      1. 입력한다
                                                           세금계산
                            부가가치세 세율:             8%

                상품가격이 바뀌어도      부가가치세:                            3. 계산 결과를 표시한다
                세금계산 버튼을 누르지
                않으면 부가가치세가
                바뀌지 않는다


               하지만 이를 리액티브 프로그래밍으로 구현하면 상품가격이 변경될 때마다 부가가치세를 계산하는

               프로그램에 변경된 가격이 전달되고, 프로그램이 다시 계산해 이 계산 결과를 부가가치세에 반영합
               니다. 따라서 상품가격이 바뀔 때마다 상품가격이 통지되고 부가가치세가 자동으로 계산됩니다.

                  그림 1-2 리액티브 프로그래밍일 때

                              상품가격:
                                                          2. 입력한 내용을 통지한다
                    1. 입력한다
                         부가가치세 세율:             8%


                             부가가치세:
                상품가격이 바뀔 때마다
                부가가치세가 자동으로                            3. 통지를 받아 계산하고
                계산된다                                   결과를 표시한다









         020





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