종류
HTTP Response로 서버에서 클라이언트로 제공하는 데이터를 만드는 방법은 3가지가 있다.
- 방법
- 정적 리소스
: 웹 브라우저에 정적인 HTML / CSS / JS 을 제공
- 뷰 템플릿
: 웹 브라우저에 동적인 HTML을 제공하는 뷰 템플릿
- HTTP 메시지 사용
: HTTP Response Message Body에 JSON과 같은 형식으로 데이터를 실어 보냄
정적 리소스
스프링 부트의 클래스 패스(classpath)
/static
/public
/resources
/META-INF/resources
/src/main/resources는 리소스를 보관하는 곳이며, 클래스 패스의 시작경로이다.
- ex)
src/main/resources/static/basic/hello-form.html 이 있을 때
--> http://localhost:8080/basic/hello-form.html 로 접근 가능
--> 정적 리소스는 해당 파일을 변경 없이 그대로 서비스 하는 것을 말한다.
뷰 템플릿

JSP / 타임리프 / 머스태치 등 다양한 뷰 템플릿을 동적으로 만들어서 사용자에게 제공
스프링 부트는 기본 뷰 템플릿 경로를 제공한다
--> /src/main/resources/templates
Spring에서는 타임리프 템플릿 엔진을 기본적으로 권장한다.
application.properties에 prefix / suffix 설정 가능
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
HTTP 메시지 사용

responseBodyV2
ResponseEntity는 HttpEntity를 상속, HTTP Status Code를 직접 설정할 수 있음
responseBodyV3
@ResponseBody를 통해 응답 메시지 자체로 데이터를 받게 설정
ResponseEntity를 사용하면 Status Code를 직접 설정 할 수 있으며,
그렇지 않으면 @ResponseStatus 어노테이션으로 지정할 수도 있음.
실무에서는 Entity를 직접 반환하지 않고 무조건 DTO를 통해 HTTP response를 반환한다!
응답 메시지를 처리하는 과정에서도 HTTP 메시지 컨버터가 사용된다