Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 코딩테스트
- Hotspot VM
- Runtime data area
- Class Loader
- optional
- closeable
- java
- jetbrain
- 4-way-handshake
- circuitbreaker
- try-catch
- try-catch-finally
- wagon-ssh
- intelij
- jvm
- springboot
- 날짜쿼리
- zipWith
- GC
- try-with-resources
- Kotlin
- tcp
- n+1
- AutoCloseable
- webflux
- resilience4j
- execution engine
- 람다표현식
- 동작방식
- feign
Archives
- Today
- Total
JuBin's personal study blog
[Reactor] zipWith(webflux reactor) 함수 본문
반응형
zipWith은 Reactor의 Mono에서 사용 가능한 함수 입니다.
zipWith에 대해 아주 간단히 설명하고자 합니다.
위 사진은 zipWith 함수의 flow를 보여줍니다.
사진 설명을 하자면 초록색원 A, 노란색사각형 1은 각각 Mono에서 발생되는 return값 입니다. 각 도형 오른쪽 검은 실선은 해당 Mono가 return되는 시점입니다. zipwith(A,1)로 인해 결과물 A1이 return 됩니다.
반응형 프로그래밍에서 코드를 짜는 경우 서로 다른 두 Mono가 작업이 완료되는 시점에 특정 동작을 함수가 필요한 경우가 있습니다. 이러한 상황에 zipWith을 사용하면 유용합니다.
return Mono.just(req).flatMap {
this.bookingConfigService.getBookingPolicy(soId).zipWith(
this.bookingFindService.getBooking(req.pathVariable("bookingId"), "SOID")
)
}.flatMap {
var a = it.t1
var b = it.t2
}
코드를 예시로 설명하자면 먼저 정책 서비스에 정책정보를 요청하고 또다른 외부 예약 서비스에서는 예약정보를 요청 한 뒤 이를 조합하여 return할 수 있습니다.
zipWith을 이용하면 서로 다른 두 Mono가 작업이 완료되는 시점에 두 내용을 가공하여 하나의 Mono로 return할 수 있습니다.
반응형
'Spring' 카테고리의 다른 글
[Spring] Dependency Injection (0) | 2024.04.28 |
---|---|
[Spring] Spring WebFlux + SpringBoot로 간단한 이커머스 플랫폼 개발 - 1(개념정리) (0) | 2021.09.09 |
Spring Security CORS 설정 (0) | 2021.06.23 |
생성자 의존성 주입시 순환참조 (0) | 2020.11.16 |
Spring Boot 정리 (0) | 2020.09.20 |