Project Reactor(3)
-
Non-Reactive(비반응적) vs. Reactive(반응적): 우유 공장 예제
비반응적(Non-Reactive) vs. 반응적(Reactive): 우유 공장 예제 1. Non-Reactive 접근법: "Batch Processing (일괄 처리)"무슨 일이 벌어지는가:공장은 아침에 모든 우유가 도착할 때까지 기다립니다.모든 우유가 모이면, 그때서야 포장 작업을 시작합니다.포장 작업이 끝난 후(저녁쯤), 모든 우유 상자를 고객에게 한 번에 배달합니다.핵심 아이디어:작업은 특정 시간(아침에 수집, 저녁에 배달)에 큰 묶음(batch) 단위로 진행됩니다.공장은 모든 것이 준비될 때까지 작업을 시작하지 않기 때문에 지연이 발생합니다.비유:쿠키를 구운다고 상상해보세요. 모든 재료가 준비될 때까지 기다렸다가 한 번에 큰 묶음으로 쿠키를 굽는 방식입니다. 2. Reactive 접근법: "Con..
2024.11.21 -
How to read marble diagrams?
🚀 마블 다이어그램(Marble Diagrams) 읽는 방법Flux와 Mono를 소개할 때 "마블 다이어그램(marble diagram)"이라는 시각적 표현 방법을 예시로 제시했습니다. 마블 다이어그램은 Reactor 문서 및 javadoc에서 연(operator)의 동작을 보다 직관적으로 설명하기 위해 널리 사용됩니다. 이번 섹션에서는 Reactor 문서에서 사용되는 마블 다이어그램의 규칙과 다양한 표현 방식에 대해 자세히 살펴보겠습니다. 📌 기본 마블 다이어그램 표현 방식✅ 인스턴스 메서드 연산자 (Instance Operator)일부 연산자는 소스 Flux 인스턴스에서 메서드를 호출하여 결과를 생성합니다.Flux output = source.fluxOperator(); 위 다이어그램은 소스 Fl..
2024.11.20 -
Reactive Streams
Reactive Streams는 비동기적 데이터 스트림 처리를 위한 표준 규격입니다. 주로 JVM(Java Virtual Machine) 환경에서 사용되며, 데이터의 흐름을 효율적으로 처리하고, 특히 데이터 소비자(consumer)가 데이터 생산자(producer)의 처리 속도를 조절하는 백프레셔(Backpressure)를 명확하게 지원합니다. 📌 Reactive Streams의 목적Reactive Streams의 주요 목적은 다음과 같습니다.✅ 비동기(Asynchronous) 데이터 처리데이터를 비동기적으로 효율적이며 논블로킹(non-blocking) 방식으로 처리합니다.✅ 백프레셔(Backpressure) 지원데이터 소비자가 처리 속도에 따라 데이터 생산자로부터 데이터를 요청(request)하여 속..
2024.11.17