Spring - @RequestBody & @ResponseBody

박민수·2023년 11월 14일
0

Spring

목록 보기
13/46
post-thumbnail

스프링에서 비동기 처리를 하는 경우 @RequestBody, @ResponseBody를 사용한다.
이러한 비동기 통신을 하기 위해서는 클라이언트에서 서버로 요청 메시지를 보내거나, 서버에서 클라이언트로 응답을 보낼 때에 본문(Body)에 데이터를 담아서 보내야 한다. 클라이언트에서 서버로 통신하는 메시지를 요청 이라고 하고, 반대로 서버에서 클라이언트로 통신하는 메시지를 응답 이라고 한다.

비동기 통신을 할 때 예를들어 JSON으로 요청한 파라미터를 JAVA에서 받으려면 JAVA 객체로 변환이 필요하고, 반대로 응답의 경우에도 JAVA 객체를 JSON으로 변환이 필요한데, 이러한 역학을 해주는 것이 바로 ResponseBody와 RequestBody이다.

@RequestBody

@RequestBody는 클라이언트에서 서버로 보내온 요청 본문에 담긴 메시지들(JSON, XML 등)을 HttpMessageConverter를 통해 Java 객체로 변환 해주는 기능을 제공한다.

  • JSON 요청 -> HTTP 메시지 컨버터 -> 객체
  • @RequestBody 생략 불가능(@ModelAttribute 가 적용되어 버림)
  • HttpMessageConverter 사용 -> MappingJackson2HttpMessageConverter 적용

@ResponseBody

@ResponseBody는 서버에서 클라이언트로 응답 데이터를 전송하기 위해서 사용된다.

  • 객체 -> HTTP 메시지 컨버터 -> JSON 응답 (객체를 반환하면 객체가 JSON으로 변환됨)
  • 메시지 바디 정보 직접 반환(view 조회X)
  • Java 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송한다.
  • HttpMessageConverter를 사용하여 처리한다.
    • 기본 문자처리: StringHttpMessageConverter 적용
    • 기본 객체처리: MappingJackson2HttpMessageConverter 적용

참조
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1

profile
안녕하세요 백엔드 개발자입니다.

0개의 댓글