html
๊ฐ๋จํ Spring MVC Controller ๊ตฌ์ถ: ๋จ๊ณ๋ณ ๊ฐ์ด๋
๋ชฉ์ฐจ
- ์๊ฐ - 1 ํ์ด์ง
- Spring MVC Starter Project ์ค์ - 2 ํ์ด์ง
- Home Controller ์์ฑ - 4 ํ์ด์ง
- Home View ๋์์ธ - 6 ํ์ด์ง
- ์ดํ๋ฆฌ์ผ์ด์ ์คํ ๋ฐ ํ ์คํธ - 8 ํ์ด์ง
- ๊ฒฐ๋ก - 10 ํ์ด์ง
---
์๊ฐ
๊ฐ๋จํ Spring MVC Controller ๊ตฌ์ถ์ ๋ํ ์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ์ค๋๋ ์ ๋น ๋ฅด๊ฒ ๋ณํํ๋ ๊ฐ๋ฐ ํ๊ฒฝ์์ Spring MVC์ ๊ธฐ๋ณธ์ ์ดํดํ๋ ๊ฒ์ ๊ฒฌ๊ณ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ๊ฐ์ด๋๋ ์ด๋ณด์์ ๊ธฐ๋ณธ ์ง์์ ๊ฐ์ง ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ํ๋ฉฐ, Spring MVC ํ๋ก์ ํธ ์ค์ , Controller ์์ฑ, ๋ทฐ ๋์์ธ ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ํ ์คํธ์ ๋ํ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์๋ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ค์์ฑ ๋ฐ ๋ชฉ์
Spring MVC๋ Java ์ํ๊ณ์์ ์ค์ํ framework๋ก, ๋ช ํํ ์ฑ ์ ๋ถ๋ฆฌ๋ฅผ ํตํด ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. Spring MVC๋ฅผ ์๋ฌํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ค์ ์ ์ง๋ณด์ ๊ฐ๋ฅํ๊ณ ํจ์จ์ ์ธ ์น ์๋ฃจ์ ์ ๊ตฌ์ถํ๋ ๋ฅ๋ ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ฅ์ ๋ฐ ๋จ์
์ฅ์ | ๋จ์ |
---|---|
๋ช ํํ ์ฑ ์ ๋ถ๋ฆฌ | ์ด๋ณด์์๊ฒ๋ ํ์ต ๊ณก์ ์ด ๊ฐํ๋ฆ |
๊ด๋ฒ์ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ robust framework | ๊ตฌ์ฑ์ด verboseํ ์ ์์ |
๊ฐ๋ ฅํ ์ปค๋ฎค๋ํฐ ์ง์ | ๊ฐ๋จํ ์ดํ๋ฆฌ์ผ์ด์ ์๋ ๊ณผ๋ํ ์ ์์ |
๋ค๋ฅธ Spring ๋ชจ๋๊ณผ ์ํํ๊ฒ ํตํฉ๋จ | ๋ค์ํ Spring ๊ฐ๋ ์ ๋ํ ์ดํด๊ฐ ํ์ํจ |
Spring MVC๋ฅผ ์ธ์ ์ด๋์ ์ฌ์ฉํ ๊น
Spring MVC๋ ๊ตฌ์กฐ์ ์ด๊ณ ๋ชจ๋์ ์ ๊ทผ ๋ฐฉ์์ ์๊ตฌํ๋ ๋๊ท๋ชจ ์ํฐํ๋ผ์ด์ฆ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ด์์ ์ ๋๋ค. ์ ์ง๋ณด์์ฑ, ํ์ฅ์ฑ ๋ฐ ํ ์คํธ ๊ฐ๋ฅ์ฑ์ด ์ฐ์ ์ธ ํ๋ก์ ํธ์ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค.
---
Spring MVC Starter Project ์ค์
๊ฐ์
Controller ๋ฐ ๋ทฐ๋ฅผ ์์ฑํ๊ธฐ ์ ์ Spring MVC Starter Project๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค. ์ด ๊ธฐ์ด ๋จ๊ณ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์๋์ง ํ์ธํ์ฌ ํ๋ก์ ํธ ์งํ์ ์ํํ๊ฒ ํฉ๋๋ค.
๋จ๊ณ๋ณ ๊ฐ์ด๋
- ํ๋ก์ ํธ ๋ณต์ฌ ์์ฑ:
- ์ค์ ๊ณผ์ ์ ๊ฐ์ํํ๊ธฐ ์ํด ๊ธฐ์กด Spring MVC ํ๋ก์ ํธ๋ฅผ ๋ณต์ ํ๋ ๊ฒ๋ถํฐ ์์ํ์ธ์.
- ๋ช ํ์ฑ์ ์ํด ๋ณต์ฌ๋ ํ๋ก์ ํธ ์ด๋ฆ์ Spring MVC Starter Project๋ก ๋ณ๊ฒฝํ์ธ์.
- ํฐ๋ฏธ๋์์ ํ๋ก์ ํธ ์ด๊ธฐ:
- ํ๋ก์ ํธ ํด๋๋ฅผ ์ฐํด๋ฆญํ๊ณ Open in Terminal์ ์ ํํ์ธ์.
- Linux ๋ฐ Mac ์ฌ์ฉ์๋ ํฐ๋ฏธ๋์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ธ์.
- VS Code์์ ํ๋ก์ ํธ ๋ก๋ํ๊ธฐ:
- ํฐ๋ฏธ๋์์ code . ๋ช ๋ น์ ์คํํ์ฌ Visual Studio Code์์ ํ๋ก์ ํธ๋ฅผ ์ฌ์ธ์.
- VS Code๋ ์๋์ผ๋ก ํ๋ก์ ํธ ํด๋๋ฅผ ์ฑ์ ๊ฐ๋ฐ ๊ณผ์ ์ ๊ฐ์ํํฉ๋๋ค.
ํ๋ก์ ํธ ๊ตฌ์กฐ
ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๊ฒ์ ํจ์จ์ ์ธ ํ์๊ณผ ๊ฐ๋ฐ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์๋๋ ํ์ ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ์ ๋ํ ๊ฐ์์ ๋๋ค:
๋๋ ํ ๋ฆฌ/ํ์ผ ๊ฒฝ๋ก | ์ค๋ช |
---|---|
src/main/java/org/studyeasy/SpringStarter/SpringStarterApplication.java | ๋ฉ์ธ ์ดํ๋ฆฌ์ผ์ด์ ํด๋์ค |
src/main/java/org/studyeasy/SpringStarter/Controller/HomeController.java | ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํ Home Controller |
src/main/resources/templates/home.html | home ๋ทฐ๋ฅผ ์ํ HTML ํ ํ๋ฆฟ |
pom.xml | ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ์ํ Maven ๊ตฌ์ฑ ํ์ผ |
.vscode/settings.json | VS Code ์ ์ฉ ์ค์ |
๋๊ตฌ ๋ฐ ์์กด์ฑ
- Visual Studio Code (VS Code): Java ๊ฐ๋ฐ์ ์ง์ํ๋ ๋ค์ฌ๋ค๋ฅํ ์ฝ๋ ํธ์ง๊ธฐ.
- Maven: ํ๋ก์ ํธ ์์กด์ฑ์ ๊ด๋ฆฌํ๋ ๋น๋ ์๋ํ ๋๊ตฌ.
- Spring Framework: MVC ์ํคํ ์ฒ ๊ตฌ์ถ์ ์ํ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
---
Home Controller ์์ฑ
๊ฐ์
Controller๋ Spring MVC ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค์ถ๋ก, ๋ค์ด์ค๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ ์ ํ ์๋ต์ ๋ฐํํฉ๋๋ค. ์ด ์น์ ์์๋ ํ ํ์ด์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฐ๋จํ HomeController๋ฅผ ์์ฑํ ๊ฒ์ ๋๋ค.
๋จ๊ณ๋ณ ๊ฐ์ด๋
- Controller ํด๋์ค ์์ฑ:
- ํ๋ก์ ํธ ๋ด Controller ํจํค์ง๋ก ์ด๋ํ์ธ์.
- ์๋ก์ด Java ํด๋์ค ์ด๋ฆ์ HomeController.java๋ก ์์ฑํ์ธ์.
- Controller ์ฃผ์ ์ถ๊ฐ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package org.studyeasy.SpringStarter.Controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/home") public String home(Model model) { return "home"; } } |
- @Controller: ํด๋์ค๋ฅผ Spring MVC controller๋ก ํ์ํฉ๋๋ค.
- @GetMapping("/home"): HTTP GET ์์ฒญ์ home ๋ฉ์๋์ ๋งคํํฉ๋๋ค.
์ฝ๋ ์ค๋ช
๋ฉ์๋ ์๊ทธ๋์ฒ:
1 |
public String home(Model model) |
- Model: ๋ชจ๋ธ ์์ฑ์ ์ํ ํ๋๋ฅผ ์ ์ํ๋ ์ธํฐํ์ด์ค์ ๋๋ค.
- String: ๋ทฐ์ ์ด๋ฆ(home.html)์ ๋ฐํํฉ๋๋ค.
๋ฆฌํด ๋ฌธ:
1 |
return "home"; |
- Spring์๊ฒ home.html ๋ทฐ๋ฅผ ๋ ๋๋งํ๋๋ก ์ง์ํฉ๋๋ค.
๋ณด์ถฉ ์ ๋ณด
- @Controller: ํด๋์ค๊ฐ MVC ํจํด์์ controller๋ก ์ญํ ์ ํ๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
- @GetMapping: GET ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ @RequestMapping์ ํน์ํ๋ ํํ์ ๋๋ค.
---
Home View ๋์์ธ
๊ฐ์
Spring MVC์ ๋ทฐ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ ๋๋งํ๋ ์ญํ ์ ํฉ๋๋ค. ํ ํ์ด์ง๋ฅผ ํ์ํ๊ธฐ ์ํ ๊ฐ๋จํ home.html ํ ํ๋ฆฟ์ ์์ฑํ ๊ฒ์ ๋๋ค.
๋จ๊ณ๋ณ ๊ฐ์ด๋
- Home View ํ์ผ ์์ฑ:
- src/main/resources/templates/๋ก ์ด๋ํ์ธ์.
- ์๋ก์ด HTML ํ์ผ ์ด๋ฆ์ home.html๋ก ์์ฑํ์ธ์.
- HTML ํ ํ๋ฆฟ ๋์์ธ:
1 2 3 4 5 6 7 8 9 10 11 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Home Page</title> </head> <body> <h1>Welcome to the Home Page</h1> <p>This is a simple Spring MVC application.</p> </body> </html> |
- DOCTYPE ์ ์ธ: ๋ฌธ์ ์ ํ์ HTML5๋ก ์ ์ํฉ๋๋ค.
- ํ์ดํ: ๋ธ๋ผ์ฐ์ ํญ์ ํ์๋ ํ์ด์ง ์ ๋ชฉ์ ์ค์ ํฉ๋๋ค.
- ๋ณธ๋ฌธ ๋ด์ฉ:
- h1: ์ฃผ์ ์ ๋ชฉ์ ๋๋ค.
- p: ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋จ๋ฝ์ ๋๋ค.
๋ณด์ถฉ ์ ๋ณด
- Thymeleaf ํตํฉ:
- Spring MVC๋ ์ผ๋ฐ์ ์ผ๋ก ํ ํ๋ฆฟ ์์ง์ผ๋ก Thymeleaf๋ฅผ ์ฌ์ฉํฉ๋๋ค.
${variable}
๊ณผ ๊ฐ์ ํํ์์ ์ฌ์ฉํ์ฌ ๋์ ์ฝํ ์ธ ๋ ๋๋ง์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
---
์ดํ๋ฆฌ์ผ์ด์ ์คํ ๋ฐ ํ ์คํธ
๊ฐ์
Controller์ ๋ทฐ๋ฅผ ์ค์ ํ ํ ๋ค์ ๋จ๊ณ๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ๊ธฐ๋ฅ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค.
๋จ๊ณ๋ณ ๊ฐ์ด๋
- Spring ์ดํ๋ฆฌ์ผ์ด์
์คํ:
- VS Code์์ SpringStarterApplication.java๋ก ์ด๋ํ์ธ์.
- ์ฐํด๋ฆญํ๊ณ Run as Java Application์ ์ ํํ์ธ์.
- ๋ผ์ด๋ธ ์๋ฒ ์ ์:
- ํฐ๋ฏธ๋์ ์ ๊ณต๋ Live Server ๋งํฌ๋ฅผ ํด๋ฆญํ๊ฑฐ๋ ๋จ์ถํค๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ดํ๋ฆฌ์ผ์ด์ ์ด ๊ธฐ๋ณธ ์น ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฆฝ๋๋ค.
- ํ ํ์ด์ง ํ
์คํธ:
- http://localhost:8080/home์ผ๋ก ์ด๋ํ์ธ์.
- "Welcome to the Home Page" ๋ฉ์์ง๊ฐ ํ์๋์ด์ผ ํฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ
- ๋น ํ์ด์ง ํ์๋จ:
- home.html ํ์ผ์ด templates ๋๋ ํ ๋ฆฌ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ฐฐ์น๋์๋์ง ํ์ธํ์ธ์.
- HomeController๊ฐ ์ ๋๋ก ์ฃผ์ ์ฒ๋ฆฌ๋๊ณ ๋งคํ๋์๋์ง ํ์ธํ์ธ์.
- ์๋ฒ๊ฐ ์์๋์ง ์์:
- ์ฝ๋์ ์ปดํ์ผ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ์ธ์.
- pom.xml์ ๋ชจ๋ ์์กด์ฑ์ด ์ฌ๋ฐ๋ฅด๊ฒ ํด์๋์๋์ง ํ์ธํ์ธ์.
๋ณด์ถฉ ์ ๋ณด
- Live Server ํ์ฅ:
- VS Code์ Live Server ํ์ฅ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ฏธ๋ฆฌ ๋ณผ ์ ์๋ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
- ์ด ์ค์ ์์๋ ์์ ํ ํ์ฉ๋์ง ์์ง๋ง ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ๊ทผํ๋ ํธ๋ฆฌํ ๋จ์ถํค๋ก ์ฌ์ฉ๋ฉ๋๋ค.
---
๊ฒฐ๋ก
์ด ๊ฐ์ด๋์์๋ ๊ฐ๋จํ Spring MVC ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค์ ํ๋ ๊ณผ์ ์ ์ดํด๋ณด์์ต๋๋ค. ํ๋ก์ ํธ ์ด๊ธฐํ๋ถํฐ Controller ์์ฑ, ๋ทฐ ๋์์ธ ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์คํ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ฐ ๋จ๊ณ๋ ๋ช ํ์ฑ๊ณผ ์ดํด์ ์ฉ์ด๋ฅผ ์ํด ์ธ์ฌํ๊ฒ ๋ค๋ฃจ์ด์ก์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ณธ์ ์๋ฌํ๋ฉด ๋ ๋ณต์กํ๊ณ ํ๋ถํ ๊ธฐ๋ฅ์ ๊ฐ์ถ Spring MVC ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋ ๊ธฐ๋ฐ์ ๋ง๋ จํ ์ ์์ต๋๋ค.
ํต์ฌ ์์
- ํ๋ก์ ํธ ์ค์ : ์ฌ๋ฐ๋ฅธ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ์ค์ ํ๋ ๊ฒ์ ํจ์จ์ ์ธ ๊ฐ๋ฐ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- Controller ์์ฑ: Controller๋ ๋ค์ด์ค๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ ์ ํ ๋ทฐ๋ก ์๋ดํฉ๋๋ค.
- ๋ทฐ ๋์์ธ: ๊น๋ํ๊ณ ๊ธฐ๋ฅ์ ์ธ HTML ํ ํ๋ฆฟ์ ์์ฑํ๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ด ํฅ์๋ฉ๋๋ค.
- ํ ์คํธ: ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ๊ธฐ์ ์ผ๋ก ์คํํ๊ณ ํ ์คํธํ์ฌ ๋ชจ๋ ๊ตฌ์ฑ ์์๊ฐ ์ํํ๊ฒ ์๋ํ๋์ง ํ์ธํฉ๋๋ค.
์ด ๊ฐ์ด๋๋ฅผ ๋ฐ๋ผํจ์ผ๋ก์จ ์ด๋ณด์๋ค์ Spring MVC์ ๋ํ ํํํ ๊ธฐ์ด๋ฅผ ๊ตฌ์ถํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ณ ๊ธ ํ๊ตฌ ๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๋ก ์ด์ด์ง๋๋ค.
์ฐธ๊ณ : ์ด ๊ธฐ์ฌ๋ AI์ ์ํด ์์ฑ๋์์ต๋๋ค.