Spring WebFlux (Reactive)
Reactive programming with WebFlux, Mono and Flux, functional routers, backpressure, reactive streams
1What is the fundamental principle of reactive programming?
What is the fundamental principle of reactive programming?
답변
Reactive programming is based on asynchronous data streams and automatic change propagation. Unlike imperative programming where data is actively requested (pull), reactive pushes data to subscribers (push). This enables building non-blocking applications that are resilient to load changes.
2What is the main difference between Mono and Flux in Project Reactor?
What is the main difference between Mono and Flux in Project Reactor?
답변
Mono is a reactive publisher that emits 0 or 1 element, ideal for operations returning a single value (like findById). Flux emits 0 to N elements, suitable for collections and streams (like findAll). This distinction optimizes performance and code semantics by clearly expressing cardinality expectations.
3When should Mono<T> be used instead of Flux<T>?
When should Mono<T> be used instead of Flux<T>?
답변
Use Mono when the operation returns 0 or 1 result maximum, such as fetching a user by ID, saving an entity, or making an HTTP request that returns a single object. This communicates code intent and enables internal optimizations. Flux would be inappropriate as it implies a potentially large collection.
What is the typical use case for Flux<T>?
What is the fundamental difference between Spring WebFlux and Spring MVC?
+22 면접 질문