종류
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 메시지 컨버터
가 사용
된다