Spring Boot

Spring WebFlux (리액티브)

WebFlux, Mono와 Flux, 함수형 라우터, backpressure, reactive streams를 활용한 리액티브 프로그래밍

25 면접 질문·
Mid-Level
1

리액티브 프로그래밍의 기본 원칙은 무엇인가요?

답변

리액티브 프로그래밍은 비동기 데이터 스트림과 변경 사항의 자동 전파를 기반으로 합니다. 데이터를 능동적으로 요청하는(pull) 명령형 프로그래밍과 달리, 리액티브는 데이터를 구독자에게 푸시합니다(push). 이를 통해 부하 변화에 탄력적인 논블로킹 애플리케이션을 구축할 수 있습니다.

2

Project Reactor에서 Mono와 Flux의 주요 차이점은 무엇인가요?

답변

Mono는 0개 또는 1개의 요소를 발행하는 리액티브 publisher로, 단일 값을 반환하는 작업(findById 등)에 적합합니다. Flux는 0개에서 N개의 요소를 발행하며 컬렉션과 스트림(findAll 등)에 적합합니다. 이 구분은 카디널리티에 대한 기대를 명확히 표현함으로써 성능과 코드 의미론을 최적화합니다.

3

Flux<T> 대신 Mono<T>를 사용해야 하는 경우는 언제인가요?

답변

Mono는 ID로 사용자를 조회하거나, 엔티티를 저장하거나, 단일 객체를 반환하는 HTTP 요청을 하는 등 작업이 최대 0개 또는 1개의 결과를 반환할 때 사용합니다. 이는 코드의 의도를 전달하고 내부 최적화를 가능하게 합니다. Flux는 잠재적으로 큰 컬렉션을 암시하므로 적합하지 않습니다.

4

Flux<T>의 일반적인 사용 사례는 무엇인가요?

5

Spring WebFlux와 Spring MVC의 근본적인 차이점은 무엇인가요?

+22 면접 질문

다음 면접을 위해 Spring Boot을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기