스프링 MVC 1편 - HTTP 응답 기능

hyuk·2023년 11월 20일
0
post-thumbnail

📌 HTTP 응답

주로 다음과 같은 3가지 방법으로 응답 데이터를 전송한다.

  • 정적 리소스
    예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다.

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

  • HTTP 메시지 사용
    : HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에
    JSON 같은 형식으로 데이터를 실어 보낸다.

정적 리소스

스프링 부트는 클래스패스의 다음 디렉토리에 있는 정적 리소스를 제공한다.
경로 : src/main/resources/static

뷰 템플릿

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

경로 : src/main/resources/templates

-1) String을 반환하는 경우

@ResponseBody ❌ ➜ 뷰 리졸버가 실행되어 뷰를 찾아 렌더링

@ResponseBody ⭕ ➜ HTTP 메시지 바디에 반환 값을 직접 입력

-2) Void를 반환하는 경우

명시성이 너무 떨어지며, 이렇게 딱 맞는 경우가 거의 없어 권장 ❌

HTTP 메시지

@ResponseBody, HttpEntity를 사용하면, 뷰 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 응답 데이터를 출력할 수 있다.

 @ResponseStatus(HttpStatus.OK)
 @ResponseBody
 @GetMapping("/response-body-json-v2")
 public HelloData responseBodyJsonV2() {
 	HelloData helloData = new HelloData();
 	helloData.setUsername("userA");
 	helloData.setAge(20);
 	return helloData;
 }

@RestController 애노테이션 사용 시, 모든 컨트롤러에 @ResponseBody 적용
➜ HTTP 메시지 바디에 데이터를 입력

Rest API(HTTP API)를 만들 때 사용하는 컨트롤러


📌 본 포스트는 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 통해 학습한 내용을 요약 및 정리한 것입니다.

profile
차곡차곡쌓아가는학습노트

0개의 댓글