728x90 Reactive Programing5 [Reactive Programming] Thread and Schedulers Thread and Schedulers리액티브에서 동작하는 쓰레드를 알아보자.병렬처리를 하면서 가장 중요한 개념이자 알아야 되는 사항이라고 생각한다. Mono, Flux 는 스스로 쓰레드를 지정하지 않는다.모노 플럭스는 직접 사용자가 쓰레드를 지정해줘야 해당 쓰레드에서 동작한다.그리고 이전에 사용했던 쓰레드를 그대로 사용한다.아래 코드는 쓰레드를 생성해서 플럭스를 수행해보는 예제다.package com.p8labs.reactive.scheduler_and_threding;import lombok.extern.slf4j.Slf4j;import reactor.core.publisher.Flux;import reactor.core.publisher.Mono;@Slf4jpublic class ThreadEx {.. 2025. 1. 11. [Reactive Programming] zipWith 1. ZipWithpublic final Flux> zipWith(Publisher source2)두개의 소스를 결합하는 함수이다.다이어 그램을 보면 두개의 스트림을 하나로 합쳐주는 역할을 한다.하지만 E는 결과 스트림에는 없는게 보인다.둘중 하나가 null 이면 결과 스트림으로 방출되지 않는다. Flux userIds = Flux.just(1L,2L,3L); Mono> listMono = userIds.flatMap( i -> { Mono memberMono = Mono.fromCallable(() -> memberRepository.findUser(i)) .. 2024. 11. 9. [Reactive Programming] 속도비교 속도비교실제로 얼마나 속도차이가 나는지 blocking 코드와 reactor 코드를 비교해보자. 코드예제고객에게 쿠폰을 발급하려고 한다. 조건은 가입일 5년 이상, 보유 포인트가 500 이상, 골드 멤버일 경우다.걸리는 시간은 총 6초이다. isGoldMember: 골드 멤버인지 확인한다. 3초걸림.isGreaterThan500point: 보유 포인트 확인. 2초 걸림checkRegisterPeriod: 등록 기간 체크. 1초걸림.package com.p8labs.reactive.compareCode;import lombok.extern.slf4j.Slf4j;import org.springframework.stereotype.Service;import java.time.LocalDate;import j.. 2024. 11. 2. [Reactive Programming] Flux, Mono 개념 서론리액티브 프로그래밍 패러다임은 종종 옵저버 설계 패턴의 확장으로 표현됩니다. Observer Pattern 에서 방출, 구독 이라는 개념을 익혔습니다.리액터는 좀더 많은 연산을 가능하게 해주는 퍼블리셔를 구현하며 결합을 가능하게 합니다. Flux플럭스는 0~N개의 방출된 항목의 비동기 시퀀스를 나타낸다. 선택적으로 완료 신호나 오류에 의해 종료되는 표준 퍼블리셔이다.플럭스의 흐름도 Flux String 복사 예제리스트를 Flux 로 변환한뒤 Flux에서 다시 List 을 반환하는 예제이다.List -> Flux -> List아래 예제는 Flux가 어떻게 동작하는지만 확인해 본다.1. List copyList = new ArrayList();2. List originList = Arrays.asList.. 2024. 10. 14. 이전 1 2 다음 728x90 반응형