Home
>
Spring
>
๐[Spring] Spring MVC์์ `Model` ๊ฐ์ฒด.
Spring
Framework
๐[Spring] Spring MVC์์ Model
๊ฐ์ฒด.
1๏ธโฃ Model
๊ฐ์ฒด.
- Spring MVC์์
Model
๊ฐ์ฒด๋ ์ปจํธ๋กค๋ฌ์ ๋ทฐ ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ์ญํ ์ ํฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ์์ ์์ฑ๋ ๋ฐ์ดํฐ๋ฅผ
Model
๊ฐ์ฒด์ ๋ด์๋๋ฉด, ์ด ๋ฐ์ดํฐ๋ ๋ทฐ ํ
ํ๋ฆฟ(์: Thymeleaf, JSP)์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
-
Model
๊ฐ์ฒด๋ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ทฐ๋ก ๋ณด๋ด์ผ ํ๋์ง ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
2๏ธโฃ Model
๊ฐ์ฒด์ ์ฃผ์ ๊ธฐ๋ฅ.
-
1. ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ ๋ฌ.
-
Model
๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด, ํด๋น ๋ฐ์ดํฐ๋ ๋ทฐ์ ์ ๋ฌ๋์ด ํด๋ผ์ด์ธํธ์๊ฒ ํ์๋ฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์์ ์ด๋ฆ์ด๋ ๋ฆฌ์คํธ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ทฐ์ ์ ๋ฌํ ์ ์์ต๋๋ค.
-
2. ํค-๊ฐ ์ ํํ๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ.
-
Model
๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฅผ ํค-๊ฐ ์ ํํ๋ก ๊ด๋ฆฌํฉ๋๋ค.
- ๋ทฐ์์ ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋๋ ํค๋ฅผ ํตํด ์ ๊ทผํฉ๋๋ค.
-
3. ๋ทฐ ํ
ํ๋ฆฟ์์ ๋ฐ์ดํฐ ์ฌ์ฉ.
-
Model
์ ์ถ๊ฐ๋ ๋ฐ์ดํฐ๋ ๋ทฐ ํ
ํ๋ฆฟ์์ ๋ณ์๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ทฐ ํ
ํ๋ฆฟ ์์ง(์: Thymeleaf, JSP)์ ์ด ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋์ ์ธ HTML์ ์์ฑํ๊ณ , ์ด๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํํฉ๋๋ค.
3๏ธโฃ Model
๊ฐ์ฒด์ ์ฌ์ฉ ์.
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting(Model model) {
model.addAttribute("name", "John");
model.addAttribute("message", "Hello welcome to our website!");
// "greeting"์ด๋ผ๋ ๋ทฐ ์ด๋ฆ์ ๋ฐํ
return "greeting";
}
}
- ์ ์์ ์์
greeting()
๋ฉ์๋๋ Model
๊ฐ์ฒด์ "name"
๊ณผ "message"
๋ผ๋ ๋ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ์ด ๋ฐ์ดํฐ๋ ๋ทฐ ์ด๋ฆ
"greeting"
์ ์ ๋ฌ๋๋ฉฐ, ํด๋น ๋ทฐ ํ
ํ๋ฆฟ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
4๏ธโฃ ๋ทฐ ํ
ํ๋ฆฟ์์์ ์ฌ์ฉ(Thymeleaf)
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Greeting Page</title>
</head>
<body>
<h1 th:text="${message}">Default Message</h1>
<p>Hello, <span th:text="${name}">User</span>!</p>
</body>
- ์ด Thymeleaf ํ
ํ๋ฆฟ์์
${message}
์ ${name}
์ Model
๊ฐ์ฒด์ ๋ด๊ธด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด ๋์ ์ผ๋ก ์ฝํ
์ธ ๋ฅผ ์์ฑํฉ๋๋ค.
- ์ปจํธ๋กค๋ฌ์์
Model
์ ์ถ๊ฐ๋ "Hello, welcome to our website!"
์ "John"
์ด ๋ทฐ์ ๋ ๋๋ง๋ฉ๋๋ค.
5๏ธโฃ Model
, ModelMap
, ModelAndView
- Spring MVC์์
Model
์ธ์๋ ModelMap
๊ณผ ModelAndView
๋ผ๋ ์ ์ฌํ ๊ฐ์ฒด๋ค์ด ์์ต๋๋ค.
-
Model : ๊ฐ๋จํ ์ธํฐํ์ด์ค๋ก, ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์ ๋ฌ์ ์ํ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
-
ModelMap :
Model
์ ๊ตฌํ์ฒด๋ก, ๋ฐ์ดํฐ๋ฅผ ๋งต ํ์์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค.
-
ModelAndView : ๋ชจ๋ธ ๋ฐ์ดํฐ์ ๋ทฐ ์ด๋ฆ์ ํจ๊ป ๋ฐํํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ํ ๋ฒ์ ๋ชจ๋ธ๊ณผ ๋ทฐ ์ ๋ณด๋ฅผ ๋ชจ๋ ์ค์ ํ ์ ์์ต๋๋ค.
6๏ธโฃ ์์ฝ.
-
Model
๊ฐ์ฒด๋ Spring MVC์์ ์ปจํธ๋กค๋ฌ๊ฐ ๋ทฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ค์ํ ๊ตฌ์ฑ ์์์
๋๋ค.
- ์ด๋ฅผ ํตํด ๋์ ์ธ ์น ํ์ด์ง๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ต ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ํจ๊ณผ์ ์ผ๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.