์ ์ฒด ๊ธ67 [JPA] ์คํ์ ๊ธฐ๋ฐ Pagenation ๊ตฌํํ๊ธฐ Spring Data JPA์์๋ Pagination์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก Pageable ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๋ค. ์คํ์ ๊ธฐ๋ฐ Pagenation DB์ offset์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ‘ํ์ด์ง’ ๋จ์๋ก ๊ตฌ๋ถํ์ฌ ์์ฒญ/์๋ต ํ๋ค. controller /** * ๊ฒ์๋ฌผ page ์กฐํ * * @param pageable * @return Page */ @GetMapping(produces = APPLICATION_JSON_VALUE) public ApiResponse getPosts(@PageableDefault(sort = "id", direction = Sort.Direction.DESC) Pageable pageable) { Page pages = postService.findAll(pageable); ret.. 2023. 3. 1. [Spring] Spring MVC โป Spring MVC ๋ฐํ ์๋ฃ์ ๋๋ค! Spring MVC ๋? Spring ํ๋ ์์ํฌ ์ค์ ์น ๊ณ์ธต์ ๋ด๋นํ๋ ๋ชจ๋ ์ค ํ๋๋ก ์ ์ ๋ช ์นญ์ Spring Web MVC ์ ๋๋ค. ๐ก Spring MVC๋ Servlet API์์์ ๋์ํ๋ฉฐ Model, View, Controller ์ธ๊ฐ์ง ๊ตฌ์ฑ์์๋ฅผ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ์ ๋ค์ํ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋จ์ ํ ์คํธ ํ์๋ถํฐ REST ํ์, View ํ์์ ์๋ต์ ํ ์ ์๋๋ก ํธ๋ฆฌํ๊ฒ ๊ตฌ์ฑ๋ ํ๋ ์์ํฌ์ ๋๋ค. Spring MVC๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์๋ฅผ ํธํ๊ฒ ํด์คฌ๋์ง ์์ธํ ์์๋ณด๊ธฐ ์ํด ๋ฑ์ฅ ๋ฐฐ๊ฒฝ๊ณผ ๋์ ๋ฐฉ์์ ์ค์ฌ์ผ๋ก ๋ฐํ๋ฅผ ์งํํ๊ฒ ์ต๋๋ค. ๋ฑ์ฅ ๋ฐฐ๊ฒฝ Spring MVC๊ฐ ์๊ธฐ ์ ์๋ HTML ์ฝ๋์ JAVA ์ฝ๋๋ฅผ ๋ฃ์ด ๋์ ์น ํ์ด์ง๋ฅผ ์์ฑํ๋ JSP์ ์.. 2023. 2. 18. [๋์์ธ ํจํด] ํผ์ฌ๋ ํจํด ํผ์ฌ๋ ํจํด (Facade Pattern) ํผ์ฌ๋ ํจํด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ, ํ๋ ์์ํฌ์ ๋ํ ๋๋ ๋ค๋ฅธ ํด๋์ค๋ค์ ๋ณต์กํ ์งํฉ์ ๋ํ ๋จ์ํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๊ตฌ์กฐ์ ๋์์ธ ํจํด์ ๋๋ค. Facade๋ "๊ฑด๋ฌผ์ ์ ๋ฉด"์ ์๋ฏธํ๋ ๋จ์ด๋ก ์ด๋ค ์ํํธ์จ์ด์ ๋ค๋ฅธ ์ปค๋ค๋ ์ฝ๋ ๋ถ๋ถ์ ๋ํ์ฌ ๊ฐ๋ตํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ๋์์ธ ํจํด์ ํ๋ค. ํผ์ฌ๋ ๊ฐ์ฒด๋ ๋ณต์กํ ์ํํธ์จ์ด ๋ฐ๊นฅ์ชฝ์ ์ฝ๋๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ชฝ ์ฝ๋์ ์์กดํ๋ ์ผ์ ๊ฐ์์์ผ ์ฃผ๊ณ , ๋ณต์กํ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉ ํ ์ ์๊ฒ ๊ฐ๋จํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํด์ค๋ค. ์ฅ์ : ๋ณต์กํ ํ์ ์์คํ ์์ ์ฝ๋๋ฅผ ๋ณ๋๋ก ๋ถ๋ฆฌํ์ฌ ํน์ ๊ธฐ๋ฅ์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ๊ฐ๋ฅํ๋ค. : ํ๋์ ํผ์ฌ๋๋ฅผ ๊ด๋ จ ์๋ ๊ธฐ๋ฅ๋ค๋ก ์ค์ผ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ด ํด๋น ์์คํ ์ ๋ํ ์์ง๋๊ฐ ๋๋ค.. 2023. 2. 18. [Spring] Map Struct ์ฌ์ฉํ๊ธฐ Map Struct https://mapstruct.org/ ๐ก MapStruct๋ ๊ตฌ์ฑ ์ ๊ทผ๋ฒ์ ๋ํ ๊ท์ฝ์ ๊ทผ๊ฑฐํ์ฌ Java Bean ์ข ๋ฅ ๊ฐ์ ๋งคํ ๊ตฌํ์ ํฌ๊ฒ ๋จ์ํํ code generator ์ด๋ค. ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด Dto ์ Entity์ ๋ณํ์ ์ฝ๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด Map Struct๋ฅผ ์ ์ฌ์ฉํ ๊น? ์ฅ์ ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ์ ๋งคํ์ฝ๋๊ฐ ์์ฑ๋๊ธฐ๋๋ฌธ์ ์ปดํ์ผ ์ค๋ฅ ํ์ธ์ด ๊ฐ๋ฅํ๋ค. (์ปดํ์ผ ์์ ์ ๋งคํ ์ ๋ณด๊ฐ ํ์ ์ธ์ดํํ ์ง๋ฅผ ๊ฒ์ฆ) ๋ฆฌํ๋ ์ ์ด ์๋ ์ง์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ์ฌ ์๋๊ฐ ๋น ๋ฅด๋ค. ๋๋ฒ๊น ์ด ์ฝ๋ค. ๊ตฌํ์ฒด๋ฅผ ์๋์ผ๋ก ์์ฑ ๋๊ธฐ๋๋ฌธ์ ์์ฑ๋ ๋งคํ ์ฝ๋๋ฅผ ๋์ผ๋ก ํ์ธ ํ ์ ์๋ค. → ์ค์ ๊ฑฐ๋ํ ์์คํ ์ ๋ง๋ค๋ค๋ณด๋ฉด, ๋ค์ํ ๋๋ฉ์ธ ์์ญ๋ค์ด ์.. 2023. 1. 21. [JPA] Entity Custom ID Generator (@GenericGenerator) Entity์ ๊ธฐ๋ณธํค (primary key)๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ณดํต Auto Increment ๋ฐฉ์์ด๋ UUID ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํ๋ค. Auto Increment : ๊ตฌํ์ด ๊ฐ๋จํ๊ณ ์ฌ์ ๋ ฌ์ด ํ์์๋ค(์์๊ฐ ๋ณด์ฅ๋๋ค.) : ํ๋์ DB์์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ค์ผ์ผ์์์ ํตํ ํ์ฅ์ด ๋ถ๊ฐ๋ฅํ๋ค. (์ฒ๋ฆฌ ์ฑ๋ฅ ํ์ ์ด ์ด๋ ค์) : insert ํ์์ผ PK ๊ฐ์ ์์ฑํ ์ ์๋ค. : ๋ณดํต bigint๋ก ๊ตฌํ. : ์ธ๋ถ์ ๋ ธ์ถ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ฉด ์๋๋ค. (๋ค๋ฅธ id๋ฅผ ์ ์ถ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์) UUID : ๋คํธ์ํฌ ์์์ ๊ณ ์ ์ฑ์ด ๋ณด์ฅ๋๋ ID๋ฅผ ๋ง๋ค๊ธฐ ์ํ ํ์ค ๊ท์ฝ : 128 bit ๋ฐ์ดํฐ๋ก ํํ (16 Byte) : ๋ฉํฐ ํ๊ฒฝ์์๋ ๋ณ๋ ฌ๋ก ๋์ํ์ฌ ์ ์ผํ ID๋ฅผ ์์ฑํ ์ ์๋ค. : 128bit๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์.. 2023. 1. 18. [TIL] 221227 - ๋ฐฑ์๋์ ํ๋ก์ ํธ ์ค๋น์ฌํญ ๋ฐฑ์๋๊ฐ ์ด์ ๋๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋(์งํํ๊ธฐ์ ) ์ฐธ๊ณ ํ ๋งํ ์ฒดํฌ๋ฆฌ์คํธ๊ฐ ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด๋ดค๋ค. ์์ธํ ๋ด์ฉ์ ์๋ ๋ธ๋ก๊ทธ ์ฐธ๊ณ ํ๊ธฐ! ๋ฐฑ์๋๊ฐ ์ด์ ๋๋ ํด์ค์ผํจ - planB ์๋ฆฌ์ฆ | ๋ฐฑ์๋๊ฐ ์ด์ ๋๋ ํด์ค์ผ ํจ - city7310.log ์ด๋ฒ์ ์์กด์ฑ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ๊ฒฐ์ ํ์. pip, npm, yarn, gem, maven, gradle ๋ฑ๊ณผ ๊ฐ์ ์์กด์ฑ ๊ด๋ฆฌ/๋น๋ ๋๊ตฌ๋ฅผ ์จ๋ณธ ์ ์๋ค๋ฉด ์ดํดํ๊ธฐ ์ด๋ ค์ธ ์ ์์ผ๋ ์์กด์ฑ ๊ด๋ฆฌ ๋๊ตฌ(Dependency Manager)๋ผ๋ ๊ธ์ ์ฝ์ด velog.io 1. ํ๋ก์ ํธ ๊ธฐํ์(์๊ตฌ์ฌํญ ๋ถ์) ํ๋ก์ ํธ์ ๋ํด ์ ๋ฆฌํ๊ธฐ ํ๋ก์ ํธ๋ฅผ 5๋ฌธ์ฅ/3๋ฌธ์ฅ/1๋ฌธ์ฅ์ผ๋ก ์ ์ํ๊ธฐ ๋น์ทํ ์๋น์ค๊ฐ ๋ฌด์์ด ์๊ณ ์ด๋ค ์ฐจ๋ณ์ ์ด, ๋ฌด์์ ๋ฐฐ์ธ์ ์๋์ง ๊ฐ.. 2023. 1. 6. ์ด์ 1 2 3 4 5 ยทยทยท 12 ๋ค์