Spring JPA์ ์ฌ์ค๊ณผ ์คํด
by JiwonDevhttps://www.youtube.com/watch?v=rYj8PLIE6-k&list=PL42XJKPNDepZVLkCM4yEKmU4LHyXjzChy&index=8
ํ ์ด๋ธ์ ์ ๊ทํ๋ฅผ ํ์ฌ ์ต์ํ์ ๋ฐ์ดํฐ๋ฅผ ๋์ ์ฑ๋ฅ์ผ๋ก ์กฐํ, ๋ณ๊ฒฝํ๋ค.
Entity๋ ์๋ณ์์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ฐ๊ด๊ด๊ณ๋ ์ฐธ์กฐ ๊ฐ์ผ๋ก ๋ง๋ ๋ค.
ํ ์ด๋ธ์ ์ธ๋ํค ํ๋๋ก ์๋ฐฉํฅ ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ์ง๋ง
Entity๋ ๋ถ๊ฐ๋ฅํ๋ค. ๊ฐ๊ฐ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผํ๋ค.
ํ ์ด๋ธ์ ์ธ๋ํค๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ฃผ์ธ์ 1๊ฐ์ง๋ง
Entity๋ 2๊ฐ์ด๋ค. ๊ทธ๊ฒ ์๋๋ฉด ๋จ๋ฐฉํฅ์ผ๋ก ํ๊ฑฐ๋
๐ ๋ณดํต์ ๋จ๋ฐฉํฅ์ผ๋ก ์ถฉ๋ถํ๋ค.
๋ง๋ ๋ง์ด๋ค.
์ค๊ฐ์ Cascade๋ก ์์์ฑ ์ํ ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
๋ฌผ๋ก ๋ฐ๋๋ฐฉํฅ (1:N)๋ ๋ง์ฐฌ๊ฐ์ง
ํ์ง๋ง ์์ ์ฝ๋๋ ๊ธฐ๋ํ๋๋ก ๋์ํ์ง ์๋๋ค.
์ธ๋ํค๋ฅผ ์ง์ ํ๊ธฐ ์ํด์ ์ถ๊ฐ์ ์ธ update ์ฟผ๋ฆฌ๊ฐ ํ์ํ๋ค.
์๊ฐํด๋ณด๋ฉด ๋น์ฐํ ์ผ. member ํค๋ฅผ ๊ฐ์ ธ์ฌ ๋ insert, ์ดํ ์ธ๋ํค ์ง์ ํ ๋ update๊ฐ ํ์.
๋จ๋ฐฉํฅ์ด ๋ฌด์กฐ๊ฑด ์ข์๊ฒ ์๋๋ผ ์ํํด์ ๊ทธ๋ ๋ค.
์ด ๊ฒฝ์ฐ์๋ ์๋ฐฉํฅ์ผ๋ก ํด์ฃผ๋๊ฒ ์ข๋ค.
์ด๋ ๊ฒ ์ผ๋๋ค ๊ด๊ณ๋ฅผ ์๋ฐฉํฅ์ผ๋ก ๋ฐ๊พธ๋ฉด, ์ ๋ฐ์ดํธ ์ฟผ๋ฆฌ๊ฐ ์ถ๊ฐ์ ์ผ๋ก ๋ฐ์ํ์ง ์๋๋ค.
cascade๋ฅผ ์ฐ๋๊ฒฝ์ฐ์๋ ๊ทธ๋ ๋ค.
๐ ์ฐ๊ด๊ด๊ณ ๋งคํ์ ๋ต
์ฐธ๊ณ ๋ก ์์ ์ ์ฐจ์ด์ผ ๋ฟ, Lazy๋ N+1 ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. (๋ฌผ๋ก ์ค์ ์ฐธ์กฐ๊ฐ ์ผ์ด๋๋ ์์ ์ ๋ฐ์)
ํ์ด์ง๋ค์ด์ ์ฟผ๋ฆฌ์ fetch Join = ์กด๋ ์ํํ๋ค.
์ฐ๋ฆฌ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ํ ๋์๋ Limit ๊ฐ์๋ง ๊ฐ์ ธ์ฌ๊ฑฐ ๊ฐ์ง๋ง fetch ์กฐ์ธ์ด ์ ์ฉ๋๋ฉด ํ์ด์ง ๋ฒ์ ๋ด์ ์ผ๋งํผ์ ๋ ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋์ง ์๊ธฐ ์ด๋ ค์. ๊ทธ๋์ Limit ์กฐ๊ฑด์ด ์์ด ๋ค ๊ฐ์ ธ์ค๊ณ , ๋ฉ๋ชจ๋ฆฌ์์ ์ํ๋ ํ์ด์ง๋ง ๋ฐํํ๊ธฐ๋ํจ.
ํ์ด๋ฒ๋ค์ดํธ๋ง์ผ๋ก๋ ๋ฌธ์ ๊ฐ ์์ด๋ณด์ด์ง๋ง, DB์ชฝ์์๋ ์ฟผ๋ฆฌ๊ฐ ๋ฏธ์น๋ฏ์ด ์ฐํ๋๊ฑฐ์ ใ ใ .. ๋ถ๋ฆฌํด์ผํ๋ค.
๐ Spring Data JPA ๊ธฐ๋ฅ
JOIN์ฟผ๋ฆฌ๋ ๊ผญ JPQL ์ด๋ฐ๊ฑธ ์จ์ผํ๋์?
๋ฆฌํด ํ์ ์ด ๋ค๋ฅด๋ค. (Page Slice). ์ด ๋์์ฐจ์ด๋ ๋ฌด์์ผ๊น
Page๋ ์ฟผ๋ฆฌ๊ฐ 2๊ฐ ์ฐํ๋ค (Count)
Slice๋ ์นด์ดํธ ์ฟผ๋ฆฌ๊ฐ ์๋ค. ๊ทธ๋ผ ๋ค์ํ์ด์ง ์ฌ๋ถ๋ ์ด๋ป๊ฒ ์์์..?
โก limit๊ฐ ์ฐ๋ฆฌ๊ฐ ์ ์ ๊ฒ ๋ณด๋ค ํ๋ ๋๊ฐ์ ธ์ด.(์์ผ๋ฉด ๋ค์ ๊ฐ์ด ์๋๊ฑฐ)
๋ค๋ง Page๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ Limit ๋ณด๋ค ์ ๊ฒ ๋ฐํ๋๋ฉด Count๊ฐ ๋๊ฐ์ง ์์. ๊ทธ๊ฑด ์ฐธ๊ณ
๊ผฌ๋กฌํ๊ฒ ์ฌ์ฉํ๊ธฐ
DTO๋ฅผ ๋ง๋ค์ด์ผํ๋ค? (๋๋ QueryDSL ๊ฐ์๊ณณ์์ ํ๋ก์ ์ ๊ธฐ๋ฅ์ ์ด์ฉ?)
๋ ๋ฉ๋๋ค.
๋ญ ์ข์ํ ์ง ๋ชฐ๋ผ์ Dynamic Projection์ผ๋ก ์ค๋นํด๋ดค์ต๋๋ค.
'๐์ผ์ > ๋ฉํ ๋ง' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ๋ก๋ถํฐ HTML์ ์ฝ๋ ๊ณผ์ (0) | 2022.08.27 |
---|---|
๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ (0) | 2021.11.17 |
DDD-Lite@Spring (0) | 2021.11.15 |
์ฐ์ํ ๋ชจ๋ ธ๋ฆฌ์ค (0) | 2021.11.13 |
์์กด์ฑ์ ์ด์ฉํด ์ค๊ณ ์งํ์ํค๊ธฐ (0) | 2021.11.13 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev