신규 전시 프로젝트에서 WebClient 사용하기
·2022.11.10 19:00
올리브영 전시 파트가 MSA 아키텍처로 전환하며 기존 RestTemplate 대신 WebClient를 도입한 사례를 소개한다.
올리브영 전시 파트는 기존 모놀리식 아키텍처에서 **MSA(Microservices Architecture)**로 전환하는 과정에 있습니다. 특히 '프리미엄관'의 프론트/백엔드 의존성을 분리하기 위한 신규 API 구축 과정에서 WebClient를 도입했습니다.
기존의 RestTemplate은 Blocking I/O 기반의 동기 방식인 반면, WebClient는 Non-Blocking 방식을 지원하여 동기/비동기 호출이 모두 가능합니다. 동시 사용자 수가 늘어날수록 WebClient가 RestTemplate보다 훨씬 뛰어난 성능을 보임을 확인했습니다.
실제 구현 시에는 다음과 같은 설정을 고려합니다:
- MaxInMemorySize: 메모리 이슈 방지를 위해 코덱의 버퍼 사이즈 조절
- TimeOut: 연결 및 응답 시간 제한 설정
- mutate(): 기존 WebClient 인스턴스를 복제하여 설정을 변경하는 불변성 유지 방법
WebClient는 Mono(0-1개 결과)와 Flux(0-N개 결과)를 사용하는 Reactor 기반의 Functional API를 제공합니다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.