티스토리 뷰
Spring Rest Client
Spring Rest Client는 웹 서비스에 HTTP 요청을 보내고 응답을 받는 클라이언트입니다. 서버에 요청을 보내고 응답을 처리하기 위해 필요한 다양한 기능이 있는데 Spring에서 RestTemplate와 WebClient의 Rest Client를 제공합니다. RestTemplate는 Blocking I/O 기반의 동기식API입니다. 그렇기 때문에 절차 지향처럼 각 코드 라인이 끝나야 다음 라인으로 넘어갑니다. 즉 요청과 응답이 완료될때까지 스레드가 차단이 됩니다. WebClient는 Non-Blocking I/O 기반의 비동기API입니다. 그렇기 때문에 요청-응답 동작이 블로킹되지 않기 때문에 RestTemplate 성능이 좋습니다. Spring에서는 WebClient를 권장하고 있습니다.
@SpringBootTest와 @WebMvcTest의 차이점
@SpringBootTest 어노테이션은 전체의 Spring 애플리케이션 모든 구성요소가 로드됩니다. 즉 모든 Bean들을 로드하기 때문에 통합 테스트에 유리하고 데이터베이스, 외부 서비스 등 모든 종속성이 포함된 테스트가 가능합니다. @WebMvcTest 어노테이션은 MVC(모델-뷰-컨트롤러) 계층 테스트에 사용됩니다. SpringBootTest와는 다르게 애플리케이션 일부만 로드해서 주로 컨트롤러 계층의 테스트를 진행하고 합니다. 그리고 데이터베이스나 다른 외부 종속성은 Mock으로 가짜객체를 만들어서 제공하고 제한된 환경을 제공하는 단위 테스트에 적합합니다.
참고 블로그
https://goodgid.github.io/Spring-Rest-Client-RestTemplate-And-WebClient/
Spring Rest 클라이언트(Client) : RestTemplate과 WebClient
Index
goodgid.github.io
'면접' 카테고리의 다른 글
절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점, ‘시간복잡도‘와 ‘공간복잡도’란 무엇인가? 그리고 이것들은 왜 중요한가? (0) | 2023.06.09 |
---|---|
웹 서버와 WAS의 차이점, Stack과 Queue 그리고 Array와 Linked List 자료구조에 대한 개념과 차이점 (0) | 2023.06.08 |
List, Set, Map, HashMap의 차이, Spring Container (0) | 2023.06.02 |
JPA의 영속성 컨텍스트, 제네릭 (0) | 2023.06.01 |
DI 장점, Spring MVC에서의 예외 처리 기법 (0) | 2023.05.31 |
- Total
- Today
- Yesterday
- aws
- CodeDeploy
- Load Balancer
- 인스턴스
- 위치의 중요성
- 로드밸런서
- 로드 밸런서
- HTML
- Auto Scaling
- githubactions
- java
- flask
- 시작 템플릿
- JWT
- 오토 스케일링
- CICD
- script
- EC2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |