- 많은 데이터를 묶음 단위로 나누는 방식을 제공함
1. Grouping with Flux<GroupedFlux<T>>
- 같은 Key를 가진 데이터끼리 묶는 방식
- 하나의 값은 하나의 그룹에만 속함
- ✅ 각 그룹은 GroupedFlux<K, T>
- ⚠️ 생성된 GroupedFlux를 실제로 소비해야 데이터를 가져올 수 있음
| API | 설명 | 핵심 |
| groupBy(Function) | 같은 Key를 가진 데이터를 각각의 GroupedFlux로 분리 | Flux<T> → Flux<GroupedFlux<K,T>> |
| concatMap() | 생성된 Group을 하나씩 순차적으로 소비 | A 그룹 완료 → B 그룹 → C 그룹, 그룹 간 순서 보장 |
예제) groupBy()
더보기
Flux.just(1, 3, 5, 2, 4, 6)
.groupBy(i -> i % 2 == 0 ? "even" : "odd");
예제) concatMap()
더보기
Flux.just(
Flux.just(1, 2, 3),
Flux.just(4, 5, 6),
Flux.just(7, 8, 9)
)
.concatMap(group -> group)
.subscribe(System.out::println);
- 전체 순서 유지를 보장함
- 1, 2, 3, 4, 5, 6, 7, 8, 9 순으로 출력됨
2. Windowing with Flux<Flux<T>>
3. Buffering with Flux<List<T>>
출처
'Java' 카테고리의 다른 글
| [Project Reactor] 4. Which operator do I need? (0) | 2026.08.20 |
|---|---|
| [Project Reactor] 2. Reactor Core Features (0) | 2026.08.18 |
| [Project Reactor] 1. Introduction to Reactive Programming (0) | 2026.08.17 |
| [Reactive Streams] 1. 비동기 스트림과 Backpressure (0) | 2026.08.17 |
| [Java][Tutorial] 1-3. Learning the Java Language: Classes and Objects (0) | 2024.01.14 |