Spring Webflux에서 Spring은 우리가 잘 알고 있는 Spring framework를 말합니다.
Webflux는 Reactive Stream API를 사용하여 non-blocking과 asynchronous를 지원하는 비동기 spring web framework입니다.
Reactive Stream API, non-block, asynchronous 는 springwebflux의 주요 키워드라 말할 수 있습니다.
이러한 주요 기술들이 대량의 웹 트래픽, 특히 I/O가 많은 웹 서비스 로직에서 기존 서블릿 기반 MVC 대비 효율적이고 높은 성능을 보여줍니다.
예를들어 마이크로 서비스에서 다양한 동시 요청을 수행해야하는 게이트웨이 서버나, 실시간 데이터 스트림을 위한 웹소켓, 대량의 데이터를 처리해야하는 실시간 채팅 서비스에서 활용하기 좋습니다.
그러나, Spring Webflux가 모든 상황에 항상 적합하다고는 볼 수 없습니다.
동기 방식이 좀 더 명확히 흐름을 파악할 수 있는 장점이 되기도 하구요, 비동기적이지만 코드 작성 방식에 따라 성능이 떨어지는 경우가 발생할 수 있어 꼼꼼히 살펴보고 테스트를 해봐야 하기 때문입니다.
그렇기 때문에 상황에 따라 spring webflux를 사용해야할지 spring mvc로 구현해야 할지 고민을 해봐야 하는데 위 예시와 같은 특정 상황이 아니라면 spring mvc로 구현하는것이 좀 더 코드 구현이나 운용 관점에서 생산적일 수 있습니다.
'SpringWebflux' 카테고리의 다른 글
[SpringWebflux] reactor operator - 4 (0) | 2024.03.08 |
---|---|
[SpringWebflux] Reactor operator - 3 (0) | 2024.03.08 |
[Spring Webflux] CPU bound vs I/O Bound (1) | 2024.03.07 |
[Spring Webflux] 스프링 웹플럭스(MVC와 비교, 내부 동작 원리, Netty) (0) | 2024.01.31 |
[Netty] @Sharable 어노테이션과 ChannelHandler 인스턴스 관리 (0) | 2024.01.10 |