์น์ ๊ฒฐ๊ตญ HTTP ๊ธฐ๋ฐ์ผ๋ก ํต์ ์ ํ๋ค.ํด๋ผ์ด์ธํธ์์ URL์ ์ ๋ ฅํ๋ฉด ์ธํฐ๋ท์ ํตํด ์๋ฒ์ ์ ์ํด์ ์๋ต๋ฐ์ HTML์ ๋ฐ์ ๋ณด์ฌ์ค๋ค.๊ฑฐ์ ๋ชจ๋ ํํ์ ๋ฐ์ดํฐ๋ฅผ HTTP๋ฅผ ํตํด ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.์๋ฒ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๋๋ถ๋ถ HTTP ์ฌ์ฉHTTP ๊ธฐ๋ฐ์ผ๋ก
์๋ธ๋ฆฟ์ ํฐ์บฃ ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ ์ง์ ์ค์นํ๊ณ , ๊ทธ ์์ ์๋ธ๋ฆฟ ์ฝ๋๋ฅผ ํด๋์ค ํ์ผ๋ก ๋น๋ํด์ ์ฌ๋ฆฐ ๋ค์, ํฐ์บฃ ์๋ฒ๋ฅผ ์คํํ๋ฉด ๋๋ค. ํ์ง๋ง, ์ด ๊ณผ์ ์ ๋งค์ฐ ๋ฒ๊ฑฐ๋กญ
์๋ธ๋ฆฟ๊ณผ ์๋ฐ ์ฝ๋๋ง์ผ๋ก๋ HTML์ ๋ง๋ค ์ ์๋ค. ์๋ธ๋ฆฟ ๋๋ถ์ ๋์ ์ผ๋ก ์ํ๋ HTML์ ๋ง์๊ป ๋ง๋ค ์ ์๋ค. ํ์ง๋ง, ์์ฒญ๋๊ฒ ๋ถํธํ๊ณ ์คํ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ๋๋ค. ์๋ฐ์ฝ๋์์ HTML ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค ์ฐจ๋ผ๋ฆฌ HTML ๋ฌธ์์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํด
ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ํจํด ์๊ฐ ์ด์ ์ฌ์ฉํ๋ MVC ํจํด์ ํ๊ณ์ ์ ๊ณตํต ์ฒ๋ฆฌ๊ฐ ํ๋ค๋ค๋ ๊ฒ์ด์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ํจํด์ ์ฌ์ฉํ๋ค. ๊ธฐ์กด์ MVC ํจํด๋ง ์ ์ฉํ ์ํ๋ ๋ค์๊ณผ ๊ฐ๋ค. ๊ณตํต ์ฝ๋๊ฐ ๋ชจ๋ ์ปจํธ๋กค๋ฌ์ ์ฐ์ฌ๋์ด์๊ณ , ํด๋ผ์ด์ธํธ๋ ๊ฐ๊ฐ์ ์ปจํธ
์ด์ ์ ์ง์ ๋ง๋ค์๋ MVC ํ๋ ์์ํฌ์ Spring MVC๋ฅผ ๋น๊ตํด๋ณด๋ฉด ๊ทธ ๊ตฌ์กฐ๊ฐ ๊ฑฐ์ ๋๊ฐ๋ค.
์์ฒญ ๋งคํ ์์ฒญ์ด ์์๋ ์ด๋ค ์ปจํธ๋กค๋ฌ์์ ๋งคํ์ ํ ๊ฒ์ธ์ง ์กฐ์ฌํด์ ๋งคํ์ ์งํํ๋ค. @Controller: ๋ฐํ ๊ฐ์ด String ์ด๋ฉด ๋ทฐ ์ด๋ฆ์ผ๋ก ์ธ์๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋ทฐ๋ฅผ ์ฐพ๊ณ ๋ทฐ๊ฐ ๋ ๋๋ง ๋๋ค. @RestController: ๋ฐํ ๊ฐ์ผ๋ก ๋ทฐ๋ฅผ ์ฐพ๋ ๊ฒ์ด ์๋,
HTTP ์์ฒญ ๋ฉ์์ง - ๋จ์ ํ ์คํธ HTTP message body์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ์์ฒญํ๋ ๋ฐฉ์์ HTTP API์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก, JSON, XML, TEXT ๋ฑ ๊ฑฐ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ค. ์ฃผ๋ก JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ํผ ์ ๋ ฅ์ ์ซ์๋ฅผ ๋ฌธ์๋ก ์์ฑํ๋ ๋ฑ์ ๊ฒ์ฆ ์ค๋ฅ๊ฐ ๋ฐ์ํด์ ์ค๋ฅ ํ๋ฉด์ผ๋ก ๋ฐ๋ก ์ด๋ํ๊ฒ ๋๋ฉด ์ฌ์ฉ์๋ ์ฒ์๋ถํฐ ํด๋น ํผ์ผ๋ก ๋ค์ ์ด๋ํด์ ์ ๋ ฅ์ ํด์ผ ํ๋ค. ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์ ์ ์ฅ์์ ๋งค์ฐ ๋ถํธํ๋ค. ์น ์๋น์ค๋ ํผ ์ ๋ ฅ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด
Bean Validation ์ด๋? Bean Validation์ ํน์ ํ ๊ตฌํ์ฒด๊ฐ ์๋ Bean Validation 2.0(JSR-380)์ด๋ผ๋ ๊ธฐ์ ํ์ค์ด๋ค. ๊ฒ์ฆ ์ ๋ ธํ ์ด์ ๊ณผ ์ฌ๋ฌ ์ธํฐํ์ด์ค์ ๋ชจ์์ด๋ค. JPA๊ฐ ํ์ค ๊ธฐ์ ์ด๊ณ ๊ทธ ๊ตฌํ์ฒด๋ก ํ์ด๋ฒ๋ค์ดํธ๊ฐ ์๋ ๊ฒ๊ณผ
HTML Form์ ํตํ ํ์ผ ์ ๋ก๋๋ฅผ ์ดํดํ๋ ค๋ฉด ๋จผ์ ํผ์ ์ ์กํ๋ ๋ค์ ๋ ๊ฐ์ง ๋ฐฉ์์ ์ฐจ์ด๋ฅผ ์ดํดํด์ผ ํ๋ค. application/x-www-form-urlencoded, multipart/form-data