DTO를 사용하는 이유

JSON으로 통신하기: @RequestBody@ResponseBody

<aside> 📌 @RequestBody@ModelAttribute

@RequestBody는 말 그대로 HTTP message의 body를 그대로 요청하겠다는 의미이다. 현대 웹 애플리케이션에서는 JSON으로 통신하는 경우가 대다수이기 때문에 사용된다. 요청에서 받은 body(JSON)는 HTTPMessageConverter에 의해 자바 객체로 매핑된다.

반면 @ModelAttributeHttpSession에 등록된 ModelAttribute를 가져오거나 요청 URL로 넘어온 쿼리 파라미터를 매핑하는 데에 사용된다. 파라미터들을 객체로 매핑해주는 건 같지만, HTTP message body를 읽어오지는 못한다.

</aside>