spring webflux
-
Reactive StreamingSpring Reactive Web Application/Spring WebFlux 2023. 9. 21. 22:00
Spring WebFlux는 SSE(Server-Sent Events)를 이용해 데이터를 Streaming 할 수 있습니다. SSE는 Spring 4.2 버전부터 지원되었으며, Spring 5 버전부터 Reactor의 Publisher 타입인 Flux를 이용해 조금 더 편리한 방법으로 SSE를 사용할 수 있게 되었습니다. Note. SSE(Server-Sent Events) 클라이언트가 HTTP 연결을 통해 서버로부터 전송되는 업데이트 데이터를 지속적으로 수신할 수 있는 단방향 서버 푸시 기술입니다. SSE는 주로 클라이언트 측에서 서버로부터 전송되는 이벤트 스트림을 자동으로 수신하기 위해 사용됩니다. 다음은 Streaming으로 처리될 데이터를 데이터베이스에서 조회하는 BookService 클래스의 코..
-
예외 처리Spring Reactive Web Application/Spring WebFlux 2023. 9. 16. 09:00
Spring MVC 기반의 애플리케이션에서 @ExceptionHandler나 @ControllerAdvice 등의 애너테이션을 이용하는 예외 처리 방식은 Spring WebFlux 기반의 애플리케이션에서도 사용할 수 있는 방식입니다. 이번 포스팅에서는 @ExceptionHandler나 @ControllerAdvice를 사용하는 방법 이외에 Spring WebFlux 전용 예외 처리 기법을 정리하겠습니다. Note. @ExceptionHandler, @ControllerAdvice 등의 애너테이션을 사용한 예외 처리 기법은 아래 Spring 공식 문서를 참고하시면 됩니다. https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller..
-
함수형 엔드포인트(Functional Endpoint)Spring Reactive Web Application/Spring WebFlux 2023. 8. 26. 10:00
클라이언트의 요청 처리를 위해 애너테이션 매핑 기법을 이용하는 애너테이션 기반 모델과는 달리, 함수형 엔드 포인트에서는 들어오는 요청을 라우팅하고, 라우팅된 요청을 처리하며 결과 값을 응답으로 리턴하는 등의 모든 작업을 하나의 함수 체인에서 처리합니다. HandlerFunction Spring WebFlux의 함수형 엔드포인트는 들어오는 요청을 처리하기 위해 HandlerFunction이라는 함수형 기반의 핸들러를 사용합니다. @FunctionalInterface public interface HandlerFunction { Mono handle(ServerRequest request); } ServerRequest: HandlerFunction에 의해 처리되는 HTTP request를 표현합니다. Se..
-
애너테이션 기반 컨트롤러(Annotated Controller)Spring Reactive Web Application/Spring WebFlux 2023. 8. 26. 08:30
Spring WebFlux는 두 가지 프로그래밍 모델을 지원합니다. 하나는 애너테이션 기반 프로그래밍 모델이고, 다른 하나는 함수형 기반 프로그래밍 모델입니다. 이번 포스팅에서는 애너테이션 기반 컨트롤러에 대해, 다음 포스팅에서는 함수형 기반 프로그래밍 모델에 대해 정리합니다. Spring MVC 기반 Controller 다음은 @RequestBody 애너테이션을 지정해서 클라이언트의 요청 데이터를 전달받고, ResponseEntity 클래스를 이용해 응답 데이터를 클라이언트에게 전달하는 전형적인 Spring MVC 기반 Controller 입니다. import org.springframework.http.ResponseEntity; import org.springframework.web.bind.ann..