webflux 2

스프링 웹플럭스의 코루틴 지원

코루틴 코루틴(Coroutine)은 코틀린에서 비동기-논브로킹 프로그래밍을 명령어 스타일로 작성할 수 있도록 도와주는 라이브러리이다. 코루틴은 멀티 플랫폼을 지원하여 코틀린을 사용하는 안드로이드, 서버 등 여러 환경에서 사용할 수 있다. 코루틴은 일시 중단 가능한 함수(suspend function)을 통해 스레드가 실행을 잠시 중단했다가 중단한 지점부터 다시 재개(resume) 할 수 있다. 코루틴을 사용한 구조적 동시성 예시 suspend fun combineApi() = coroutineScope { val res1 = async { getApi1() } val res2 = async { getApi2() } return ApiResult ( res1.await() res2.await() ) } 리..

Spring/Webflux 2024.01.29

스프링 웹 플럭스 (Spring Webflux)

프로젝트 리액터 프로젝트 리액터는 리액티브 스트림의 구현체 중 하나로 스프링의 에코시스템 범주에 포함된 프레임워크이다. 리액티브 스트림 사양을 구현하고 있으므로 리액티브 스트림에서 사용하는 용어와 규칙을 그대로 사용한다. 리액터를 사용하면 애플리케이션에 리액티브 프로그래밍을 적용할 수 있고 비동기-논블로킹을 적용할 수 있다. 함수형 프로그래밍의 접근 방식을 사용해서 비동기-논블로킹 코드의 난해함을 어느정도 해결한다. 백프레셔를 사용해 시스템의 부하를 효율적으로 조절할 수 있다. 모노와 플럭스 리액터는 리액티브 스트림의 Publisher 인터페이스를 구현하는 모노(Mono)와 플럭스(Flux)라는 두 가지 핵심 타입을 제공한다. 모노는 0..1개의 단일 요소 스트림을 통지하는 발행자이다. 플럭스는 0..N..

Spring/Webflux 2024.01.28