Spring, chatting 프로그램 만들기, Reactive란?
Reactive
- 막힘없이 흘러다니는 data(event)를 통해 사용자에게 자연스러운 응답을 주고
규모 탄력적으로 리소스를 사용하며 실패에 있어서 유연하게 대처한다
- 모든 지점에서 블럭 되지 않게 하자
- oop와 같은 패러다임
- 모든 것을 비동기적인 data의 stream으로 간주하고, Observer 패턴을 활용하여 비동기 이벤트를 처리한다
Reactive의 4가지 주요 속성
- Responsive : 사용자에 대한 반응(React)
- 사용자가 정해진 시간안에 반드시 결과를 받아 볼 수 있게 하는것
- Scalable(Elastic) : 부하(road)에 대한 반응(React)
- 수평확장을 의미. AWS, Docker를 이용할 수 있다
- Resillent : 실패상황에 대한 반응(React)
- Event-driven : 이벤트에 대한 반응(React)
Reactive Porgramming
Rx : Reactive Extension
- Reactive programming != RX
- RX는 Reactive Programming을 가능하게 해주는 라이브러리
- 옵저버 패턴을 확장
- RxJava : Java에서 Reactive Porgamming을 가능하게 해주는 라이브러리
참고