스프링 웹 개발에는 3가지 방식이 있다.
1. 정적 콘텐츠
2. MVC와 템플릿 엔진
3. API
정적 콘텐츠
정적 콘텐츠는 이름에서도 유추해볼 수 있듯이 파일을 그대로 전달한다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello-Static</title>
</head>
<body>
정적 콘텐츠입니다.
</body>
</html>
MVC와 템플릿 엔진
MVC는 Model, View, Controller의 앞 글자를 따온 것으로,
MVC1 방식은 View와 Controller가 분리되지 않은 형태였다. 즉, 데이터베이스에 접근하거나 비즈니스 로직을 처리하는 모든 작업이 View에서 처리되는 방식으로, JSP가 이에 해당한다고 볼 수 있다.
반면 MVC2 방식은 공통 관심사를 분리하기 위해 View와 Controller로 분리하였고, 스프링은 MVC2 방식을 채택하여 사용한다.
@Controller
public class HelloController {
// MVC 방식
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam("name") String name, Model model) {
model.addAttribute("name", name);
return "hello-template";
}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Hello-template</title>
</head>
<body>
<h3>MVC와 템플릿 엔진 이용</h3>
<p th:text="'Hello, ' + ${name}" >Hello!</p>
</body>
</html>
API
API는 데이터만 전달할 경우 사용한다.
@Controller
public class HelloController {
// API 방식 (1) 문자 반환
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "Hi, " + name;
}
// API 방식 (2) 객체 반환
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@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;
}
}
}
'Spring Boot' 카테고리의 다른 글
[프로젝트 환경설정] view 환경설정 및 빌드 (0) | 2022.01.09 |
---|---|
[프로젝트 환경설정] 프로젝트 생성 (0) | 2022.01.08 |