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