WebClient를 사용하다 Mono와 Flux라는 것을 접하게 되었습니다.
- Spring 5에 추가된 Reactive-stack의 웹 프레임워크
- 클라이언트와 서버에서 리액티브 애플리케이션 개발을 위한 논블로킹 리액티브 스트림을 지원
- Spring WebFlux 에서 사용하는 reactive library가 Reactor이고 Reactor의 주요 객체가 Mono와 Flux이다.
- Mono : 0 ~ 1 개의 데이터 처리
- Flux : 0 ~ N 개의 데이터 처리
프로젝트에 사용되었던 WebClient의 예로 들어 보겠습니다.
1.그림과 같이 ChatDTO 타입으로 리턴 받는 Mono 객체가 있습니다.
2.이떄 ChatDTO에서 설정된 user 객체를 @Getter 적용을 했는데도 Get하는데 오류가 납니다.
3.그 이유는 Mono가 담고있는 갹체를 일반적인 get으로는 꺼낼수가 없습니다.
4.꺼내기위해선 .block()함수를 사용하면 해결됩니다.
그림과 같이 객체를 꺼내서 원하는 대로 다룰수 있게 됩니다!