Spring WebFlux (리액티브)
WebFlux, Mono와 Flux, 함수형 라우터, backpressure, reactive streams를 활용한 리액티브 프로그래밍
25 면접 질문·
Mid-Level
1리액티브 프로그래밍의 기본 원칙은 무엇인가요?
1
리액티브 프로그래밍의 기본 원칙은 무엇인가요?
답변
리액티브 프로그래밍은 비동기 데이터 스트림과 변경 사항의 자동 전파를 기반으로 합니다. 데이터를 능동적으로 요청하는(pull) 명령형 프로그래밍과 달리, 리액티브는 데이터를 구독자에게 푸시합니다(push). 이를 통해 부하 변화에 탄력적인 논블로킹 애플리케이션을 구축할 수 있습니다.
2Project Reactor에서 Mono와 Flux의 주요 차이점은 무엇인가요?
2
Project Reactor에서 Mono와 Flux의 주요 차이점은 무엇인가요?
답변
Mono는 0개 또는 1개의 요소를 발행하는 리액티브 publisher로, 단일 값을 반환하는 작업(findById 등)에 적합합니다. Flux는 0개에서 N개의 요소를 발행하며 컬렉션과 스트림(findAll 등)에 적합합니다. 이 구분은 카디널리티에 대한 기대를 명확히 표현함으로써 성능과 코드 의미론을 최적화합니다.
3Flux<T> 대신 Mono<T>를 사용해야 하는 경우는 언제인가요?
3
Flux<T> 대신 Mono<T>를 사용해야 하는 경우는 언제인가요?
답변
Mono는 ID로 사용자를 조회하거나, 엔티티를 저장하거나, 단일 객체를 반환하는 HTTP 요청을 하는 등 작업이 최대 0개 또는 1개의 결과를 반환할 때 사용합니다. 이는 코드의 의도를 전달하고 내부 최적화를 가능하게 합니다. Flux는 잠재적으로 큰 컬렉션을 암시하므로 적합하지 않습니다.
4
Flux<T>의 일반적인 사용 사례는 무엇인가요?
5
Spring WebFlux와 Spring MVC의 근본적인 차이점은 무엇인가요?
+22 면접 질문
기타 Spring Boot 면접 주제
Spring Core - IoC & DI
Junior
22개 질문Spring Boot Auto-Configuration
Junior
20개 질문Spring Boot Starters
Junior
18개 질문Application Properties & YAML
Junior
16개 질문SLF4J 및 Logback을 사용한 로깅
Junior
20개 질문Spring Boot DevTools
Junior
15개 질문Spring MVC Basics
Mid-Level
20개 질문Spring REST Controllers
Mid-Level
20개 질문Request & Response Handling
Mid-Level
20개 질문예외 처리
Mid-Level
25개 질문Bean Validation
Mid-Level
25개 질문Spring Data JPA 기초
Mid-Level
25개 질문JPA 엔티티 및 관계
Mid-Level
30개 질문JPA 쿼리
Mid-Level
30개 질문Spring Data Repositories
Mid-Level
25개 질문Spring Security 기초
Mid-Level
25개 질문Spring Boot Actuator
Mid-Level
20개 질문JUnit과 Mockito를 사용한 단위 테스트
Mid-Level
30개 질문Spring Boot 테스트
Mid-Level
30개 질문Profiles와 Environment
Mid-Level
20개 질문RestTemplate 및 WebClient
Mid-Level
24개 질문Async와 스케줄링
Mid-Level
25개 질문Spring을 사용한 캐싱
Mid-Level
25개 질문Spring 트랜잭션
Senior
30개 질문고급 인증 및 인가
Senior
30개 질문JWT 및 스테이트리스 보안
Senior
20개 질문OAuth2와 Authorization Server
Senior
20개 질문Spring Boot와 Docker
Senior
19개 질문Spring을 활용한 마이크로서비스
Senior
25개 질문Spring Cloud Config
Senior
19개 질문성능 최적화
Senior
30개 질문GraalVM Native Images
Senior
20개 질문