Spring(72)
-
[Spring] @PathVariable ๊ทธ๋ฆฌ๊ณ @RequestParam
๐ ๊ฐ์ Spring์ผ๋ก Web Service๋ฅผ ๋ง๋ค๊ธฐ ์ํด Controller๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด Client์์ URI์ Parameter๋ก ์์ฒญ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ ๊ฒ์ด์์. ์ด ๋ ์๋ ๋ ๊ฐ์ง๋ฅผ ์ด์ฉํด์ ์์ฒญ์ ํ๊ฒ ๋๋๊ฒ ๋ํ์ ์ด๋๋๋ค. ์ฒซ์งธ : http//localhost?index=1&page=2 ๋์งธ : http://localhost/index/1 ์ฒซ๋ฒ์งธ์ ๊ฒฝ์ฐ Parameter์ ๊ฐ๊ณผ Key(name - ์ด๋ฆ)์ ํจ๊ป ์ ๋ฌํ๋ ๋ฐฉ์์ผ๋ก Query String์ด๋ผ๊ณ ๋ ํ๋ฉฐ, ๊ฒ์ํ ๋ฑ์์ Page ๊ฒ์ ๋ฐ ๊ฒ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ๊ฒฝ์ฐ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ์ด์์. ๋๋ฒ์งธ ๊ฒฝ์ฐ๋ REST API์์ ๊ฐ์ ํธ์ถํ ๋, ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋๋๋ค. ๐ฝ @RequestParam ๊ฐ์์์ ์ฒซ๋ฒ์งธ์ ๊ฒฝ์ฐ @Reque..
2022.03.22 -
[BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ๋ฑ๋ก / ์์
๐ง๐ป๐ป Git Hub ์ฃผ์ ๐ ๋ชฉ์ฐจ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๊ธ ๋ฑ๋ก(์์ฑ) / ์์ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๋ชฉ๋ก ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์์ธ ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์ญ์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ๋ฑ๋ก / ์์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ์ญ์ ๐จ๐ฉ๐ง๐ฆ ํ์ ๊ด๋ จ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค -..
2022.03.22 -
[BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์์ธ ์กฐํ
๐ง๐ป๐ป Git Hub ์ฃผ์ ๐ ๋ชฉ์ฐจ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๊ธ ๋ฑ๋ก(์์ฑ) / ์์ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๋ชฉ๋ก ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์์ธ ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์ญ์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ๋ฑ๋ก / ์์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ์ญ์ ๐จ๐ฉ๐ง๐ฆ ํ์ ๊ด๋ จ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค -..
2022.03.12 -
[BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๋ชฉ๋ก ์กฐํ
๐ง๐ป๐ป Git Hub ์ฃผ์ ๐ ๋ชฉ์ฐจ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๊ธ ๋ฑ๋ก(์์ฑ) / ์์ โ [BackEnd][Maven-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ๋ชฉ๋ก ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์์ธ ์กฐํ โ [BackEnd][Maven-PJ]๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ ๋ง๋ค๊ธฐ : ์ญ์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ๋ฑ๋ก / ์์ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ๊ฒ์ํ : ๋ต๋ณ ์ญ์ ๐จ๐ฉ๐ง๐ฆ ํ์ ๊ด๋ จ โ [BackEnd][Maven-PJ] ์ฌ๋ด ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค -..
2022.03.11 -
[Spring] @Transactional๊ณผ rollbackFor ์์ฑ
๐ @Transactional๊ณผ rollbackFor ์์ฑ Spring์ @Transactional์ด ๋ถ์ Class์ Proxy๋ฅผ ์์ฑํ๋ ๊ฒ์ด์์. Proxy๋ ํธ๋์ญ์ ๋ก์ง์ Method ์ ๋ค์ ๋ฃ์ด ์ค๋ต๋๋ค. ์ฃผ๋ํ๋์ @Transactional์ rollbackFor ์์ฑ์ ์ด์ฉํ์ฌ Exception.class๋ฅผ ๋ฑ๋กํ ๊ฒ์ด์์. ์ด ์๋ฏธ๋ Spring์๊ฒ 'Run Time Exception์ด ํฐ์ง๋ฉด Roll Back ํด์ค!' ๋ผ๊ณ ํ๋ ๊ฒ์ด์์. ๋ง์ฝ ์ด๋ ๊ฒ @Transactional์ ์์ฑ์ ์ฃผ์ง ์์ผ๋ฉด Spring์ RuntimeException.class, Error.class๋ฅผ ์ ์ธํ๋ค๊ณ ์ดํดํ๋ ๊ฒ์ด์์. ์ฆ, Default ์์ฑ์ด ์ด๊ฒ์ด๋ผ๋ ๊ฒ์ด์ง์. ํ์ง๋ง, ์ด๋ ๊ฒ checked..
2022.03.11 -
[Spring] @RequestBody์ @ResponseBody๋?
๐ @RequestBody์ @ResponseBody๋? ์คํ๋ง์์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ๋ ๊ฒฝ์ฐ @RequestBody์ @ResponseBody๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด์์. ์ฃผ๋ํ๋์ Server ๊ฐ๋ฐ๋ก๋ maven ๊ธฐ๋ฐ Spring์ผ๋ก, Client๋ Vue.js๋ฅผ ๊ณต๋ถํ๋ฉด์ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ํด ๋ณด๊ณ ์๋ ๊ฒ์ด์์. Vue.js๋ ๋ํ์ ์ธ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๊ธฐ๋ฐ Client Java Script์ Framework๋๋๋ค! ๐ฝ Client์ Server์ ๋น๋๊ธฐ ํต์ ์ด์ผ๊ธฐ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ํต์ ํ๋ Message๋ฅผ ์์ฒญ(Request)๋ผ๊ณ ํ๊ณ , ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ํต์ ํ๋ ๋ฉ์์ง๋ฅผ ์๋ต(Response)๋ผ๊ณ ํ๋ ๊ฒ์ด์์. ์น์์ ์๋ก๊ณ ์นจ(ํ๋ฉด์ ํ) ์์ด ์ด๋ฃจ์ด์ง๋ ๋์๋ค์ ๋๋ถ๋ถ ๋น๋๊ธฐ ํต์ ์ผ๋ก ์ด๋ค์ง๋ ๊ฒ..
2022.03.11