@RequestBody , @ResponseBody
클라이언트가 서버로 요청을 보내는 경우 RequestBody를, 서버가 클라이언트로 응답을 보낼 때는 ResponseBody를 사용한다. 이때 객체를 반환시 자동으로 JSON변환 되어 반환된다.
클라이언트 → 서버 (RequestBody)
@RequestBody을 써서 요청 데이터를 서버로 보내면, HTTP 바디 부분에 있는 내용들을 java객체로 변환시켜서 객체로 저장한다.
서버 → 클라이언트 (ResponseBody)
@ResponseBody을 써서 응답 데이터를 클라이언트로 보내면, 데이터를 객체로 변환하여 HTTP 바디 부분에 넣으면서 클라이언트로 전송한다.
HttpMessageConverter
이렇게 뷰가 아니라 객체를 반환하기 때문에 viewResolver 대신에 HttpMessageConverter 가 동작한다.
- 기본 문자처리: StringHttpMessageConverter
- 기본 객체처리: MappingJackson2HttpMessageConverter
스프링이 어떤 정보가 반환되는지 파악하여 알맞은 HttpMessageConverter를 선택하여 처리한다.
정리
- 클라이언트 ↔ 서버 사이에서 HTTP 요청 또는 응답을 보낼 때, body부분에 문자 내용을 "직접 반환"할 때 사용한다.
- 즉, 객체를 직접 http 바디 부분에 반환하고 싶을 때 사용한다.
- 이때 객체는 자동으로 JSON으로 변환된다.
반응형
'Spring' 카테고리의 다른 글
annotation 정리 (0) | 2024.03.11 |
---|---|
Controller vs RestController (0) | 2024.03.09 |
Bean에 대하여 (0) | 2024.03.08 |
Portable Service Abstraction (2) | 2024.03.04 |
Aspect Oriented Programming (0) | 2024.03.04 |