๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ!
- Spring MVC
- Spring MVC ์์ฒญ ์ฒ๋ฆฌ ํ๋ฆ
- Spring MVC๋ฅผ ์ด์ฉํ ์ค์ต
โ๏ธ Spring MVC
- ์๋ธ๋ฆฟ(Servlet) API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ํธ๋ฆฌํ๊ฒ ์ฒ๋ฆฌํด์ฃผ๋ ํ๋ ์์ํฌ
- Spring Web MVC ๋ฅผ ์ค์ฌ์ Spring MVC
( Spring MVC ํ๋ ์์ํฌ ๋ผ๊ณ ๋ ๋ถ๋ฆ )
โ๏ธ ์๋ธ๋ฆฟ(Servlet)
โ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ํน์ ๊ท์ฝ์ ๋ง์ถ์ด์ Java ์ฝ๋๋ก ์์ฑํ๋ ํด๋์ค ํ์ผ
โ
( ์ํ์น ํฐ์บฃ(Apache Tomcat) - ์๋ธ๋ฆฟ๋ค์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์คํ์ด ๋๋๋ก ํด์ฃผ๋ ์๋ธ๋ฆฟ ์ปจํ ์ด๋(Servlet Container) ์ค ํ๋ )
โ M = Model
โ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ผ๋ก ๋๋ ค์ค ์์ ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ
- ์๋น์ค ๊ณ์ธต (Service Layer)
โ ํด๋ผ์ด์ธํธ์ ์์ฒญ ์ฌํญ์ ๊ตฌ์ฒด์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์์ญ- ๋น์ฆ๋์ค ๋ก์ง (Business Logic)
โ ์ค์ ๋ก ์์ฒญ ์ฌํญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด Java ์ฝ๋๋ก ๊ตฌํํ ๊ฒ
โ V = View
โ Model ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์น๋ธ๋ผ์ฐ์ ๊ฐ์ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๋ฆฌ์์ค(Resource)๋ฅผ ์ ๊ณตํ๋ ์ญํ
โ๏ธ View์ ํํ
1. HTML ํ์ด์ง์ ์ถ๋ ฅ
โ HTML ํ์ด์ง๋ฅผ ์ง์ ๋ ๋๋งํด์ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์กํ๋ ๋ฐฉ์
( SSR์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์ )
โ HTML ํ๊ทธ๋ก ๊ตฌ์ฑ๋ ํ์ด์ง์ Model ๋ฐ์ดํฐ๋ฅผ ์ฑ์ ๋ฃ์ ํ, ์ต์ข ์ ์ธ HTML ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์กํด์ค
( But, ์ด๋ ํ๋ก ํธ์๋, ๋ฐฑ์๋๊ฐ ํตํฉ๋ ๊ตฌ์กฐ )
โ
2.PDF, Excel ๋ฑ์ ๋ฌธ์ ํํ๋ก ์ถ๋ ฅ
โ Model ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํด์ PDF ๋ฌธ์๋ Excel ๋ฌธ์๋ฅผ ๋ง๋ค์ด์ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์กํ๋ ๋ฐฉ์
โ ๋ฌธ์ ๋ด์์ ๋ฐ์ดํฐ๊ฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ์
โ
3. XML, JSON ๋ฑ ํน์ ํ์์ ํฌ๋งท์ผ๋ก์ ๋ณํ
โ Model ๋ฐ์ดํฐ๋ฅผ ํน์ ํ๋กํ ์ฝ ํํ๋ก ๋ณํํด์ ๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ ํด๋ผ์ด์ธํธ ์ธก์ ์ ์กํ๋ ๋ฐฉ์
โ ํน์ ํ์์ ๋ฐ์ดํฐ๋ง ์ ์กํ๊ณ , ํ๋ฐํธ์๋ ์ธก์์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก HTML ํ์ด์ง๋ฅผ ๋ง๋๋ ๋ฐฉ์
( CSR์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์)
- ์ฅ์
- ํ๋ฐํธ์๋ ์์ญ / ๋ฐฑ์๋ ์์ญ์ด ๋ช ํํ๊ฒ ๊ตฌ๋ถ โ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์๊ฐ ์๋์ ์ผ๋ก ์ฉ์ด
- ํ๋ฐํธ์๋ ์ธก์์ ๋น๋๊ธฐ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋ฅํด์ง
โ๏ธ JSON ( JavaScript Object Notation )
โ Spring MVC์์ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ ํ์
โ ๊ธฐ๋ณธ ํฌ๋งท = {”์์ฑ”:”๊ฐ”} ํํ
โ C = Contoller
- ํด๋ผ์ด์ธํธ ์ธก์ ์์ฒญ์ ์ง์ ์ ์ผ๋ก ์ ๋ฌ ๋ฐ๋ ์๋ํฌ์ธํธ(Endpoint)
- Model๊ณผ View์ ์ค๊ฐ์์ ์ํธ ์์ฉ์ ํด์ฃผ๋ ์ญํ
( ์์ฒญ ์ ๋ฌ๋ฐ๊ณ , Model ๋ฐ์ดํฐ๋ฅผ View๋ก ์ ๋ฌ )
โ๏ธ ์๋ํฌ์ธํธ (Endpoint)
- ์ปดํจํฐ์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ๊ณ ์ปดํจํฐ ๋คํธ์ํฌ์ ์ ๋ณด๋ฅผ ๊ตํํ๋ ๋ฌผ๋ฆฌ์ ๋๋ฐ์ด์ค
โ Spring MVC ์ต์ข ํ๋ฆ
( ๊ฐ๋จํ๊ฒ ์ถ๋ฆฐ ๋์ ๋ฐฉ์ )
- Client๊ฐ ์์ฒญ ๋ฐ์ดํฐ ์ ์ก
- Controller๊ฐ ๋ฐ์์ ์์ฒญ ๋ฐ์ดํฐ ์์
- ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ
- Model ๋ฐ์ดํฐ ์์ฑ
- Controller์๊ฒ Model ๋ฐ์ดํฐ ์ ๋ฌ
- Controller๊ฐ View์๊ฒ Model ๋ฐ์ดํฐ ์ ๋ฌ
- View๊ฐ ์๋ต ๋ฐ์ดํฐ ์์ฑ
โ๏ธ JASON ํ๊ธฐ๋ฒ ์ฌ์ฉ ์ฐ์ต
[์ฐธ๊ณ ] https://jsonformatter.org/json-to-java ์ด์ฉ
์์ ๊ฐ์ด ์ง์๋ค์ ์ ๋ณด๋ฅผ JSON ํ์์ผ๋ก ๋ฃ๊ณ ๋๋ ค๋ณด๋,
์๋์ ๊ฐ์ด Java๋ก ๋ณ๊ฒฝ๋์ด ์ ๋์๋ค!
[์ฐธ๊ณ ] https://codebeautify.org/blog/json-full-form/
โ๏ธ Spring MVC ์์ฒญ ์ฒ๋ฆฌ ํ๋ฆ โญ
(1) ๋จผ์ ํด๋ผ์ด์ธํธ
๊ฐ ์์ฒญ์ ์ ์กํ๋ฉด DispatcherServlet
ํด๋์ค์ ์์ฒญ์ด ์ ๋ฌ๋จ
๐ ํด๋ผ์ด์ธํธ๊ฐ DispatcherServletํํ ์์ฒญ ์ ์กํ๊ณ ์ ๋ฌ ๋ฐ์
(2) DispatcherServlet
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ Controller
์ ๋ํ ๊ฒ์์ HandlerMapping
์ธํฐํ์ด์ค์๊ฒ ์์ฒญ
๐ DispatcherServlet โ HandlerMapping "์ผ Contoller ์ข ๊ฒ์ํด๋ด"
(3) HandlerMapping
์ด ํด๋ผ์ด์ธํธ ์์ฒญ + ๋งคํ๋๋ ํธ๋ค๋ฌ ๊ฐ์ฒด๋ฅผ ๋ค์ DispatcherServlet
์๊ฒ ๋ฆฌํด
๐ HandlerMapping โ DispatcherServlet "์ผ ๊ทธ ์์ฒญ์ ์๋ง์ Controller ์ฐพ์์ด"
( ์ฌ๊ธฐ์ ํธ๋ค๋ฌ ๊ฐ์ฒด - Controller ๋ด๋ถ ๋ฉ์๋)
- ํธ๋ค๋ฌ ๊ฐ์ฒด๋ ํด๋น ํธ๋ค๋ฌ์ Handler ๋ฉ์๋ ์ ๋ณด๋ฅผ ํฌํจํ๊ณ ์์
( Handler ๋ฉ์๋ = Controller ํด๋์ค ์์ ๊ตฌํ๋ ์์ฒญ ์ฒ๋ฆฌ ๋ฉ์๋ )
(4) ์์ฒญ์ ์ฒ๋ฆฌํ Controller
ํด๋์ค๋ฅผ ์ฐพ์์ผ๋, ์ด์ ์ค์ ๋ก ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํ Handler ๋ฉ์๋
๋ฅผ ์ฐพ์ ํธ์ถํด์ผ ํจDispatcherServlet
์ด Handler ๋ฉ์๋
์ง์ ํธ์ถํ์ง ์๊ณ , HandlerAdpater
์๊ฒ Handler
๋ฉ์๋ ํธ์ถ ์์ํจ
๐ DispatcherServlet โ HandlerAdpater "์ผ ์ด๊ฑฐ Handler ํํ ์ฒ๋ฆฌํ๋ผ๊ณ ํด"
(5) HandlerAdapter
๊ฐ DispatcherServlet
์ผ๋ก๋ถํฐ ์ ๋ฌ ๋ฐ์ Controller
์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ํด๋น Controller
์ Handler ๋ฉ์๋
ํธ์ถ
๐ HandlerAdapter โ Controller "์ผ Handler ๋ฉ์๋ ๋ ๋์์ ์ด๊ฑฐ ์ฒ๋ฆฌํด๋ด"
( ์ด Controller ํด๋์ค๊ฐ Spring MVC์์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ต์ข ๋ชฉ์ ์ง )
์ฌ๊ธฐ๊น์ง ํ๋ฆ์ ๋ฐ์ ๋ ! ์ด์ ๋ฐ๋๋ก ~
(6) Controller
์ Handler
๋ฉ์๋๊ฐ ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ ํ ๋ฆฌํด ๋ฐ์ ๊ฒฐ๊ณผ๋ฌผ์ธ Model ๋ฐ์ดํฐ
๋ฅผ HandlerAdapter
์๊ฒ ์ ๋ฌ
๐ Controller โ HandlerAdapter "์ผ ์ด๊ฑฐ ๋ค ํด์ ๊ฒฐ๊ณผ๋ฌผ(Model) ๋ํํ ์ค๊ฒ"
(7) HandlerAdapter
๊ฐ ์ ๋ฌ๋ฐ์ Model ๋ฐ์ดํฐ
์ View ์ ๋ณด
๋ฅผ ๋ค์ DispatcherServlet
์๊ฒ ์ ๋ฌ
๐ HandlerAdapter โ DispatcherServlet "์ผ ๊ฒฐ๊ณผ๋ฌผ(Model)์ด๋ View ์ ๋ณด ์ค๊ฒ"
(8) DispatcherServlet
์ด ์ ๋ฌ ๋ฐ์ View ์ ๋ณด
๋ฅผ ๋ค์ ViewResolver
์๊ฒ ์ ๋ฌํด์ View ๊ฒ์
์์ฒญ
๐ DispatcherServlet โ ViewResolver "์ผ ์ด View ์ ๋ณด ๊ฒ์ํด๋ด"
(9) ViewResolver
๊ฐ View ์ ๋ณด
์ ํด๋นํ๋ View
๋ฅผ ์ฐพ์์ View
๋ฅผ ๋ค์ ๋ฆฌํด
๐ ViewResolver โ DispatcherServlet "๊ทธ ์ ๋ณด์ ํด๋นํ๋ View ์ฌ๊ธฐ ์์ด"
(10) DispatcherServlet
์ด ViewResolver
๋ก๋ถํฐ ์ ๋ฌ ๋ฐ์ View ๊ฐ์ฒด
๋ฅผ ํตํด Model ๋ฐ์ดํฐ
๋ฅผ ๋๊ฒจ์ฃผ๋ฉด์, ํด๋ผ์ด์ธํธ
์๊ฒ ์ ๋ฌํ ์๋ต ๋ฐ์ดํฐ
์์ฑ์ ์์ฒญ
๐ DispatcherServlet โ View ๊ฐ์ฒด "์ผ ์ฌ๊ธฐ ๊ฒฐ๊ณผ๋ฌผ(Model) ์์ผ๋๊น ํด๋ผ์ด์ธํธํํ ์ค ์๋ต ๋ฐ์ดํฐ ์ข ๋ง๋ค์ด๋ด"
(11) View
๊ฐ ์๋ต ๋ฐ์ดํฐ
์์ฑํด์ ๋ค์ DispatcherServlet
์๊ฒ ์ ๋ฌ
๐ View โ DispatcherServlet "์ผ ์ฌ๊ธฐ ๋ค ๋ง๋ฆ"
(12) DispatcherServlet
์ด View
๋ก๋ถํฐ ์ ๋ฌ ๋ฐ์ ์๋ต ๋ฐ์ดํฐ
๋ฅผ ์ต์ข
์ ์ผ๋ก ํด๋ผ์ด์ธํธ
์๊ฒ ์ ๋ฌ
๐ DispatcherServlet โ ํด๋ผ์ด์ธํธ "์ ๋ค ํ์ด. ์๋ต ๋ฐ์ดํฐ ์ค๊ฒ"
โ ์ ํ๋ฆ์ ๋ณด๋ฉด DispatcherServlet์ด ๊ต์ฅํ ์ค๊ฐ์์ ํ๋ ์ผ์ด ๋ง์ ๋ฐ๋น ๋ณด์ !
But, ์ค์ ๋ก ์์ฒญ์ ๋ํ ์ฒ๋ฆฌ๋ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ค์๊ฒ ๋ค ์์(Delegate)ํ๊ณ ์์
(Front Controller Pattern)
โ DispatcherServlet = ๋ฐ์ง์ฌ์ฅ
โ Front Controller Pattern
โ DispatcherServlet
์ด ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ์ฅ ์๋จ์ ๋ฐฐ์น๋์ด ๋ค๋ฅธ ๊ตฌ์ฑ์์๋ค๊ณผ ์ํธ์์ฉํ๋ฉด์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํจํด
โ๏ธ Handler ๋ฉ์๋
โ Controller ํด๋์ค์ ์๋ ์ ๋ํ ์ด์ ์ด ๋ถ์ด ์๋ ๋ฉ์๋๋ค
Ex. @GetMapping, @PostMapping, PatchMapping ๋ฑ
โ๏ธ HandlerMapping
- ์ฌ์ฉ์์ ์์ฒญ๊ณผ ์ด ์์ฒญ์ ์ฒ๋ฆฌํ๋ Handler๋ฅผ ๋งคํํด์ฃผ๋ ์ญํ
โ HTTP ์์ฒญ ๋ฉ์๋(GET,POST ๋ฑ)์ Mapping URL์ ๊ธฐ์ค์ผ๋ก ํด๋น Handler์ ๋งคํ
( ์ฌ๋ฌ ๋ชจ๋ ํธ๋ค๋ฌ ๋ฉ์๋๋ค์ @~Mapping ์ ๋ํ ์ด์ ์ ๋ณด๋ค์ ๊ฐ์ง๊ณ ์์ )
โ
( Spring ์์๋ ์ฌ๋ฌ๊ฐ์ง ์ ํ์ HandlerMapping ํด๋์ค๋ฅผ ์ ๊ณตํ๋๋ฐ ์ค๋ฌด์์๋ ์ฃผ๋ก Spring์์ ๋ํดํธ๋ก ์ ํ RequestMappingHandlerMapping ์ฌ์ฉ )
โ๏ธ HandelrAdpter
- ๋ค๋ฅธ ํ๋ ์์ํฌ์ ํธ๋ค๋ฌ๋ฅผ Spring MVC์ ํตํฉํ๊ธฐ ์ํด ์ฌ์ฉ
โ
โ๏ธ Adapter (์ด๋ํฐ)
- ๋ฌด์ธ๊ฐ๋ฅผ ๋ค๋ฅธ ํ์์ด๋ ํํ๋ก ๋ฐ๊ฟ์ฃผ๋ ์ญํ
โ๏ธ Resolve
- ๋ฌด์ธ๊ฐ๋ฅผ ํด์ํ๊ณ ํด๊ฒฐํด์ฃผ๋ค
โ๏ธ API ๊ณ์ธต
( ์ ๋ฒ์ ๋ฐฐ์ ์ง๋ง ์์์๊น๋ด ํ๋ฒ ๋ ์ฒจ๋ถํ๋ค )
โ๏ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ํด ์ ์ผ ๋จผ์ ํด์ผ๋๋ ์ผ
1. ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ๊ณ๋ฅผ ์ค์ ํ๋ ๊ฒ
โ๏ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ๊ณ๋ฅผ ์ค์ ํ๋ค
โ ์๊ตฌ์ฌํญ์ ๋ง์ถฐ์ ์ด๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ์ ํน์ ๋ฒ์๋ก ์ ํํ๋ ๊ฒ
2. ์ ํ๋ฆฌ์ผ์ด์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ํ ์๊ตฌ ์ฌํญ์ ์์งํ๋ ์ผ
3. ํจํค์ง ๊ตฌ์กฐ ์์ฑ
โ๏ธ Spring Boot ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฃผ๋ก ์ฌ์ฉ๋๋ Java ํจํค์ง ๊ตฌ์กฐ
1. ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ (package-by-feature)
- ๊ธฐ๋ฅ ๋ณ๋ก ํจํค์ง ๋๋๊ธฐ
( ์ด ํจํค์ง ์์๋ ํ๋์ ๊ธฐ๋ฅ ์์ฑ์ ์ํ ๊ณ์ธต๋ณ ํด๋์ค๋ค์ด ๋ชจ์ฌ์์ )
Ex. Coffee, Member ๋ฑ
( Coffee ํจํค์ง ์์๋ CoffeeController, CoffeeDto, CoffeeRepository ๋ฑ์ ๊ธฐ๋ฅ์ด ์์ )
2. ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ (package-by-layer)
- ๊ณ์ธต ๋ณ๋ก ํจํค์ง ๋ง๋ค๊ธฐ
( ๊ฐ ํจํค์ง ์์๋ ๊ฐ ๊ธฐ๋ฅ๋ค์ด ๋ชจ์ฌ์์ )
Ex. controller, dto, model, repository, service ๋ฑ
( controller ํจํค์ง ์์๋ CoffeeController, MemberController ๋ฑ์ ๊ธฐ๋ฅ์ด ์์ )
โ ์ ๋๊ฐ๋ฅผ ์ํฉ์ ๋ฐ๋ผ ์๋ง๊ฒ ์ฌ์ฉํ๋ฉด ๋์ง๋ง,
ํ
์คํธ์ ๋ฆฌํฉํ ๋ง์ด ์ฉ์ดํ๊ณ , ํฅํ์ ๋ง์ดํฌ๋ก ์๋น์ค ์์คํ
์ผ๋ก์ ๋ถ๋ฆฌ๊ฐ ์๋์ ์ผ๋ก ์ฉ์ดํ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ ์ฌ์ฉ ๊ถ์ฅํจ
โ๏ธ Spring Boot ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์์ ์ธ ์คํ์ ์ํด ๊ฐ์ฅ ๋จผ์ ํด์ผ๋ ์ผ
โ main()
๋ฉ์๋๊ฐ ํฌํจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์ํธ๋ฆฌํฌ์ธํธ(Entrypoint) ์์ฑ
But, Spring Initialize๋ฅผ ํตํด ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๋ฉด ์ํธ๋ฆฌํฌ์ธํธ ํด๋์ค๊ฐ ์๋์ผ๋ก ์์ฑ๋์ด ์์
โ๏ธ ์ํธ๋ฆฌํฌ์ธํธ (Eentrypoint)
โ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์์
โ๏ธ Controller ํธ๋ค๋ฌ ๋ฉ์๋ ์ ๋ํ ์ด์
@RequestParam
โ ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ, form-data ๋ฑ์ Servlet request Parameter๋ฅผ ๋ฐ์ธ๋ฉ ํด์ผ ํ ๊ฒฝ์ฐ ์ฌ์ฉ@RequestHeader
โ request header๋ฅผ ๋ฐ์ธ๋ฉํด์ header์ key/value์ ์ ๊ทผํ ์ ์์@RequestBody
โ request body๋ฅผ ์ฝ์ด์ ์ง์ ํ Java ๊ฐ์ฒด๋ก deserialization ํด์ค@RequestPart
โ 'multipart/form-data' ํ์์ request ๋ฐ์ดํฐ๋ฅผ part ๋ณ๋ก ๋ฐ์ธ๋ฉํ ์ ์๋๋ก ํด์ค@PathVariable
โ @RequestMapping ์ ํจํด ํ์์ผ๋ก ์ ์๋ URL์ ๋ณ์์ ๋ฐ์ธ๋ฉํ ์ ์๋๋ก ํด์ค@MatrixVariable
โ URL ๊ฒฝ๋ก ์ธ๊ทธ๋จผํธ ๋ถ๋ถ์ key/value ์์ผ๋ก ๋ ๋ฐ์ดํฐ์ ๋ฐ์ธ๋ฉํ ์ ์๋๋ก ํด์คHttpEntity
โ request header์ body์ ์ ๊ทผํ ์ ์๋ ์ปจํ ์ด๋ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์์
[์ฐธ๊ณ ] https://itvillage.tistory.com/41
๐ Spring MVC๋ฅผ ์ด์ฉํ ์ค์ต
- Project ํด๋์ Section3-Week1 ํ์ผ์ ์์
- ์์ธํ ์ค๋ช ์ ์๋ ์ฐธ๊ณ !
JSON ๋ฌธ์์ด์ ์์์
ํ๋ ๊ฒ์ ๊ฐ์ ํ๊ธฐ ์ํ์ฌ
โ Map ๊ฐ์ฒด๋ก ๋์ ํ๊ณ ํ์
์ ResponseEntity ๊ฐ์ฒด๋ก ๋ณ๊ฒฝํจ !
( ์ค์ต ์ฝ๋ ๊ฐ์ด ๋ณด๋ฉด์ ์ดํดํ๊ธฐ )
๐ ๋๋์
์ค๋ ๊ฐ๋
๋ ์ดํดํ๊ธฐ ์ฌ์ ๊ณ ๋ค ๊ด์ฐฎ์๋ค !
ํ์ด์์ ์ค์ต๋ ๋น ๋ฅด๊ฒ ๋๋ฌ๊ณ ์์์ด ์ข์๋ค.
ํ์ง๋ง git์์ push๋ฅผ ํ ๋ ์๊ธด ์ค๋ฅ ๋๋ฌธ์ ๋ช์๊ฐ์ ์ก์๋จน์ ๊ฑด์ง.. ใ
ใ
ใ
ํ ๊ฒ ๋ง๋ค ..
( ๋ณธ ๊ฒ์๋ฌผ์ 2022/10/21์ ์์ฑํ ๊ธ์ ์ฎ๊ธด ๊ธ์ ๋๋ค. ์๋ฌธ์ ์๊ธฐ์ ์์! )
'โข CodeStates BootCamp > Section 3' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ [Section3] 6. [ Spring MVC ] Spring Data JDBC 2 (1) | 2023.04.10 |
---|---|
๐ [Section3] 5. [ Spring MVC ] Spring Data JDBC 1 (0) | 2023.04.10 |
๐ [Section3] 4. [ Spring MVC ] ์์ธ ์ฒ๋ฆฌ (0) | 2023.04.10 |
๐ [Section3] 3. [ Spring MVC ] ์๋น์ค ๊ณ์ธต (0) | 2023.04.10 |
๐ [Section3] 2. [ Spring MVC ] API ๊ณ์ธต 2 (0) | 2023.04.10 |