-
MVC, API ์๋ฆฌSpring 2022. 3. 22. 15:43
hello.html hello-template.html ๐น ์คํ๋ง MVC
: ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๋ฉด @Controller์ ์ง์ -> ์ปจํธ๋กค๋ฌ๋ ์์ฒญ์ ๋ํ ์์ ์ ์ํ -> ๋ทฐ๋ก ๋ฐ์ดํฐ ์ ๋ฌ
- Model : DB์ ์ฐ๋ํ์ฌ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์์๊ฒ ์ถ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฌ๋ค
- View : ์ฌ์ฉ์์๊ฒ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๋ถ๋ถ
- Controller : Model์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์๋ ค์ฃผ๋ ์ญํ
: ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ผ๋ฉด ๋ชจ๋ธ์ ํธ์ถํ๊ธฐ ์ ์ ์ ์ ํ ๊ฐ๊ณตํ๊ณ ๋ชจ๋ธ์ ํธ์ถํ๋ค
: ๋ชจ๋ธ์ด ์ ๋ฌด ์ํ์ ์๋ฃํ๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ View์๊ฒ ์ ๋ฌํ๋ค.
๐น @Controller
: ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํ ํ ์ง์ ๋ ๋ทฐ์ ๋ชจ๋ธ ๊ฐ์ฒด๋ฅผ ๋๊ฒจ์ฃผ๋ ์ญํ
: ํด๋น ์๋ฐ ํด๋์ค๊ฐ Controller์์ ์๋ ค์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค
๐น @GetMapping
: localhost:8080/hello ์์ฒญ์ด ๋ค์ด์ค๋ฉด hello() ๋ฉ์๋ ์คํํด๋ผ.
๐น Model ๊ฐ์ฒด
: Model ๊ฐ์ฒด๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๋ทฐ๋ก ๋๊ธธ ์ ์๋ค
: model.addAttribute("๋ณ์์ด๋ฆ","๋ณ์์ ๋ฃ์ ๋ฐ์ดํฐ๊ฐ"); ์ ์ด์ฉํด ๋๊ธธ ๋ฐ์ดํฐ์ ์ด๋ฆ๊ณผ ๊ฐ์ ๋ฃ๋๋ค
-> ๋ทฐ์ชฝ์์ ${๋ณ์์ด๋ฆ} ์ด์ฉํด ๊ฐ์ ๊ฐ์ ธ์จ๋ค
๐น return "hello"
: ์ปจํธ๋กค๋ฌ์์ ๋ฆฌํด๊ฐ์ผ๋ก ๋ฌธ์๋ฅผ ๋ฐํํ๋ฉด ๋ทฐ ๋ฆฌ์กธ๋ฒ(viewResolver)๊ฐ ํ๋ฉด์ ์ฐพ์์ ์ฒ๋ฆฌํ๋ค
: resources:templates/ +{ViewName} + .html
: Spring์ด ์๋์ผ๋ก src/main/resources์ templates์์ hello๋ผ๋ ์ด๋ฆ์ view๋ฅผ ์ฐพ์์ ๋ฐํํด์ค๋ค
๐น @RequestParam
: url ๋ค์ ๋ถ๋ ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ์ฌ์ฉํ๋ค
: http://localhost:8080/hello-mvc?name=spring!!!!!!!!
: ์์ ๊ฐ์ด url์ด ์ ๋ฌ๋ ๋ name ํ๋ผ๋ฏธํฐ(name์ ๋ด๊ธด value)๋ฅผ ๋ฐ์์ค๊ฒ ๋ฉ๋๋ค.
: @RequestParam("์ค์ ๊ฐ") String ์ค์ ํ ๋ณ์ ์ด๋ฆ๐น @ResponseBody
: @ResponseBody๋ฅผ ์ฌ์ฉํ๋ฉด ๋ทฐ ๋ฆฌ์กธ๋ฒ(viewResolver)๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค -> HttpMessageConverter๊ฐ ๋์
: ๋์ HTTP์ BODY์ ๋ฌธ์ ๋ด์ฉ์ ์ง์ ๋ฐํํ๋ค
: http://localhost:8080/hello-api?name=spring!!!!!!!!
: ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ฉด ๊ฐ์ฒด๊ฐ JSON์ผ๋ก ๋ณํ๋๋ค
โ JSON
: { key : value } ํ์
: ๋ฐ์ดํฐ๋ ์ผํ(,)๋ก ๋์ด
: ๊ฐ์ฒด(object)๋ ์ค๊ดํธ{}๋ก ๋๋ฌ์์ ํํ
: ๋ฐฐ์ด(array)์ ๋๊ดํธ[]๋ก ๋๋ฌ์์ ํํ
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฑ๊ธํค ์ปจํ ์ด๋ (0) 2022.04.12 ์คํ๋ง ์ปจํ ์ด๋์ ์คํ๋ง ๋น (0) 2022.04.12 Spring ํต์ฌ (0) 2022.04.11 ์คํ๋ง์ด๋?, SOLID, IoC, DI, ์ปจํ ์ด๋ (0) 2022.03.24 ํ๋ก์ ํธ ์์ฑ (0) 2022.03.17