Reactive programming
In computing, reactive programming is a programming paradigm oriented around data flows and the propagation of change. This means that it should be possible to express static or dynamic data flows with ease in the programming languages used, and that the underlying execution model will automatically propagate changes through the data flow.
데이터를 중심으로 사고하는 방식인데 같은 데이터 중심 시각의 OOP와 다른 점은 반응형 프로그래밍은 데이터의 흐름 즉 데이터 플로우(Data flow)에 더 관심을 갖는다. 반응형 프로그래밍 언어 중 가장 쉽게 볼 수 있는 것은 스프레드시트 프로그램인 엑셀이 있다. 프로그래밍 언어는 모름지기 텍스트 편집기로 작성하는 거라고 따지고 싶다면 RxJS라고 하는 게 있다. 다른 말로는 액터 모델 (Actor model)이라고도 한다.
리액티브 프로그래밍이란
리액티브 프로그래밍이란 이벤트나 배열 같은 데이터 스트림을 비동기로 처리해 변화에 유연하게 반응하는 프로그래밍 패러다임 이다.
외부와 통신하는 방식은 Pull 과 Push 시나리오가 있을 수 있다.
- Pull 시나리오
- 외부에서 명령하여 응답받고 처리한다.
- 데이터를 가지고 오기 위해서는 계속 호출해야 한다.
- Push 시나리오
- 외부에서 명령하고 기다리지 않고, 응답이 오면 그때 반응하여 처리한다
- 데이터를 가지고 오기 위해서 구독해야 한다.
Reactive Programming 은 Push 시나리오를 채택하고 있다.