logo

ObjectMapper는 꼭 try-catch로 써야 하는걸까?

language-logoSpring

• ObjectMapper는 주로 HTTP 통신에서 JSON 데이터를 객체로 변환하는 데 사용되며, 바이트 스트림을 JSON으로 변환하는 과정은 Spring MVC의 HttpMessageConverter가 담당한다.
• 예외 처리를 할 때 JsonProcessingException과 그 하위 클래스인 JsonMappingException을 올바르게 처리하지 못하고 있었으며, 이는 개발자가 제어할 수 없는 사용자 측의 휴먼 에러와 관련이 있다.
• 외부 협력사와의 API 통신에서 청크 전송이 문제를 일으켜 WebClient, RestClient, RestTemplate 사용 시 본문 내용이 비어있는 에러가 발생하며, 이를 해결하기 위해 MappingJackson2HttpMessageConverter의 getContentLength를 오버라이드하거나 요청 헤더에 Content-Type을 text/plain으로 설정하는 등의 방법이 제안된다.
• 스프링 6.1부터 메모리 최적화를 위해 RestClient와 RestTemplate의 구현체가 요청 바디를 버퍼에 담지 않도록 변경되었으며, 이로 인해 Content-Length 헤더가 세팅되지 않도록 수정되었고, 전송 전에 바디 버퍼를 강제로 사용하려면 ClientHttpRequestFactory를 BufferingClientHttpRequestFactory로 래핑해야 한다고 스프링 문서에서 안내하고 있다.

thumbnail
북마크
공유하기
신고하기
10분 분량
조회수 80
profile-image무호흡냥냥펀치
23일 전
Copyright © 2025. Codenary All Rights Reserved.