SpringMVC
PRG Post/Redirect/Get
๋์ ๋ฌผ๊ฑด์ ์ฃผ๋ฌธํ๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ฑฐ๋ ํ์์ ๋ฑ๋กํ๋ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ๋ HTTP์ Post ๋ฉ์๋๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค. ์ด ๋, Post๋ก ์ํ์ ์ฃผ๋ฌธํ๋๋ก ํ๊ณ , ์นํ์ด์ง๋ฅผ ๋ฐ๋ก ๋๋๋งํ๋ค๊ณ ์๊ฐํ๋ฉด ๋งค์ฐ ๋์ฐํ ์ผ์ด ๋ฒ์ด์ง๋ค. ์๋๋ฉด ์ต์ข ์ ์ธ HTTP๊ฐ Post์ด๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ์ฌ์ฉ์๊ฐ ๊ฒฐ์ ํ ๋๋๋ง๋ ํ์ด์ง์์ ์๋ก๊ณ ์นจ์ ๋๋ฅด๋ฉด ์ค๋ณตํด์ ๊ฒฐ์ ๊ฐ ์งํ๋๊ธฐ ๋๋ฌธ์ด๋ค. Post - Redirect - Get PRG๋ฅผ ์ฌ์ฉํด์ผํ๋ ์ด์ ๋ ๋์ ๋ถ๋ถ์์ ๋งค์ฐ ์์ธํ๊ฒ ์ค๋ช ์ด ๋์ด์๋ค. ํด๋ผ์ด์ธํธ๊ฐ form tag์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ณ ์ฃผ๋ฌธ์ ํ๋ฉด Post๋ก ๋ฐ์ดํฐ๊ฐ ๋์ด์ ์๋ฒ์์ ํด๋น ๋ถ๋ถ์ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. ์ด๋ ๊ฒ ์ฒ๋ฆฌ๊ฐ ๋ ๊ฒฝ์ฐ ์ต์ข ์ ์ธ HTTP์ ๋ ฅ์ด Post์ด๋ฏ๋ก ์๋ก๊ณ ์นจ์ ๊ณ์ํด์ Post๊ฐ ์คํ๋๋..
SSR Response, Response Body
๋์ ์๋ฒ์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ฉ์์๊ฒ ํ์ด์ง๋ฅผ ๊ตฌ์ํ์ฌ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ SSR(Server Side Rendering)์ด๋ผ๊ณ ํ๋ค. ์ฌ๋ฌ๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ง๋ง ๋๋ ์ฃผ๋ก Thymeleaf๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌํ๋ค. ์ด๋ฒ์ ๊ณต๋ถํ ๋ด์ฉ์ ๋์ ์ธ ์นํ์ด์ง๋ฅผ ์ํด SpringMVC์์ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ๋ ๋ฐฉ๋ฒ๊ณผ Response Body๋ฅผ ์์๋ณด๊ฒ ๋ค. View๋ก ๋ฐ์ดํฐ ๋๊ฒจ์ฃผ๋ ๋ฐฉ๋ฒ Thymeleaf๋ก ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ์์๋ณด๊ณ ์ ํ๋ค. @RequestMapping("/response-view-v1") public ModelAndView responseViewV1(){ ModelAndView mav = new ModelAndView("response/hello") .addObject("data","hello!");..
Request Body ๋ฐ์์ค๊ธฐ
Client๊ฐ Server๋ก ํน์ Server๊ฐ Server๋ก Request๋ฅผ ํ ์ ์๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ Request๊ฐ ์์ ๋ Body๋ฅผ String๊ณผ Json๋ฐฉ์์ผ๋ก ๋ฐ์์ค๋ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ ํ์ธํ๊ฒ ๋ค. ๊น์ํ๋์ MVC ๊ฐ์๋ฅผ ์๊ฐ ํ ์์ฑ๋ ํฌ์คํ ์ด๋ค. 1. Body๊ฐ String์ธ ๊ฒฝ์ฐ Servlet์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ Servlet์ฒ๋ผ ๋ฐ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ ๋ถํ์ํ๊ฒ HttpServletRequest๋ฅผ ๋ชจ๋ ๋ฐ์์ผํ๋ฏ๋ก ๋นํจ์จ์ ์ด๋ค. ๋ฐ๋ผ์ ์ํ๋ ๋ถ๋ถ๋ง ๋ฐ์์ ์คํํ ์ ์๋ค. @PostMapping("/request-body-string") public void requestBodyString(InputStream inputStream, Writer resp..
Request Parameter ๊ฐ์ ธ์ค๊ธฐ
๋์ Spring MVC๋ ๊ต์ฅํ ํธ๋ฆฌํ๊ฒ Request Parameter๋ฅผ ๋ฐ์์ ์๋ค. ๊ณผ๊ฑฐ Servlet์์๋ HttpRequest ๊ฐ์ฒด๋ก๋ถํฐ getParameter๋ฅผ ๋ฐ์๋ ๊ฒ๊ณผ ์ ์ฌํ๊ฒ ๋ฐ์ ์๋ ์๊ณ , ๋์ฑ ํธ๋ฆฌํ๊ฒ ๋ฐ์ ์ ๋ ์๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ Servlet์์ Parameter๋ฅผ ๋ฐ๋ ๊ฒ์ ์์์ผ๋ก Spring MVC๊ฐ ํธ๋ฆฌํ๊ฒ ๋ฐ๋ ๋ฐฉ๋ฒ๊น์ง ์์๋ณด๋๋ก ํ๊ฒ ๋ค. Request Parameter ๋ฐ๋ ๋ฐฉ๋ฒ 1. Servlet์ฒ๋ผ ๋ฐ๊ธฐ @RequestMapping("/request-param") public void requestParam(HttpServletRequest request, HttpServletResponse response) throws IOException { Stri..