๊ฐ๋ฐ์ ์ทจ์ค์์ Spring Boot ๊ณต๋ถ
5๊ฐ์๊ฐ์ ๊ตญ๋น๊ต์ก์ด ๋๋๊ณ 1์ฃผ ์ ๋๋ ๋ณด์ ์ฌ๋ฆฌ๋ก ์๋ฌด๊ฒ๋ ์ํ๊ณ ๋์๋ค
ํน ์ฐ ํ๋ก 2์ฃผ ์ ๋ ํ ์ต ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ, ํ ์ต ๊ณต๋ถ๋ง ํ๋ฃจ ์ข
์ผ ํ๋ ค๋ ์๊ฐ์ด ์กฐ๊ธ ์๊น์ด ๋๋์ด ๋ค์ด์(์์ด๋ฅผ ๊ทธ๋๋ ๊ฝค ํ๋ ํธ์ด๋ผ) ์คํ๋ง๋ถํธ ๊ณต๋ถ๋ ๊ฐ์ด ์์ํด๋ณด๋ ค ํ๋ค.
์ฑ
์ด๋ฆ : ์ฝ๋ฉ ์์จํ์ต ์คํ๋ง๋ถํธ3 ์๋ฐ ๋ฐฑ์๋ ๊ฐ๋ฐ ์
๋ฌธ
ํ๊ฒฝ
- ์ธํ
๋ฆฌ์ ์ด
- JDK-17
์๋ ๊ตญ๋น ์์
์์๋ ์ดํด๋ฆฝ์ค๋ฅผ ์ฌ์ฉํ๋ค๊ฐ ์ด ์ฑ
์์๋ ์ธํ
๋ฆฌ์ ์ด์ JDK 17์ ์ฌ์ฉํ๋คํ์ฌ ์ธํ
๋ฆฌ์ ์ด๋ฅผ ์๋ก ์ค์นํด๋ดค์.
Spring MVC vs Spring Boot
์ฐ์ , Spring MVC ์ Spring Boot์ ์ฐจ์ด์ ์ ์๊ฐํด๋ดค๋ค.
๋ด๊ฐ ๋ฃ๊ธฐ๋ก๋ Spring MVC์์ ์ข ๋ ๋ฐ์ ๋ ๋ฒ์ ์ด Spring Boot์ธ ๊ฑธ๋ก ์๊ณ ์๋ค. ๊ทธ๋์ ์์ ์ ๊ฐ๋ฐ๋ ์น ํ์ด์ง์ ๊ฒฝ์ฐ Spring MVC๋ก ๊ฐ๋ฐ๋์๊ณ , ์ต๊ทผ์ ๋ง๋ค์ด์ง๋ ์น ํ์ด์ง๋ Spring Boot๋ก ๋ง์ด๋ค ๊ฐ๋ฐํ๋ค๊ณ ํ๋ค.
WAS ๋ด์ฅ ์๋ฒ
- Spring MVC๋ ๋ด์ฅ๋ ํฐ์บฃ ์๋ฒ๊ฐ ์์ด์ ๋ฐ๋ก ์ฐ๋ํด์ค์ผ ํจ
- Spring Boot๋ ๋ด์ฅ๋ ํฐ์บฃ ์๋ฒ๊ฐ ์์
์ค์ ์๋ํ
- Spring MVC๋ ๊ฐ์ข
xml ํ์ผ์ ์ค์ ๋ค์ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ์์
์ด ํ์
- Spring Boot๋ ์์์ ์ฒ๋ฆฌํด์ค! (์ด๊ฒ ์ ์ผ ํธํ๋ฏ,,!)
์์ง Spring Boot๋ก๋ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด๋ณด์ง ์์์ง๋ง, ์ฑ
์ผ๋ก ๊ณต๋ถํ๋ฉด์ ์ค์ต ๋ฐ๋ผํด๋ณธ ๊ฒฐ๊ณผ ํ์คํ Spring MVC ๋ณด๋ค ํธํ ๋ถ๋ถ์ด ๋ง์๋ค.
MVC ํจํด
- Model : ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ญํ
- View : ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด ๋ด๋น
- Controller : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๋ผ ์๋ฒ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์ญํ
โฃ
View ํ
ํ๋ฆฟ :
- ์น ํ์ด์ง๋ฅผ ํ๋์ ํ๋ก ๋ง๋ค๊ณ ์ฌ๊ธฐ์ ๋ณ์๋ฅผ ์ฝ์
ํด ์๋ก ๋ค๋ฅธ ํ์ด์ง์ธ ๊ฒ์ฒ๋ผ ๋ณด์ฌ์ฃผ๋ ๊ธฐ์
- Spring์ Mustache๋ผ๋ ๋๊ตฌ๋ฅผ ํตํด ๋ทฐ ํ
ํ๋ฆฟ์ ๋ง๋ค ์ ์์
- templates ๋๋ ํฐ๋ฆฌ์์ *.mustache ํ์ผ๋ก ์์ฑ
- html๋ก๋ ์ฌ๋ฌ ๋ณ์์ ๋ฐ๋ผ ๋ฐ๋๋ ํ์ด์ง๋ฅผ ๋ง๋ค ์ ์์ด์ mustache๋ฅผ ์ฌ์ฉ
( ์ปจํธ๋กค๋ฌ์์ model.addAttribute(๋ณ์๋ช
,๊ฐ)์ ๋ทฐ๋ก ๋๊ฒจ์ฃผ๋ฉด {{๋ณ์๋ช
}}์ผ๋ก ๋ฐ์ดํฐ ์ฌ์ฉ ๊ฐ๋ฅ )
โฃ ์ปจํธ๋กค๋ฌ :
- src > main > java ๋๋ ํฐ๋ฆฌ์์ *Controller.java๋ก ์์ฑ
- ์ด๋
ธํ
์ด์
์ ์ถ๊ฐํด์ค์ผ ํจ. @Controller ์ ์ธ ์
import org.springframework.stereotype.Controller; ๊ฐ ์๋์ผ๋ก ์ํฌํธ (์ด๊ฒ ํธํ๋ค๊ณ ํ ์ด์ )
- ๋ฉ์๋ ์์ฑ ์ @GetMapping("")์ผ๋ก ํด๋น ๋ฉ์๋๋ฅผ ์๋ธ๋ฆฟ์ผ๋ก ๋ง๋ค์ด์ค์ผํจ. URL ์์ฒญ ์ ์
์ปจํธ๋กค๋ฌ ๋์ ์์
1. ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ ๋ฐ์ ์ ์
2. ์์ฒญ์ ๋ฐ๋ฅธ ๋ฉ์๋ ์คํ
3. (Model์ ์ฌ์ฉํ๋ค๋ฉด) ๋ทฐ ํ
ํ๋ฆฟ ํ์ด์ง์์ ์ฌ์ฉํ ๋ณ์๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํด ๋ชจ๋ธ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ ๋ณ์๋ก ๊ฐ์ ธ์ด
4. (Model์ ์ฌ์ฉํ๋ค๋ฉด) ๋ชจ๋ธ์์ ์ฌ์ฉํ ๋ณ์๋ฅผ ๋ฑ๋ก
5. return ํจ์๋ก ๋ทฐ ํ์ด์ง ๋ฐํ
์ฑ
์๋ ์ํฉ์์ ํท๊ฐ๋ฆด ๋ ์ฐพ์์์ ๋ณด๋ ค๊ณ ๊ธ ์จ ๋ดค์ต๋๋ค
MVC๋ ์ฒ์์ ๋ฐฐ์ธ ๋ ์ ๋ง ์ดํด๊ฐ ์๋๋๋ฐ ํ๋ก์ ํธํ๋ฉด์ ์ง์ ์ฌ์ฉํด๋ณด๊ณ , ์ด๋ ๊ฒ ๋ฐ๋ก ๋ ๊ณต๋ถ๋ ํด๋ณด๋ ๋๋ฆ ์ดํด๊ฐ ์ ๋๋ ๊ฒ ๊ฐ๊ตฐ์
์กฐ๋ง๊ฐ ํผ์์ ๊ฒ์ํ ๋ง๋ค๊ธฐ ํ๋ก์ ํธ๋ ์งํํด๋ณผ ์์ ์ธ๋ฐ ํ ์ต ๊ณต๋ถ๋ ํ๋ฉด์ ํด์ผํ๊ธฐ ๋๋ฌธ์ ์๋ง ๋น ๋ฅด๊ฒ ์์ฑ์ ๋ชปํ ๋ฏ ํฉ๋๋คใ
ใ