TIL 88일차

Moon-Tree·2023년 5월 8일
0

◆ WebClient

  • 비동기적인 요청 처리: WebClient는 논블로킹 I/O 모델을 사용하여 비동기적으로 요청과 응답을 처리할 수 있습니다.
    따라서 대용량 트래픽이나 동시성이 높은 환경에서 서버의 처리량을 향상시키고 응답 시간을 최적화할 수 있습니다.

  • 리액티브 프로그래밍: WebClient는 스프링의 리액티브 프로그래밍 모델에 적합하게 설계되었습니다.
    리액티브 타입인 Flux나 Mono를 사용하여 비동기적인 데이터 처리를 할 수 있습니다.
    이는 데이터를 스트림 형태로 다룰 수 있고, 페이징된 결과를 처리하기에도 유용합니다.

  • 마이크로서비스 아키텍처: WebClient는 마이크로서비스 아키텍처에서 다른 서비스와의 통신에 사용될 수 있습니다.
    서비스 간의 HTTP 요청을 처리하고, API를 호출하거나 데이터를 송수신할 때 사용할 수 있습니다.
    WebClient는 HTTP 클라이언트로써의 역할을 수행하여 마이크로서비스 간의 통신을 편리하게 관리할 수 있습니다.

  • 외부 API 호출: WebClient는 외부 API를 호출하는 데에도 유용합니다.
    다양한 RESTful API를 호출하거나 웹 서비스와의 통신을 처리할 수 있습니다.
    HTTP 요청과 응답을 처리하기 위한 다양한 기능과 옵션을 제공하므로, 외부 API와의 통신에 효과적으로 활용할 수 있습니다.

  • 모던 웹 개발: WebClient는 모던 웹 개발에서 필요한 요구사항에 맞게 설계되었습니다.
    비동기 처리, 리액티브 프로그래밍, 페이징된 결과 처리, RESTful API 호출 등의 기능을 제공하므로, 웹 애플리케이션의 성능과 확장성을 개선하기 위해 사용될 수 있습니다.

  • 유사한 기능을 제공하는 RestTemplate은 공식적으로 삭제 예정입니다.

◆ WebClient를 사용하기 위해 프로젝트에 의존성을 추가해야 합니다. 
-> Spring Boot Starter WebFlux » 2.7.11 추가 
-> Spring Boot의 버전에 맞는 WebClient 라이브러리를 의존성에 추가하면 됩니다. 
-> 의존성 추가 후에는 Spring Boot가 알맞게 버전 설정을해주기 때문에 별도의 설정은 필요하지 않습니다.

<dependency>			
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

  • sql
    - reference를 하지 않으면 복제된다.
    - 취소는 마이너스를 구매하기 때문에, 재고관리를 할 경우 음수를 활용한다.

  • 계층형 조회를 할 경우, 서버에 무리가 가므로 페이징을 넣는 것을 권장한다.

profile
Backend Developer

0개의 댓글