virtual thread
-
Spring WebClient와 버추얼 스레드, 어떻게 조합할까?Server/Spring Boot 2026. 1. 9. 16:04
Spring WebClient와 버추얼 스레드, 어떻게 조합할까?Spring에서 HTTP 클라이언트를 선택할 때 고민이 많다. RestTemplate은 deprecated 예정이고, WebClient는 리액티브라 러닝 커브가 있다. 그런데 Java 21 버추얼 스레드가 등장하면서 판도가 바뀌었다.이 글에서는 RestTemplate, WebClient, RestClient를 비교하고, 버추얼 스레드 환경에서 어떤 선택이 최선인지 정리한다.HTTP 클라이언트 3종 비교RestTemplate (레거시)@Service@RequiredArgsConstructorpublic class UserService { private final RestTemplate restTemplate; public UserR..
-
Spring Boot 3.x에서 @Async와 버추얼 스레드 조합하기Server/Spring Boot 2026. 1. 9. 15:57
기존 @Async는 플랫폼 스레드 풀을 사용한다. 동시 요청이 많아지면 스레드 고갈 문제가 발생하고, 풀 사이즈를 늘리면 메모리 부담이 커진다. Java 21의 버추얼 스레드를 @Async와 조합하면 이 문제를 해결할 수 있다.이 글에서는 설정 방법부터 실무 적용 시 주의점까지 정리한다.배경 지식@Async 기본 동작@Async를 붙이면 해당 메서드는 별도 스레드에서 실행된다. 기본적으로 SimpleAsyncTaskExecutor를 사용하며, 보통은 ThreadPoolTaskExecutor로 커스터마이징해서 쓴다.버추얼 스레드 특징경량 스레드 (수십만 개 생성 가능)I/O 블로킹 시 자동으로 캐리어 스레드 반환JDK 21부터 정식 지원버추얼 스레드 원리에 대한 자세한 내용은 이전 글을 참고하자.설정 방법..