Spring/WebFlux3 리액티브 프로그래밍( reactive streams ) reactive streams 표준 라이브 러리에 대한 이해와 실습reactive streams은 데이터 스트림을 Non-Blocking하면서, 비동기적 방식으로 처리하기 위한 리액티브 라이브러리 표준 사양이다.즉, 리액티브한 코드를 작성하기 위한 라이브러리로 개발자는 보다 쉽게 리액티브 어플리케이션을 구성할 수 있게 만든다. 이를 실습하기 위해서 우선, java 프로젝트를 생성한 후에 해당 라이브러리를 사용하기 위한 빌드를 해준다. Gradle을 기준으로 아래와 같은 의존성을 주입해준다.// https://mvnrepository.com/artifact/org.reactivestreams/reactive-streams implementation group: 'org.reactivestreams'.. Spring/WebFlux 2025. 1. 3. 리액티브 프로그래밍( text/event-streaming MIME TPYE ) text/event-streaming MIME type을 활용한 반응형 어플리케이션 Spring에서는 WebFlux를 통해 이벤트 반응형 어플리케이션을 지원하지만,이번에는 spring이 아닌 Servlet 수준의 구현을 통해 리액티브 어플리케이션이 동작되는 원리를 알아보겠다. 이를 위해 Filter를 사용한 실습을 진행해보자. 먼저, 프로젝트 폴더 구조와 코드는 아래와 같다. 그리고 각 코드들을 살펴보겠다.아래는 FilterConfig의 코드이다.@Configurationpublic class FilterConfig { @Bean public FilterRegistrationBean addFilter() { System.out.println("필터등록됨"); Filt.. Spring/WebFlux 2024. 12. 26. 리액티브 프로그래밍 리액티브 프로그래밍의 특징 어플리케이션 구성에 있어, server로 스프링을 사용한다면 많이 사용되는 Spring MVC는 thread per request (user level thread), Synchronous 으로 작동된다. 따라서 사용자의 요청에 따른 각각의 수준에서 block I/O로 진행되며, 요청에 따른 응답이 오기까지 서버는 기다리게 된다.그리고 많은 User들의 요청을 받기 위해서 multi thread 방식을 사용하고, 이에 따른 context switching이 발생하며, 만약 User가 많아지면, context switching에 걸리는 시간이 커질 것이고, 이는 multi thread의 효율 저하를 초래한다. 반면에, Spring에서 지원하는 Webflux와 같은 Reactive.. Spring/WebFlux 2024. 12. 26. 이전 1 다음