Page 13 -
P. 13

3
                    이것뿐이라면 상품가격 변동을 감지하는 리스너(listener) 를 이용해 자동으로 부가가치세를 계산
                    하는 프로그램과 어떤 차이가 있는지 의문이 생길 수 있습니다. 이때 어떤 프로그램이 리액티브
                    프로그래밍인지는 무엇이 데이터 처리를 수행하는가로 가릴 수 있습니다.                                            1

                    예를 들어, 상품가격이 변경될 때 리스너가 반응하면서 상품가격에 해당하는 부가가치세를 다시
                    계산해 표시하는 것은 리액티브 프로그래밍이라고 할 수 없습니다.                                               RxJava의 기본

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

                         상품가격:

                                                       상품가격이 부가가치세 금액을 바꾼다고 생각한다
                     부가가치세 세율:           8%

                        부가가치세:



                    이를 리스너가 반응하면서 부가가치세 항목에 새로운 데이터가 전달되고 부가가치세 항목에서 계
                    산 프로그램을 실행해 결과를 부가가치세로 표시한다고 생각하면 이는 리액티브 프로그래밍이라
                    고 할 수 있습니다.

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

                         상품가격:
                                                            상품가격 데이터를 전달만 한다

                     부가가치세 세율:            8%       데이터

                        부가가치세:

                                                 부가가치세 항목이 새로운 데이터를 받아
                                                 부가가치세 값을 변경한다고 생각한다


                    그러므로 이번 예제와 같은 간단한 프로그램이라면 전자나 후자나 코드만 봤을 때 같은 결과를 예
                    상할 수 있습니다. 하지만 어떤 프로그램이 어떤 일에 책임이 있는지는 확연히 차이가 납니다. 처
                    리가 복잡해져 상품가격 변경에 따라 바꿀 항목이 늘어나면 어떤 프로그램이 무엇을 처리해야 할

                    지에 대한 비중이 바뀌고 코드도 달라집니다.
                    리액티브 프로그래밍에서 데이터를 생산하는 측(이 예에서는 상품가격)은 데이터를 전달하는 것

                    까지 책임집니다. 그러므로 데이터를 생산하는 측은 데이터를 소비하는 측(이 예에서는 부가가치


                    3   역주  리스너란 이벤트 발생 시 대응하는 행위(action)를 실행하는 객체, 메서드, 인터페이스를 말합니다.

                                                                                                  021





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