부트캠프에서 프로젝트를 날씨에 맞춘 옷추천 프로젝트를 하게 되었다.
공공 api를 연동시켜 할려고 하다보니 모르는게 많고,헷갈리는것도 많아서 구글링을 하게 되었더니.... Spring 에서 RestTemplate을 사용하는것보단 webClint를 이용하는걸 더 권장한다고 한다. 사실은 둘의 차이를 크게 못느꼇다
문서에 보면 많은 modern API를 가지고 있고 동기, 비동기, 스트리밍 시나리오까지 가능한 WebClient를 쓰라고 추천해주고있는데 흐음.. 읽다보니 굳이..? 라는 생각이 들었다
1) 비동기 지원: WebClient는 비동기 및 리액티브 프로그래밍을 지원하고, 비동기 호출은 블로킹되지 않아 서비스 성능을 향상시킬수있다.
2)리액티브 프로그래밍 지원: WebClient는 스프링 5부터 지원되는 리액티브 프로그래밍 모델을 적극적으로 활용할 수 있다. 리액티브 프로그래밍은 데이터 스트림을 다루기에 효과적이며, 대량의 동시 요청을 처리하는 데 특히 유용하다.
3)모듈화 및 확장성: WebClient는 모듈화되어 있어서 필요한 기능만 선택적으로 사용할 수 있다. 또한, 다양한 확장 모듈을 통해 여러 기능을 추가할 수 있다.
4)동기 및 비동기 호출 모두 가능: WebClient는 비동기적 호출 뿐만 아니라 동기적 호출도 지원합니다. 이는 block() 메서드를 사용하여 동기 호출을 수행할 수 있기 때문이다.
그치만 나는 WebClient를 쓰기에... reactor 에 대한 지식이 너무 딸리다고 생각한다, 공부 열씨미 해야징.
그래도 이미 손에 익고, 알고있는 RestTemplate 사용할거지만 그래도 WebClient를 사용해볼려고 노력해보겠다..