Spring MVC 1편 스프링 MVC - HTTP응답
스프링 (서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다.
정적 리소스
- 예 ) 웹 브라우저에서 "정적 (static)인" HTML, css, js를 제공할때는 "정적 리소스"를 사용한다.
- 정적 리소스는 해당 파일을 변경없이 그대로 서비스하는 것이다.
뷰 템플릿 사용
- 예 ) 웹 브라우저에 동적인 HTML을 제공 할때는 뷰 템플릿을 사용한다.
- 뷰 템플릿을 거쳐서 HTML이 생성되고, 뷰가 응답을 만들어서 전달한다.
- 스프링 부트는 기본 뷰 템플릿을 제공한다. (resource --> template)

- String을 반환하는경우
- @ResponseBody가 없으면 뷰 리졸버가 실행되어, View를 찾고, 렌더링한다.
- @ResponseBody가 있을경우는 뷰 리졸버를 실행하지않고, HTTP 메시지 바디에 "response/hello"라는 문자가 반환된다.
- Void를 반환하는경우 (권장 X)
- 명시성이 너무 떨어지고, 딱 맞아 떨어지는 경우도 적어 권장하지 않는 방법이다.
HTTP 메시지 사용
- 정적 리소스나, View 템플릿을 거치지않고, 직접 HTTP 응답메시지를 전달하는 경우를 말한다.
- 예) HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메서드 바디에 JSON 같은 형식으로 데이터를 실어보낸다.
- 참고
- @Controller + @ResponseBody = @RestController