html을 그냥 보내주는것이 아니라 서버에서 프로그래밍을 해서 html을 동적으로 바꿔서 내리는것 (JSP, PHP 등등)
⇒ 그것을 하기위해서 controller, model, view를 합쳐서 MVC라고 부름
옛날에는 view에 Controller가 포함되어잇는 구조였다. (MVC1 구조)
지금은 view는 화면에 관련된 일만, 비즈니스 로직, 서버 뒷단의 일은 controller가 맡아서 한다.
화면과 관련된 것들을 model에 담아서 화면에 넘겨준다.
html파일을 그대로 출력하는것이 아니라, 안에서 동적 처리(렌더링)를 하고 html로 변환 후 출력한다.
@ResponseBody
란?html에 나오는 <body>
를 의미하는것이 아니다!
http에서 Header부와 Body부가 있는데, http의 응답 Body 부분에 이 데이터를 넣어주겠다 라는 의미이다
API는 view 없이 그냥 데이터가 보내져 출력한다
@ResponseBody를 사용했을때, 서버 내부에서는 템플릿을 사용했을때 동작한 viewResolver 대신에 HttpMessageConverter 가 동작한다.
기본 문자가 들어오면 StringHttpMessageConverter 가 처리하고
기본 객체가 들어오면 MappingJackson2HttpMessageConverter 가 처리한다.
⇒ byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
=⇒ 요즘은 그냥.. json을 많이 한다..ㅎ