관리 메뉴

이사작전.com IT Blog

HTTP body, RequestBody, ResponseBody란? 본문

A series of lectures/[면접 직전에 보는] Spring Framework

HTTP body, RequestBody, ResponseBody란?

말랑고양 플랫폼공작소 2019.02.08 18:14

[스프링 어노테이션 정리] 

02. @RequestBody, @ResponseBody, @ModelAttribute란?


[지난 시간 포스팅]

https://doctorson0309.tistory.com/401


안녕하세요. 이사작전.com 플랫폼공작소입니다. 지난 시간에 이어서 '스프링 어노테이션'에 관한 포스팅을 작성하겠습니다. 학부생들도 이해할 수 있을 정도로 명쾌하게 표현하려 노력하였습니다. 혹시 잘못된 부분이 있다면 지적해주세요. RequestBody, ResponseBody는 HTTP body를 다루는 어노테이션이므로 잠깐 짚고 넘어가겠습니다.


0. HTTP란?

- 프로토콜(약속)입니다. 정보를 주고받을 목적으로 만들어졌습니다.

- 대략 아래의 사진과 같은 모양입니다. HTTP body 부분에는 XML(또는 JSON)이 들어갈 수 있습니다.

<그림1> HTTP body부분에 XML 데이터가 들어간 모


<그림2> HTTP body부분에 JSON 데이터가 들어간 모


2. @RequestBody = 택배 분배기계 (받아서 내부로 분배)

- HTTP body안에 JSON을 VO에 맵핑

- HTTP 요청(Request)의 body안에 담겨있는 JSON(또는 XML)을 VO에 자동으로 맵핑시키는 어노테이션

reference : https://www.baeldung.com/spring-httpmessageconverter-rest


3. @RequestBody 예제

1
2
3
4
5
6
7
8
9
@RestController
public class LoginController{
    // HTTP 요청의 내용을 Member 객체에 매핑하기위해 @RequestBody 애너테이션을 설정한다.
    @RequestMapping("/login")
    public LoginVO test(@RequestBody User user){
        LoginVO loginVo = userService.login(user); 
        return loginVo;
    }
}
cs


4. @ResponseBody = 택배 분배기계 (내부에서 모아서 외부로 송신)

@ResponseBody on a Controller method indicates to Spring that the return value of the method is serialized directly to the body of the HTTP Response. As discussed above, the “Accept” header specified by the Client will be used to choose the appropriate Http Converter to marshall the entity.

컨트롤러 메서드 안에 기술된 리스폰스바디는 '함수의 return 값을 직렬화하여 HTTP Response의 body에 담을꺼야!' 라고 스프링에게 알려줍니다. +만약에 Accept에 application/json이라고 적었으면 함수의 return값을 JSON으로 바꿔서 HTTP body에 담을 것입니다.


- 함수의 return 값을 직렬화하여 HTTP Response의 body에 담습니다.

- VO 객체를 JSON으로 바꿔서 HTTP body에 담습니다.


tip) 혹시 직렬화가 무엇인지 모른다면 아래의 블로그를 참고해보세요!

reference : http://woowabros.github.io/experience/2017/10/17/java-serialize2.html


감사합니다. 도움이 되었다면 '공감'을 눌러주세요.

추가로 궁금한 점이 있다면 댓글에 남겨주세요.

다음 포스팅은 @ModelAttribute, @RequestParam, @Configuration에 대해서 알아보겠습니다.

다음 포스팅으로 이동 : https://doctorson0309.tistory.com/407

0 Comments
댓글쓰기 폼