Study/Spring9 [Spring] UUID๋ ๐๐ป UUID : Universally Unique Identifier UUID๋ ์ ๋ณด ์๋ณ์ ์ํ์ฌ 128 bit ์ซ์๋ก ์ด๋ฃจ์ด์ ธ ์๋ ์๋ณ์๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ฐ์ดํฐ๋ค์ด ๋์ค์ ๋จ์ผ DB๋ก ํตํฉ๋๊ฑฐ๋ ๊ฐ์ ์ฑ๋์์ ์ ์ก๋๋๋ผ๋ ์๋ณ์๊ฐ ์ค๋ณต๋ ํ๋ฅ ์ด ๋งค์ฐ ๋ฎ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. โ ์ ๋ณด๋ฅผ ์๋ณํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. โ๏ธ ์ฒซ ๋ฒ์งธ, UUID - 128 bit ์ซ์๋ก ์ ๋ณด ์๋ณ์ ์ฌ์ฉ๋จ - Microsoft์์๋ GUID๋ผ๊ณ ๋ถ๋ฆผ - Standard Method๋ก ์์ฑ์ ์ค์ฉ์ ์ธ ์ฉ๋๋ก ์ถฉ๋ถํ ๊ณ ์ ํจ - ์ค์๋ฑ๋ก๊ธฐ๊ด(ex. DB์๋ฒ) ๋ฑ์ ์์กด๋์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑ ๊ฐ๋ฅ - ๋ณ๋๋ก ๋ถ๋ฆฌ๋์ด ์๋ ๋ฐ์ดํฐ๋ค์ ํตํฉํ๊ฑฐ๋ ํ๋์ ์ฑ๋์์ ์ ์กํ๋๋ผ๋ ์ถฉ๋์ด ๋ฐ์ํ์ง ์์ โ๏ธ ๋ ๋ฒ์งธ, Prim.. 2022. 11. 22. [Spring] Mapper์ Repository ๐๐ป Mapper์ Repository mapper์ repository๋ฅผ ๋น๊ตํ ๋๋ mapper๊ฐ ์์ ๋จ์์ ์ํฉ๋๋ค. ์ฆ, repository๋ mapper๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค. โ Backend Business Logic ์ ์ฒด ๊ตฌ์กฐ โ Model : controller, service, mapper, repository์ ์ํธ์์ฉ โก RestController : service์ ์ํธ์์ฉ โข Service : mapper, repository์ ์ํธ์์ฉ โฃ Mapper, Repository : SqlSession ๋ฐ DB์ ์ํธ์์ฉ ๐ Mapper ๋๋ถ๋ถ ***.xml๊ณผ ๊ฐ์ด SQL๋ฌธ์ ์ ์ํด๋์ ํ์ผ๊ณผ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค. SQL๋ฌธ์ ์ ์ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ ์ํด๋์ ๋ชจ๋ธ์ ๋งคํ์ํค๋ Mybatis .. 2022. 11. 21. [Spring] @Controller์ @RestController ๐๐ป @Controller์ @RestController์ ์ฐจ์ด์ ์ HTTP Response Body๊ฐ ์์ฑ๋๋ ๋ฐฉ์ 1) @Controller๋ View๊ฐ ๋ฐํ๋จ 2) @RestController๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๊ณ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ JSON ๋๋ XML๋ก HTTP ์๋ต์ ์์ฑ๋จ ๐บ @Controller - Client ์์ฒญ์ผ๋ก๋ถํฐ View๋ฅผ ๋ฐํ - Controller๋ ViewResolver ์ค์ ์ ๋ง๋ View๋ฅผ ๋ฐํ โ Controller๋ก View ๋ฐํํ๊ธฐ โก Controller๋ก Data ๋ฐํํ๊ธฐ - RESTful ์น ์๋น์ค๋ฅผ ๊ตฌํํ๊ธฐ ์ํ์ฌ Spring MVC์ ์ปจํธ๋กค๋ฌ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๊ธฐ ์ํด @ResponseBody ์ฌ์ฉ - ๋ด๋ถ์ ์ผ๋ก Spring์ HTTPMessageConverter ๋ฆฌ.. 2022. 11. 21. [Spring] DAO / DTO / VO / Entity ๐๐ป DAO / DTO / VO / Entity โ๏ธ Java ํ์ผ ๋ง๋ค๊ธฐ 1) ์ปจํธ๋กค๋ฌ Controller ํด๋ผ์ด์ธํธ์์ ์์ฒญ์ด ๋ค์ด์ฌ ๋ ํด๋น ์์ฒญ์ ์ํํ ๋น์ฆ๋์ค ๋ก์ง ์ ์ด ๊ฐ์ฒด์ ๋๋ค. ์ปจํธ๋กค๋ฌ์์ ์ธ๋ถ์ ์ผ๋ก ์๋น์ค ๋ ์ด์ด๋ฅผ ๋ง๋ค์ด ํด๋น ์์ฒญ ์ฌํญ์ ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ์ธ๋ถํํ์ฌ ๊ด๋ฆฌํฉ๋๋ค. 2) ์๋น์ค Service ์๋น์ค ๋ ์ด์ด์์ ์ธ๋ถํ๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํฉ๋๋ค. 3) DAO : Data Access Object DB๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ฑฐ๋ ์กฐ์ํ๋ ๊ธฐ๋ฅ์ ์ ๋ดํ๋๋ก ๋ง๋ ๊ฐ์ฒด์ ๋๋ค. 4) VO : Value Object / DTO : Data Transfer Object ๊ฐ ๊ณ์ธต๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์๋ฐ ๊ฐ์ฒด์ ๋๋ค. ๐ DAO : Data Access Object DB์ ๋ฐ์ดํฐ์ .. 2022. 11. 21. [Spring] ModelAndView ๊ฐ์ฒด ๐๐ป ModelAndView ๊ฐ์ฒด : ํ์ด์ง์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ ์ฅ ์ปจํธ๋กค๋ฌ์์ View๋ก ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ๊ณ ์ถ์ ๋ Model์ด๋ ModelAndView๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๐ก MVC ํจํด - Model, View, Controller์ ์ฝ์ - ํ๋์ ์ ํ๋ฆฌ์ผ์ด์ , ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ ๋ ๊ทธ ๊ตฌ์ฑ์ ์์๋ฅผ ์ธ๊ฐ์ง ์ญํ ๋ก ๊ตฌ๋ถํ ํจํด - ์๋ก์ ์ํฅ์ ์ฃผ์ง ์๋ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๊ฐ ์ ๋์ด์์ ๐๐ป Model ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ณด, ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ฒ์์ ์ ์ํ๋ ์์, ์ด๊ธฐํ ๊ฐ, ๋ณ์ ๋ฑ์ ๋ปํฉ๋๋ค. ๐๐ป View input ํ ์คํธ, ์ฒดํฌ๋ฐ์ค ๋ฑ๊ณผ ๊ฐ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์์๋ฅผ ๋ํ๋ ๋๋ค. ๋ฐ์ดํฐ ๋ฐ ๊ฐ์ฒด์ ์ ๋ ฅ, ์ถ๋ ฅ ๋ฑ์ ๋ด๋นํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์๋ค์ด ๋ณผ ์ ์๋ ํ๋ฉด์ ๋๋ค... 2022. 11. 18. [Spring] Annotation ์๋ ํ์ธ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฏผ์ ์ ๋๋น ๐๐ป๐ซง ์ค๋์ ์คํ๋ง์ ๊ธฐ๋ณธ์ธ ์ด๋ ธํ ์ด์ ๊ณผ ์ข ๋ฅ์ ๋ํด ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค ! ๐ ์ด๋ ธํ ์ด์ (@, Annotation) ์ Java 5๋ถํฐ ๋ฑ์ฅํ ๊ฐ๋ ์ผ๋ก ์ฌ์ ์ ์๋ฏธ๋ก๋ ์ฃผ์์ ์๋ฏธํฉ๋๋ค. ์ฆ, ์ฝ๋ ์ฌ์ด์์ ์ฃผ์์ฒ๋ผ ์ฐ์ด๋ฉฐ ํน๋ณํ ์๋ฏธ์ ๊ธฐ๋ฅ์ ์ํํ๋๋ก ํ๋ ๊ธฐ์ ์ ๋๋ค. ๋ฐ์ดํฐ์ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฑ์ ์ฝ๊ฒ ์ ์ ์๊ณ ์ฝ๋๋ฅผ ์ข ๋ ๊น๋ํ๊ฒ ํด์ฃผ๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ธํ ์ด์ ์ ์์ค์ฝ๋์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค. ๐ก ๋ฉํ๋ฐ์ดํฐ ? ๋ฐ์ดํฐ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํ ๋ฐ์ดํฐ๋ก ์ฌ์ง์ ์๋ ๋ ์ง์ ์๊ฐ์ ๋ฉํ๋ฐ์ดํฐ๋ผ๊ณ ๋ณผ ์ ์์ โ ์ด๋ ธํ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ ์ฉ๋๋ก ์ฌ์ฉ๋ฉ๋๋ค. โ ์ปดํ์ผ๋ฌ์๊ฒ ์ฝ๋ ๋ฌธ๋ฒ ์๋ฌ๋ฅผ ์ฒดํฌํ๋๋ก ์ ๋ณด ์ ๊ณต โก ์ํํธ์จ์ด ๊ฐ.. 2022. 10. 24. [Spring] JDBC์ JPA ์๋ ํ์ธ์ ! ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฏผ์ ์ ๋๋ค :) ๐ซง ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ๊ธฐ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ธฐ์ ๋ฐ ๋์์ ๋ํ ์ดํด๊ฐ ํ์ํ๋ค๊ณ ์๊ฐํ์ฌ ์ด๋ค์ ์ฐจ์ด์ ์ด ๊ถ๊ธํ๊ฒ ๋์์ต๋๋ค. ๋๋ฌธ์ ์ค๋์ JDBC์ JPA์ ์ฐจ์ด์ ๋ํด ํฌ์คํ ํ๊ณ ์ ํฉ๋๋ค. ์ฐ์ , ์ด ๋์ ์ฐจ์ด์ ์ ์๊ธฐ์ํด ์์์ฑ์ ๋ํ ์ดํด๊ฐ ํ์ํฉ๋๋ค ! ๐ก ์์์ฑ(Persistence) ? - ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋๋ผ๋ ์ฌ๋ผ์ง์ง ์๋ ๋ฐ์ดํฐ์ ํน์ฑ - Persistence Layer๋ ํ๋ก๊ทธ๋จ ์ํคํ ์ฒ์์ ๋ฐ์ดํฐ์ ์์์ฑ์ ๋ถ์ฌํด์ฃผ๋ ๊ณ์ธต์ ๋งํ๋ฉฐ, Persistence framework๋ฅผ ์ฃผ๋ก ์ด์ฉํจ - Persistence Framework๋ JDBC ํ๋ก๊ทธ๋๋ฐ์ ๋ณต์กํจ์ด๋ ๋ฒ๊ฑฐ๋ก์ ์์ด ๊ฐ๋จํ ์์ ๋ง์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋๋๋.. 2022. 10. 23. [Spring] Spring Data JPA์ QueryDSL ์๋ ํ์ธ์ (์๋น)๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฏผ์ ์ ๋๋ค. ๐ซง Spring Data JPA์ QueryDSL์ ๋ํด ์ค๋ช ํ๊ณ ์ํฉ๋๋ค ! โ๏ธ Spring Data JPA โช๏ธ Spring Data JPA ์ง๋ฃจํ๊ฒ ๋ฐ๋ณต๋๋ CRUD๋ฌธ์ ๋ฅผ ์ธ๋ จ๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ์ฌ ๊ฐ๋ฐ์๋ ์ธํฐํ์ด์ค๋ง ์์ฑํ๋ฉด ๋จ Spring data JPA๊ฐ ๊ตฌํ ๊ฐ์ฒด๋ฅผ ๋์ ์ผ๋ก ์์ฑํด์ ์ฃผ์ ํจ JpaReapository ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ์ด๋ฅผ ์์๋ฐ์ ์ฐ๋ฆฌ๊ฐ ์์ํ ์ ์๋ ๋ชจ๋ API๋ฅผ ์ฒ๋ฆฌํ ์ ์์ public interface CartDetailRepository extends JpaRepository { } โช๏ธ Spring Data JPA์ ์ฟผ๋ฆฌ ๋ฉ์๋ ๊ธฐ๋ฅ ๊ธฐ๋ณธ์ ์ผ๋ก CRUD ๋ฉ์๋ ๋ฐ ๋ฉ์๋ ์ด๋ฆ์ผ๋ก ์ฟผ๋ฆฌ๋ฅผ ์์ฑํจ @Query ์ ๋.. 2022. 10. 8. [Spring] DTO, Entity, Mapper ์๋ ํ์ธ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ํ๋ฏผ์ ์ ๋๋ค ๐ซง ์ค๋์ DTO, Entity๊ฐ ๋ฌด์์ด๋ฉฐ Mapper๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๋ํ ์ถ๊ฐ์ ์ผ๋ก @Mapper ์ ๋ํ ์ด์ ๊น์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค ! ์์๋ณด๊ธฐ์ ์์, ๊ทธ๋ฆผ์ผ๋ก ์ดํด๋๊ธฐ ์ฝ๊ฒ ์ค๋ช ํด ๋ณด์์ต๋๋ค. โ๐ป Entity - ์ค์ DB์ ํ ์ด๋ธ๊ณผ ๋งค์นญ๋ ํด๋์ค - ํ ์ด๋ธ๊ณผ ์ฐ๊ฒฐ๋ ํด๋์ค์์ ๋ํ๋ - DB ํ ์ด๋ธ์ ์กด์ฌํ๋ ์ปฌ๋ผ๋ค์ ํ๋๋ก ๊ฐ์ง๋ ๊ฐ์ฒด๋ฅผ ๋งํจ ์ฆ, ํ ์ด๋ธ์ด ๊ฐ์ง์ง ์๋ ์ปฌ๋ผ์ ๊ฐ์ ธ์๋ ์๋จ โ๐ป DTO - Data Transfer Object, ๋ฐ์ดํฐ ์ ์ก ๊ฐ์ฒด - ํ๋ก์ธ์ค ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฐ์ฒด - DB์์ ๋ฐ์ดํฐ๋ฅผ ์ป์ด Service๋ Controller ๋ฑ์ผ๋ก ๋ณด๋ผ ๋ ์ฌ์ฉํ๋ ๊ฐ์ฒด - ๋ก์ง์ ๊ฐ์ง์ง ์๊ณ Getter/S.. 2022. 9. 6. ์ด์ 1 ๋ค์