# mono

WebFlux 박치기 - 2
저번 포스트에 이어서 Spring Reactive Web 의존성을 추가하여 단일 스레드 + 비동기/논블로킹 통신을 알아보자. 준비물 Dependencies WebFlux를 사용하기 위해 필수 의존성을 추가한다. Spring Reactive Web 당연하게 있어야 할 의존성인 Spring Reactive Web을 추가한다. 물론, start.spring.io에서 추가하는 것이 더 편하다. Spring Data R2DBC JPA와 비슷한 기능을 가진 R2DBC를 추가한다. R2DBC를 추가하는 이유는 JPA를 사용하면 데이터를 조회하거나 저장하는 등의 처리 과정에서 블로킹으로 처리하기 때문에 WebFlux를 사용하는 의미가 사라지기 때문이다. 단, R2DBC는 JPA처럼 연관 관계 매핑을 지원하지 않는다. H2 Database, Lombok 내장 데이터베이스인 H2를

Spring WebFlux 어디가서 아는 '척' 하기 🤔
🤔 개요 Non-Blocking 방식의 애플리케이션 api가 대규모 소프트웨어 프로그램에서 성능 향상을 위해 거의 필수다 싶이 사용되는 기술이다. 그렇기에 오늘 Webflux와 리액티브 스트림, 논블라킹에 대해서 정리해보려고한다. 🖥 Non-Blocking Non-Blocking은 한 번에 하나의 작업을 처리하고 결과를 반환하기전에 다른 작업을 수행할 수 있도록 하는 프로그래밍 스타일이다. Non-Blocking 특징 입출력 작업이나 긴 작업을 수행하는 동안 CPU가 다른 작업을 할당해 자원을 최대한 활용할 수 있다. 다중 스레드와 달리 스레드 간의 컨텍스트 스위칭이 발생하지 않아 CPU 부하와 메모리 사용을 최적화할 수 있다. 📗 Spring WebFlux

Spring Data Reactive Repositories with MongoDB
Spring Data Reactive Repositories with MongoDB Spring Data Reactive Repositories with MongoDB | Baeldung 개요 이 튜토리얼에서는 MongoDB와 함께 Spring Data Reactive Repositories를 통해 Reactive Programming을 사용하여 데이터베이스 작업을 구성하고 구현하는 방법을 살펴보겠다. ReactiveCrudRepository, ReactiveMongoRepository 및 ReactiveMongoTemplate의 기본 사용법을 살펴보겠다. 환경 Reactive MongoDB를 사용하려면 종속성을 추가해야 헌다. 테스트를 위해 포함된 MongoDB도 추가. build.gradle.kts pom.xml Confi

Java Reactive Programming : 2. Mono
본 강의는 udemy의 Java Reactive Programming From Scratch를 듣고 알게 된 내용을 정리합니다. >- 전제 : 이 강의는 리액티브 프로그래밍을 하나도 다룰 줄 모르는 초심자가 듣는다는 것을 전제로 진행됩니다. 요구 사항 : Java 8+, Lambda나 함수형 스타일 (stream filter / map)에 대한 기본 지식 목표로 하는 것: Reactor / Reactive Programming에 대한 지식 목표로 하지 않는 것: Spring Webflux에 대한 지식 Reactor Publisher Reactor는 Hibernate처럼 리액티브 스트림 구현체이다. Reactor의 Publisher에는 Mono : 0 또는 1개의 아이템을 emit할 수 있는 publisher이다. 아이템을
Mono와 Flux 객체 다루기!
WebClient를 사용하다 Mono와 Flux라는 것을 접하게 되었습니다. WebFlux란? > - Spring 5에 추가된 Reactive-stack의 웹 프레임워크 클라이언트와 서버에서 리액티브 애플리케이션 개발을 위한 논블로킹 리액티브 스트림을 지원 Mono와 Flux > - Spring WebFlux 에서 사용하는 reactive library가 Reactor이고 Reactor의 주요 객체가 Mono와 Flux이다. Mono : 0 ~ 1 개의 데이터 처리 Flux : 0 ~ N 개의 데이터 처리 Mono와 Flux 다루기 >프로젝트에 사용되었던 WebClient의 예로 들어 보겠습니다. >1.그림과 같이 ChatDTO 타입으로 리턴 받는 Mono 객

스프링 리액터 시작하기 (3) flux,mono
0. 자료의 출처 https://projectreactor.io/docs/core/release/reference/#getting-started-introducing-reactor 오해가 없도록 어떤 text를 인용했는지 원문을 첨부합니다.🤗 1. Introduction to Reactive Programming Reactor는 reactive programming을 위한 구현체인 것이다. Data stream들 (이벤트들의 연속이라던지 static한 배열, 리스트)과 변화에 맞추어 진행되는 비동기적 프로래밍을 위함이다. Java에서는 RxJava를 통해 JVM에서의 reactive programming이 구현되었다. 과거의 명령형 프로그래밍 패턴에서는 for문과 같이 iterator가 쓰였지만 이제는 Publisher-Subscriber 관계가 쓰일 것이다. Publisher는 구독자에게 새 값이 도착했다고 알릴 것이며, 개발자는 이 값을 어떻게 쓸 것이라고