Spring/강의

[📕 기초 Spring] 5-2. 응답 데이터(서버 → 클라이언트)와 처리 방법

가지코딩 2025. 5. 4. 17:30

📕 목차

  1. 응답 데이터(Response Data)
  2. 정적 리소스 (Static Resources)
  3. View Template (동적 HTML 생성)
  4. HTTP Message Body

1. 응답 데이터(Response Data)

응답 데이터(Response Data)

  • 클라이언트가 서버에 요청(Request)을 보낸 후, 서버가 이를 처리하고 클라이언트로 다시 보내는 데이터
  • 클라이언트가 요청한 정보를 제공하거나, 처리 결과를 알려주는 중요한 역할을 한다.

 

응답 데이터 처리 방식

  • 정적 리소스 (Static Resources)
  • View Template (동적 HTML 생성)
  • HTTP Message Body
  •  

2. 정적 리소스 (Static Resources)

정적 리소스 (Static Resources)

  • 파일 형태로 서버에 저장된 데이터를 클라이언트에게 그대로 전송하는 방식이다.
  • HTML, CSS, JavaScript, 이미지 파일(png, jpg 등) 같은 변경되지 않는 리소스들이 이에 해당한다.

 

 

* 정적 리소스 파일은 보통 src/main/resources/static 또는 src/main/resources/public 디렉토리에 저장된다.

 

클라이언트가 요청하면:

GET /images/logo.png

 

서버는 logo.png 파일을 그대로 응답한다.


3. View Template (동적 HTML 생성)

View Template (동적 HTML 생성)

  • 동적으로 생성된 HTML 콘텐츠를 서버에서 클라이언트로 전달하는 방식이다.
  • 서버는 클라이언트의 요청을 처리하고, 데이터를 바탕으로 HTML을 동적으로 생성하여 반환한다.
  • Thymeleaf, JSP, Freemarker 등 다양한 템플릿 엔진을 사용해 서버에서 동적으로 생성한 HTML을 클라이언트에 전달한다.
    • 데이터와 템플릿을 결합하여 응답을 생성한다.
    • @ModelAttribute 또는 @RequestParam 으로 받은 데이터를 템플릿 엔진을 통해 HTML로 전달한다.
@GetMapping("/welcome")
public String welcome(Model model) {
    model.addAttribute("message", "Hello, Spring!");
    return "welcome"; // welcome.html (View Template)
}
<html>
  <body>
    <h1 th:text="${message}"></h1>
  </body>
</html>

4. HTTP Message Body

HTTP Message Body

  • 서버는 요청에 대해 JSON, XML 등의 구조화된 데이터를 HTTP 본문(body)에 담아 클라이언트에 전달한다.
  • @ResponseBody, @RestController 어노테이션을 통해 JSON, XML 등을 반환한다.
  • 주로 API에서 사용되며, RESTful 서비스에서 중요한 방식이다.
@GetMapping("/user")
@ResponseBody
public User getUser() {
    return new User("John", 30);
}
{
  "name": "John",
  "age": 30
}