Flux는 0개 ~ N개의 데이터를 비동기 시퀀스로 표현하고 Mono는 0개 ~ 1개의 데이터를 비동기 시퀀스로 표현합니다. 즉, Flux는 스트림을 표현하는 타입이고 Mono는 단일 결과(혹은 없는 결과)를 표현하는 타입입니다.

그런데 Flux가 0개 ~ N개를 표현한다면 Flux의 데이터 표현 범위는 Mono의 범위를 포함하는데 왜 Flux와 Mono로 나눴을까요?

Mono가 필요한 이유

  1. 의도를 명확히 표현하기 위해
  2. API 일관성 및 조합의 유연성
  3. 불필요한 오버헤드 방지

결론적으로, Mono를 통해 단일 값에 대한 의도를 명확하게 표현할 수 있고 Flux의 불필요한 오버헤드를 방지할 수 있습니다.