반응형 프로그래밍 (Reactive Programming) 이란?
반응형 프로그래밍이란 데이터의 흐름과 변경사항의 전파에 중점을 둔 선언적 프로그래밍 패러다임이다.
-위키피디아-
프로그래밍에서 패러다임이란 내가 프로그램을 어떤 관점으로 바라보고 설계하느냐에 따라 여러가지 형태로 나뉘어 질 수 있다.
요즘에는 하나의 프로그램을 하나의 패러다임만이 아니라 여러 패러다임을 함께 섞어서 사용하려는 시도가 늘고 있다.
선언형 프로그래밍의 장점
따라서 일반적으로 명령형 프로그맹에 비해 선언형 프로그래밍이 가독성, 재사용성, 독립성, 유지보수성면에서 좋다.
관측 가능한 스트림을 통해 비동기 프로그래밍을 하기 위한 API
비동기 프로그래밍은 실행 순서와 데이터를 제어하기 어렵다. 하지만 프론트엔드는 비동기로 동작하는 부분이 많다. 그렇기 때문에 반응형 프로그래밍이 필요하다.
반응형 프로그래밍은 변경사항의 전파와 데이터의 흐름을 중심으로 선언형으로 작성하여 어려움을 해결한다. 여기서 변경사항의 전파와 데이터의 흐름을 이벤트(Event)로 표현할 수 있다.
Event + 선언형 = 반응형 프로그래밍
반응형 프로그래밍이란 이벤트를 선언형으로 작성하는 프로그래밍 패러다임
Rx에서는 이벤트의 종류를 Next, Error, Complete 3가지 type으로 정의해 상황을 처리할 수 있도록 정의했다.
이렇게 모든 상황을 커버할 수 있도록 이벤트를 General하게 만든 것을 Stream이라고 부른다.
따라서 위 인용에서 조금 수정하여 반응형 프로그래밍이란 스트림을 선언형으로 작성하는 프로그래밍 패러다임이라고 할 수 있다.
참고:
https://dongminyoon.tistory.com/45
https://kevinkim95-dev.tistory.com/10