Baeldung번역&공부46 Spring WebClient와 Filter(Spring WebClient Filters) 원본 글: https://www.baeldung.com/spring-webclient-filters이 글은 WebClient에서 fitler를 다루는 방법에 대해 이야기합니다.1. Request Filtersfilter는 요청과 응답을 가로채서 추가,수정할 수 있는 기능입니다. 필터는 모든 요청과 응답에 대해 한 곳에 모여지므로 후처리나 전처리하기에 적합합니다. 요청을 모니터링하거나 수정, 로그 작성, 인증까지 가능합니다.Spring Reactive에서 필터는 함수형 인터페이스 ExchangeFilterFunction의 인스턴스입니다. 필터 함수에는 두 개의 매개변수가 있습니다. 수정할 ClientRequest와 다음 ExchangeFilterFunction입니다.일반적인 구성 예시입니다.Exchange.. 2025. 3. 6. WebClient사용할때 파라미터 넣는방법 원본 글: https://www.baeldung.com/webflux-webclient-parameters1. REST API Endpoints다음과 같은 시나리오가 있다고 생각합시다./products/products/{id}/products/{id}/attributes/{attributedId}/products/?name=[name]&deliveryDate={deliveryDate} ../products/?tag[]=[tag1]/products/?category=[categoray1]&Webclient를 사용할 때 위 시나리오에서 어떻게 파라미터를 설정할지 작성해봅니다.참고로 위 url에서 tag, category는 배열형태로 가져오는데 이에 대해 정해진 포맷이 없다보니 여러 방법으로 가져올 수 있게 .. 2025. 3. 5. Spring WebClient vs RestTemplate 원본 글: https://www.baeldung.com/spring-webclient-resttemplate 이 글에서는Spring5 버전에서 나온 WebClient와 RestTemplate을 비교합니다. 1. Blocking vs Non-Blocking Client1.1 RestTemplate Blocking ClientRestTemplate는 Thread-per-request(요청당 스레드1개)기반의 Java Servlet API를 사용합니다. 이 말은 Thread는 webClient가 응답을 받을때까지 block된 상태르 유지하고 있습니다. block된 상태로 CPU나 메모리를 점유하고 있기에 쓸데없는 리소스를 잡아먹는 Thread-per-request모델은 단점이 될 수 있습니다. 한 번에 엄청.. 2025. 3. 2. Spring WebClient 원본 글: https://www.baeldung.com/spring-5-webclient이 글은 Sprign5에서 소개된 reactive webClient인 WebClient에 대해 다룹니다.또한, WebClient를 테스트하기 위해 제작된 WebTestclient에 대해서도 다룹니다.1. What Is the WebClient?WebClient는 웹 요청을 수행하기 위한 주요 진입점을 나타내는 인터페이스입니다.Spring Web Reactive 모듈의 일부로 만들어졌으며, 이러한 시나리오에서 기존의 RestTemplate을 대체할 예정입니다.또한, 새로운 클라이언트는 반응형(Reactive)이고 비동기(Non-blocking) 방식으로 동작하며, HTTP/1.1 프로토콜 위에서 작동합니다.WebClie.. 2025. 3. 1. WebFlux-Retry(Guide to Retry in Spring WebFlux) 원본 글: https://www.baeldung.com/spring-webflux-retry클라우드 환경에서 분산 애플리케이션을 구축할때, 서로의 통신이 실패했을때의 방안으로 Retry(재시도)기법을 보통 사용합니다.Spring WebFlux에서는 이러한 기법을 사용할 수 있는 몇 가지 툴들을 제공하고 있습니다.이 글에서는 WebFlux 애플리케이션에서 어떻게 재시도 관련 설정을 추가하는지 알아봅니다.1. Use Case예를 들어서 임시로 서비스가 불가능했다가 다시 정상으로 돌아오는 경우를 생각해봅시다.@Testvoid givenExternalServiceReturnsError_whenGettingData_thenRetryAndReturnResponse() { mockExternalService.e.. 2025. 2. 28. Mono와 Flux의 차이점(Difference Between Flux and Mono) 원본 글: https://www.baeldung.com/java-reactor-flux-vs-mono이 글은 Flux와 Mono의 차이점을 간단히 설명합니다.1. What Is Mono?Mono는 Publisher라는 특별한 타입의 클래스입니다. Mono오브젝트는 0~1개의 값을 가지며 onNext() 함수를 통하여 최대 1개의 값을 내보내고 onComplete() 함수를 통하여 요청이 끝났음을 알릴 수 있습니다. 그리고 실패했을 경우 onError() 함수를 발생시켜서 에러핸들링을 할 수 있게합니다. @Test public void givenMonoPublisher_whenSubscribeThenReturnSingleValue() { Mono helloMono = Mono.ju.. 2025. 2. 27. 이전 1 2 3 4 ··· 8 다음