1. ์ ์ ์ปจํ ์ธ : Welcome Page์ฒ๋ผ ์๋ฒ์์ ๋ณ๋์ ๋์ ์์ด ํ์ผ์ ์๋ ๊ทธ๋๋ก ์ ์ก
2. MVC์ ํ ํ๋ฆฟ ์์ง : ๋์ ์ปจํ ์ธ ๋ฅผ ์ ์ก
3. API : JSON ๋ฐ์ดํฐ ํฌ๋งท์ผ๋ก ์ ์ก
1. ์ ์ ์ปจํ ์ธ
๋ง ๊ทธ๋๋ก ์์ HTML๋ก ์ด๋ฃจ์ด์ง ํ์ผ์ ์๋ฒ๊ฐ ๋ฐ๋ก ๋ ๋๋ง ์์ด ์ฌ์ฉ์์๊ฒ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด๋ค.
Spring์์๋ ์ ์ ์ฝํ ์ธ ๋ฅผ /static ํด๋์์ ๋ค๋ฃฌ๋ค.
1. ์ฌ์ฉ์๊ฐ ์ ์ ํ์ด์ง(hello.html)๋ฅผ ์์ฒญ
2. Spring Boot์ ๋ด์ฅ ํฐ์ผ ์๋ฒ๊ฐ ์ด๋ฅผ Spring Container์๊ฒ ์ ๋ฌ
3. Spring Container๋ ํ์ด์ง์ ํด๋นํ๋ Controller๊ฐ ์๋์ง ํ์ธ
4. ์๋ค๋ฉด resources ํด๋์ static/hello.html์ด ์๋์ง ์ฐพ๊ณ ์ฐพ๋๋ค๋ฉด ์ด๋ฅผ ์น๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ
2. MVC์ ํ ํ๋ฆฟ ์์ง(HTML์ผ๋ก)
์ฌ๊ธฐ์ MVC๋ Model-View-Controller๋ฅผ ์๋ฏธํ๋ค.
- Model : ๋ทฐ๊ฐ ๋ ๋๋งํ๋๋ฐ ํ์ํ ๋ฐ์ดํฐ
- View : ์ค์ ๋ก ์ฌ์ฉ์์๊ฒ ๋ณด์ด๋ ๋ถ๋ถ
- Controller : ์ฌ์ฉ์์ ์ก์ ์ ์๋ตํ๋ Component
MVC์์ ๋น์ฆ๋์ค ๋ก์ง์ Controller์์ ๋ด๋นํ๊ณ View๋ ๋จ์ํ ๊ทธ๋ฆฌ๋ ์ญํ ๋ง์ ๋ด๋นํ๋ค.
1. ์ฌ์ฉ์๊ฐ http://localhost:8080/hello-mvc?name={name}๋ฅผ ์์ฒญ
2. ๋ด์ฅ ํฐ์ผ ์๋ฒ์์ Spring Container์ ํด๋น ๋ด์ฉ์ ์ ๋ฌ
3. Spring Container๋ ํด๋น Controller๋ฅผ ์ฐพ๊ณ hello-template๋ฅผ ๋ฆฌํดํ๋ฉฐ model์ name์ ํด๋นํ๋ value๋ฅผ ์ ๋ฌ
4. viewReolver๊ฐ ํด๋นํ๋ ํ ํ๋ฆฟ์ ์ฐพ์์ html๋ก ๋ณํ ํ ์น๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ
3. API(JSON ๊ฐ์ฒด ๋ฐํ)
๋ฐฑ์๋๋ฅผ ๊ฐ๋ฐํ ๋ ํน์ ๋ก์ง์ ์ฒ๋ฆฌํ์ฌ html ํ์ผ๋ก ์ฃผ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ๋ฐฉ๋ฒ์ด ์๋๋ฐ API๋ ํ์์ ํด๋นํ๋ค. ์ผ๋ฐ์ ์ผ๋ก jsonํ์์ ๋ง์ด ์ฌ์ฉํ๋ค.
1. localhost:8080/hello-api?name={name}๋ฅผ ์์ฒญ
2. @ResponseBody์ ์ํด HTTP BODY์ ๋ฌธ์ ๋ด์ฉ ์ง์ ๋ฐํ
3. HttpMessageConvert๊ฐ ๋์์ ํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ฒด๋ json์ผ๋ก ์ฒ๋ฆฌ (String์ StringHttpMessageCoverter๋ก ์ฒ๋ฆฌ)