MSA 전환 과정에서 WebClient를 활용하여 API 통신을 구현함
RestTemplate 대비 Non-Blocking 방식의 WebClient를 통해 성능 향상
WebClient의 의존성 추가, 설정, 사용 예시를 상세히 설명
RestTemplate은 Blocking I/O 기반으로, API 호출 시 스레드가 대기한다. 반면 WebClient는 Non-Blocking 방식을 지원하여, Reactor 기반의 Functional API를 통해 비동기 처리가 가능하다. 따라서, 동시 사용자 증가에 따른 성능 저하를 방지한다.
WebClient는 maxInMemorySize 설정을 통해 메모리 사용량을 제어한다. 구체적으로, ReactorClientHttpConnector를 사용하여 TimeOut 설정을 적용하여 응답 지연을 방지한다. 따라서, HTTP 요청 처리 성능을 향상시키고, 안정적인 서비스 운영을 가능하게 한다.
retrieve()와 exchange() 메서드를 활용하여 API 응답을 처리한다. retrieve()는 body를 바로 가져오고, exchange()는 상태 코드와 헤더를 포함한 ClientResponse를 반환한다. 따라서, 상황에 맞는 메서드를 선택하여 유연한 API 호출을 구현하고, 오류 처리 로직을 효과적으로 구성한다.