변화의 전파와 데이터의 흐름과 관련된 선언적 프로그래밍이다.
데이터가 생성 및 전달 되면 이에 반응하여 데이터를 처리하는 방식의 프로그래밍 모델.
프로그램에서 필요한 데이터를 직접 가지고와서 처리를 하는 방식(pull)이 아닌 데이터를 받는 시점에 처리하는 방식(push)
이를 구현하기 위해서 데이터를 만들어내는 **생성자(Publisher)**와 이를 소비하게 되는 **소비자(Subscriber)**로 역할을 나눠 처리하는 프로세스를 가지게 된다.
이처럼 역할이 명확하게 나눠져 있어 비동기 구현이 쉽다.
[ ] 선언적 프로그래밍이란? 실행할 동작을 구체적으로 명시하는 명령형 프로그래밍과 달리 단순히 목표를 선언하는 방식을 가리킨다
[ ] Reactive Stream이란?
데이터 스트림을 비동기 방식으로 처리할 수 있는 공통 메커니즘 또는 인터페이스. 인터페이스만 제공하고 상세 구현은 라이브러리 또는 프레임워크에서 구현