-
[Spring] HttpMessageConverterSpring 2025. 4. 17. 11:40
Spring
🔥 HttpMessageConverter
🎯 View(화면 표시)를 응답하는 것이 아닌, Rest API(HTTP API)로 JSON, TEXT, XML 등의 데이터를
응답 Message Body에 직접 입력하는 경우 HttpMessageConverter를 사용한다.
※ @RestController = @Controller + @ResponseBody
1. SSR → @Controller + View Template → 서버 측에서 화면을 동적으로 그린다.
2. CSR → @RestController + Data → 클라이언트 측에서 화면을 동적으로 그린다.
3. 실제로는 두가지 기술이 함께 사용되는 경우가 많다.
✅ 역활
HTTP 요청/응답을 Java객체와 변환하는 중간 다리 역활을 함.
✅ HttpMessageConverter 동작 순서

HTTP응답 메세지 Body에 데이터를 직접 입력 후 반환한다.
요청 AcceptHeader + Controller 반환 타입 ViewResolver가 아닌 HttMessageConverter가 동작한다.

✅ 언제 작동하는가?
상황 설명 요청 받을때 JSON등 → Java객체(@RequestBody) 응답 보낼때 Java → Json 등 (@ResponBody, RestController) ✅ 우선순위
Spring은 다양한 HttpMessageConverter를 제공하고 있고 우선순위가 있다. 대상 Class와 MediaType을 체크해서 어떤 Converter를 사용할지 결정한다.
✅ 대표적인 HttpMessageConverter
ByteArrayHttpMessage
ConverterStringHttpMessage
ConverterMappingJackson2HttpMessage
Converter처리 Type byte[] String Json Target byte[] String Json Media Type */* */* application/json 반환 apllication/octet-stream text/plain application/json ✅ 기타
이외에도 기본적으로 제공되는 다양한 MessageConverter가 존재한다.
대부분의 경우 위 세가지로 해결이 된다.
'Spring' 카테고리의 다른 글
[Spring] HttpMessageConverter(2) (0) 2025.04.17 [Spring] ArgumentResolver (0) 2025.04.17 [Spring] 트랜잭션 (0) 2025.04.17 [Spring] 고아 객체 (0) 2025.04.17 [Spring] 영속성 전이 (Cascade) (0) 2025.04.17
