해당 포스팅은 토비님의 스프링 리액티브 프로그램밍 라이브 코딩 동영상을 기반으로 내용을 바탕으로 정리한 글입니다.
Reactive Programming 이란?
- 외부 이벤트나 데이터가 발생하면 거기에 대응하는 방식으로 진행되는 프로그래밍
Reactive Programming 주요 특징
- 등장배경
- observer패턴의 단점을 보완하기 위해 나옴
- Duality (쌍대성)
- 똑같은 기능이나 반대방식 예) Iterable <---> Observable
- iterable은 pull 방식 (data method(void))
- obserable은 push 방식 (void method(data))
- Observer 패턴
- source가 event/data를 observer에게 던지는 방식
- 장점
- 여러 관심있는 observer에게 한꺼번에 broadcast하기 쉽다.
- 다른 Thread에서 이벤트나 데이터에 대한 처리가 iterator방식보다 쉽다.
- 단점
- Reactive Streams
- JVM 진영에서 만든 표준
- 주요 component
- Publisher(데이터 provider), Subscriber(데이터 사용측), Subscription()
- 두가지 축(observable,scheduler)
- 스프링 reactive web또한 Reactive streams 기반
- 예제소스
https://github.com/JuJinPark/Reactive-Spring-Study/tree/main/src/main/java/com/example/reactivespringstudy/lesson1