WebClient와 CachingFilter 사용 시 InputStream 재사용 오류 해결
·
프로덕트 문제 해결 기록
문제 배경서비스에는 사용자가 이미지를 업로드하면, 해당 파일을 다른 인스턴스(배경 제거 워커) API 서버로 전달해 배경을 제거하는 기능이 있었습니다. 파일 전송은 Spring WebFlux의 WebClient를 사용하여 POST /ml/remove-background API를 호출하는 방식으로 구현되었습니다.스프링 서버는 WebClient를 사용했지만, 전체적인 비즈니스 로직 흐름에 맞춰 block()을 호출해 동기적으로 결과를 기다리는 구조였습니다.장애 발생과 증상최근 에러 모니터링 강화를 위해 요청 본문(Request Body)을 로깅하는 캐싱 필터(ContentCachingRequestWrapper 등)를 도입했습니다. 유닛 테스트는 모두 통과했지만, 실제 운영 환경에 배포한 직후부터 파일 전송이..