부트캠프 개발일기/Spring Webflux3 71일차: Spring WebFlux ❯ Spring WebFlux 이름에서 보는것과 같이 Web+Flux로, Reactor 타입인 Flux가 Web 기술에 사용되는 것을 말한다. Spring 5부터 지원하는 프레임워크이다. Spring MVC와 Spring WebFlux 비교 Spring WebFlux Spring MVC * Non-Blocking 지원 * Reactive Adaptor로 다양한 리액티브 라이브러리 사용 가능 * WebFilter 방식 * Reactive 스택을 데이터 액세스 계층까지 확장(R2DBC) * Blocking 통신방식 지원 * Servlet API 스펙에 의존적 * Servlet Filter 방식 * Spring Data Repository 사용 Spring MVC 애플리케이션에 Spring WebFlux 적용.. 2023. 5. 24. 70일차: Reactor(Project Reactor) ❯ Reactor(Project Reactor) Reactive Streams의 표준사항을 구현한 구현체 중 하나이다. Reactor의 특징 Non-Blocking 통신을 지원한다. Publisher 타입으로 Mono[0|1] 와 Flux[N]을 지원한다. 서버간 통신이 잦은 MSA(MicroService Architecture) 기반 애플리케이션에 적합하다. Backpressure를 제공한다.(Subscriber 속도가 Publisher 속도를 따라가지 못할때 제어하는 전략) Reactor 기본 구조 import reactor.core.publisher.Flux; import reactor.core.scheduler.Schedulers; public class HelloReactorExample { p.. 2023. 5. 23. 69일차: 리액티브 프로그래밍 ❯ 리액티브 프로그래밍(Reactive Programming) 리액티브 프로그래밍에서는 선언형 프로그래밍 방식을 사용한다. Reactive란 사전적으로 "반응하는"의 의미를 가진다. 따라서 리액티브 프로그래밍이란 클라이언트 요청에 반응을 잘하는 시스템을 프로그래밍한다고 생각할 수 있다. 클라이언트 요청에 대한 응답 대기시간을 최소화할 수 있도록 요청 스레드가 차단되지 않게(Non-Blocking) 해서 즉각적으로 반응하도록 한다. 리액티브 시스템의 특징 위 그림은 리액티브 시스템의 설계 원칙을 나타내고있다. 각 용어를 설명하면 다음과 같다. Message Driven: 리액트 프로그래밍은 비동기적 메시지 전달을 통해 커뮤니케이션하고, 이를 통해 시스템 간 느슨한 결합을 유지할 수 있다. Elastic: .. 2023. 5. 22. 이전 1 다음