
1. 정적 컨텐츠
- 컨텐츠 방식의 웹개발로 파일을 그래도 내려준다.
- Spring Boot는 정적 컨텐츠를 제공
1. src/main/resoutces/hello-static.html
<!DOCTYPE HTML>
<html>
<head>
<title>static content</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
정적 컨텐츠 입니다.
</body>
</html>

- 원하는 파일을 넣으면 그대로 반환을 한다.
- 프로그래밍을 할 수 없다.

2. MVC와 템플릿 엔진
- 서버를 변형 해서 HTML을 바꿔서 내려준다.
- MVC: model, View, Controller
- 요즘은 Controller랑 View를 쪼개서 뷰를 템플릿 엔진으로 html 프로그래밍 해서 렌더링 한다.

1. Controller
- 비지니스 로직, 내부적인 걸 처리하는데 집중해야 한다.
// Controller
@Controller
public class HelloController {
(...)
@GetMapping("Hello-mvc")
public String HelloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
...
2. View
- 화면을 그리는데 모든 역량을 집중해야 한다.
- hello-static.html 을 templates에 만든다.
<html xmlns:th="http://www.thymeleef.org">
<body>
<p th:text="hello. + ${name}"> hello! empty </p>
</body>
</html>

- 서버 접근 시 오류
// 오류 수정
package hello.hello_spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data", "hello!!");
return"hello";
}
@GetMapping("Hello-mvc")
public String HelloMvc(@RequestParam(value = "name", required = false) String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}


3. API
- 객체를 반환한다.
- json파일로 데이터를 전달하는 것
- Vue
- React
- Vue.js
- React
- 서버끼리 통신
1. @ResponseBody 문자변환
(...)
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController{
(...)
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name;
}
}
...
- @ResponseBody를 사용하면 뷰 리졸버를 사용하지 않음.
- 대신 HTTP의 BODY에 문자 내용을 직접 반환

2. @ResponseBody 객체 변환
@Controller
public class HelloController {
(...)
@GetMapping("hello-api")
@ResponseBody
public Hello helloAip(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello;
}
static class Hello{
private String name;
public String getName() {
return name;
}
public void setName(String name){
this.name = name;
}
}
}
- 문자가 아니라 객체를 주면, JSON방식으로 데이터를 만들어서 HTTP응답에 반환하겠다.


출처 : 김영한, 『스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술』, 인프런 강의.
'DEVELOPMENT > Spring' 카테고리의 다른 글
| 5. 회원 관리 예쩨 - 웹 MVC 개발 (0) | 2025.05.12 |
|---|---|
| 4. 스프링 빈과 의존관계 (0) | 2025.05.12 |
| 3. 회원 관리 예제 - 백엔드 개발 (0) | 2025.05.12 |
| 1. 프로젝트 환경설정 (0) | 2025.04.01 |
| 0. 강의 소개 (0) | 2025.04.01 |