Server Side Event, Web Socket 방식 등등의 서비스의 핵심은 결국 C R U D 이라고 합니다.(Create, Read, Update, Delete)HTTP 요청을 받는 입장이였습니다.실제 서비스에서는 외부 다른 서비스의 기능을 활용하기 위해서라도
HTTP요청을 보내는 경우도 존재합니다.
EX : 평점을 기준으로 영화를 추천하는 서비스 등
Spring 에서 HTTP 요청을 보낼때 주로 사용하는 방식 이였습니다.Get, Post, Delete, Put 메소드 지원)▶ GET 요청
RestTemplate 객체를 생성합니다.GetDto 클래스를 만들어줌으로써, JSON 데이터로 반환합니다.✔ RestTemplate 는 비동기 호출을 할수 없습니다.
WebClient 를 사용하기 위해서는 아래의 의존성을 추가해줘야 합니다.
implementation 'org.springframework.boot:spring-boot-starter-webflux'
.retrieve : body를 바로 가져온다는 메소드 입니다..block 을 사용하면 RestTemplate 처럼 동기 호출로 사용 한다는 것입니다.동기
- 요청을 보내고 해당 요청에 대한 응답을 받아야 다음 동작을 실행
비동기
- 요청을 보내고 해당 요청에 대한 응답에 관계없이 다음 동작 실행
➡ 요청을 보낸 동작을 기다리지 않고, 동시에 다른 작업을 할수 있어 작업의 속도가 빠릅니다.
기존의
RestTemplate방식을 사용했더라면,
최악의 경우WebClient로 변경해야되는 결과를 초래할수도있습니다.
새롭게 시작하는 프로젝트에서는WebClient방식을 권장 한다고 합니다.
(API 문서화 명세서, Read.me 작성 제출)