@ResponseBody @RequestBody

@ResponseBody @RequestBody

@RequestBody 어노테이션과 @ReponseBody 어노테이션의 사용

@RequestBody 를 통해서 자바 객체로 Conversion 을 할때 그냥 변환되는것이 아니라 HttpMessageConverter 를 사용하는데 아래의 메서드에 각종의 메시지 컨버터가 설정되어있습니다.

웹 서비스와 REST 방식이 시스템을 구성하는 주요 요소로 자리 잡으면서 웹 시스템간에 XML이나 JSON 등의 형식으로 데이터를 주고 받는 경우가 증가하고 있다.

이에 따라 스프링 MVC도 클라이언트에서 전송한 XML 데이터나 JSON 또는 기타 데이터를 컨트롤러에서 DOM 객체나 자바 객체로 변환해서 받을 수있는 기능(수신)을 제공하고 있으며,

비슷하게 자바 객체를 XML이나 JSON 또는 기타 형식으로 변환해서 전송할 수 있는 기능(송신)을 제공하고 있다.

@RequestBody 어노테이션과 @ResponseBody 어노테이션은 각각 HTTP 요청 몸체를 자바 객체로 변환하고 자바 객체를 HTTP 응답 몸체로 변환하는 데 사용된다.

@RequestBody 어노테이션을 이용하면 HTTP 요청 몸체를 자바 객체로 전달받을 수 있다. 비슷하게 @ResponseBody 어노테이션을 이용하면 자바 객체를 HTTP 응답 몸체로 전송할 수 있다.

@RequestBody :

- 메소드 매개 변수에 @RequestBody가 어노테이션 된 경우, Spring은 들어오는 HTTP request body를 해당 매개 변수에 바인드한다.

- 이를 수행하는 동안 Spring은 HTTP Message converter를 사용하여 요청에 있는 ACCEPT 또는 Content-Type 헤더를 기반으로 HTTP request body를 도메인 객체로 변환한다.

@ResponseBody :

- 메소드가 @ResponseBody로 어노테이션 된 경우, Spring은 반환 값을 나가는 HTTP response body에 바인딩한다.

- 이를 수행하는 동안 Spring은 요청 메시지의 HTTP 헤더에 있는 Content-Type을 기반으로 HTTP Message converter를 사용하여 반환 값을 HTTP response body로 변환한다.

클라이언트에서 서버로 필요한 데이터를 전송하기 위해서 JSON이라는 데이터를 요청 본문에 담아서 서버로 보내면, 서버에서는 @RequestBody 어노테이션을 사용하여 HTTP 요청 본문에 담긴 값들을 자바 객체로 변환 시켜, 객체에 저장시킵니다.

서버에서 클라이언트로 응답 데이터를 전송하기 위해서 @ResponseBody 를 사용하여 자바 객체를 HTTP 응답 본문의 객체로 변환하여 클라이언트로 전송시키는 역할을 합니다.

https://devbox.tistory.com/entry/Spring-RequestBody-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98%EA%B3%BC-ReponseBody-%EC%96%B4%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98%EC%9D%98-%EC%82%AC%EC%9A%A9

from http://hhnee.tistory.com/94 by ccl(A) rewrite - 2021-11-24 16:27:20