[6] 스프링 MVC (11) - HTTP response 데이터 (정적 리소스 / 뷰 템플릿 / HTTP message)

김정욱·2021년 5월 22일
0

[6] 스프링 MVC

목록 보기
11/13
post-thumbnail

종류

  • HTTP Response서버에서 클라이언트제공하는 데이터만드는 방법3가지가 있다.
  • 방법
    • 정적 리소스
      : 웹 브라우저정적HTML / CSS / JS 을 제공
    • 뷰 템플릿
      : 웹 브라우저동적인 HTML을 제공하는 뷰 템플릿
    • HTTP 메시지 사용
      : HTTP Response Message BodyJSON과 같은 형식으로 데이터를 실어 보냄

정적 리소스

  • 스프링 부트클래스 패스(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.propertiesprefix / suffix 설정 가능
/* 기본적으로 들어가 있는 설정이다. 타임리프가 템플릿 엔진 사용시 변경하면 된다. */
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

HTTP 메시지 사용

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

0개의 댓글