WebClient가 빠른 진짜 이유: 논블로킹 I/O vs 블로킹 스레드
최근 저희 회사 시스템의 동기식 API 요청 병목 현상을 해결하기 위해 기존 Apache HttpClient 4.5 기반의 클라이언트를 Spring WebClient로 전환했습니다. 흥미로운 사실 : WebClient는 비동기 라이브러리이지만, 저희는 처음에 block()을 사용한 동기식 방식으로 처리하고 있습니다. 왜냐면 webflux를 도입하지 않았었거든요그럼에도 불구하고, 기존 ApacheHttpClient 사용 시 최대 병목 시간이 약 18초였던 반면, WebClient 도입 후에는 11초 수준으로 줄어드는 개선이 있었습니다.같은 동기식 요청 구조임에도 이런 차이가 발생한 게 신기해서 WebClient가 빠른 진짜 이유내부 구조, Netty, 이벤트 루프, 커넥션 풀에 대해 뜯어 보고 정리해 보았..
2025. 8. 3.
최근댓글