(Spring) HTTP 응답 방식 3가지 - 정적 리소스, 뷰 템플릿, HTTP 메시지

Sue·2022년 4월 29일
0

Spring Boot

목록 보기
5/5

출처: 인프런 김영한님 스프링 웹 MVC 1편

스프링에서 응답 데이터를 만드는 방법은 크게 3가지이다.

1. 정적 리소스

예) 웹 브라우저에 정적인 HTML, css, js을 직접 제공할 때 사용

  • 스프링 부트의 경우, 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공

    /static , /public , /resources , /META-INF/resources

src/main/resources 는 리소스를 보관하는 곳이고, 또 클래스패스의 시작 경로이다.
따라서 다음 디렉토리에 리소스를 넣어두면 스프링 부트가 정적 리소스로 서비스를 제공한다.

정적 리소스 경로
src/main/resources/static

다음 경로에 파일이 들어있으면
src/main/resources/static/basic/my-form.html

웹 브라우저에서 다음과 같이 실행하면 된다.
http://localhost:8080/basic/my-form.html
정적 리소스는 해당 파일을 변경 없이 그대로 서비스한다.

2. 뷰 템플릿 사용

예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다.

  • 스프링 부트의 경우, 타임리프 템플릿 엔진을 사용하여 뷰 템플릿을 작성할 수 있다.

3. HTTP 메시지 사용

  • HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에
    JSON 등의 형식으로 데이터를 실어 보낸다.
  • 요즘 가장 많이 사용하는 방식

추가로..

PRG 패턴

  • HTTP API를 사용하지 않는 경우에, PRG 패턴을 많이 사용한다.
  • PRG 패턴이란 Post/Redirect/Get 패턴으로, Post 요청 이후 새로고침 시 같은 Post 요청이 또 반복해서 일어나는 문제를 보완하기 위한 패턴이다.
  • 따라서 Post 요청을 처리한 후 Redirect를 통해 다른 페이지를 Get하여 화면에 보여준다.
  • 이 패턴을 많이 사용한다고 강사님께서 말씀해주셨는데 토이 프로젝트를 하면서 쓴 적이 없고 또 생소했기 때문에 더 찾아보았다. 그 결과 HTTP API를 사용하지 않는 경우에 많이 사용한다고 결론지을 수 있었다.
  • 요즘 REST API로 개발이 많이 이루어지기 때문에, 이렇게 API 통신을 할 경우엔 PRG 패턴이 필요하지 않다.

0개의 댓글