@Controller
는 반환값이 String이면 뷰 이름으로 인식하기 때문에 View를 찾아 렌더링한다.@RestController
는 반환 값을 HTTP Message Body에 바로 입력한다.@RestController
안에는 @ResponseBody
가 포함되어 있다.View 조회를 무시하고, HTTP Message Body에 직접 해당 내용을 입력한다.
비동기 통신을 할 때 클라이언트와 서버는 본문(body)에 데이터를 담아서 주고받는다.
이 때 가장 대표적으로 사용하는 데이터 형식이 JSON이다.
@RequestBody
와 @ResponseBody
는 각각 HTTP request body를 자바 객체로 변환하고, 자바 객체를 다시 HTTP response body로 변환한다.