Reactive Programming
Reactive Programming은 무엇일까
배경
: 비동기 처리를 지원한다.
동기 서버
- 멀티쓰레드로 쓰레드 하나당 하나의 요청이 수행이 된다.
- 요청이 완료되기까지 각각의 쓰레드는 대기하게 된다.
비동기 서버
- 요청이 완료되기까지 대기를 하는 것이 아니라
- 이벤트 루프르 만들어서 요청 완료 시간을 기억한다.
- 그 후 다른 작업을 하고 요청이 완료됫는 지 확인을 한다.
비동기 서버
- 비동기로 요청을 받을 수 있지만
- 기존 http 의 특성상 stateless이다. 따라서 응답을 해줄 수 없기 때문에
- 응답을 끊지 않고(stream) 유지해서 해결한다. = 지속적인 응답 = stream = flux
SSE 프로토콜
- 요청은 끊고 응답은 유지해놓는 통신 규약
Flux 와 Mono
1) Flux : 응답을 유지한 채로 1개 이상을 응답을 한다. 2) Mono : 응답을 유지한 채로 0개에서 1개의 응답을 한다.