JPA(Java Persistence API)
โข
์๋ฐ ์ดํ๋ฆฌ์ผ์ด์
์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ์ํ ์ธํฐํ์ด์ค
โข
์๋ฐ ์ง์์ ORM ํ์ค
์ธํฐํ์ด์ค์๋ ๊ตฌํ์ฒด๊ฐ ์กด์ฌํด์ผ ํจ.
JPA ์ฅ๋จ์
โข
JPA ์ฌ์ฉ ์ ์ฅ์
โฆ
SQL์ ๋ชจ์์ ํ ๋ฒ์ ๋ณด๋ด๋ฏ๋ก ์ฑ๋ฅ ์ ์ด์
โฆ
์์ฉ ๋ ๋ฒจ์์ Repetable Read
์ถ๊ฐ์ ์ผ๋ก
โข
N + 1 ๋ฌธ์
โฆ
JPA์ ์ฑ๋ฅ ํ๋์์ ๊ฐ์ฅ ์ค์ํ ๊ฐ๋
โข
JPQL
โฆ
JPA๊ฐ ์ ๊ณตํด์ฃผ๋ ๊ธฐ๋ณธ CRUD์ธ์ ํต๊ณ์ฑ ์ฟผ๋ฆฌ ๋ฑ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์ํด
โฆ
JPQL์ ํธ๋์ญ์
๋ด์์ ๊ณง ๋ฐ๋ก ์คํ๋๋ ํน์ฑ์ด ์์ผ๋ฉด ์ด๋ N + 1 ๋ฌธ์ ์ ์ฐ๊ด์ด ์์
โข
QueryDSL
โฆ
๋ฌธ์์ด์ ๋ง์
์ฐ์ฐ์ ํตํ ์ฟผ๋ฆฌ ์์ฑ์ 1) ๋ถํธํ๊ณ 2) ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋์
โฆ
๋ฌธ์์ด์ ๋ง์
์ฐ์ฐ์ ํนํ ๋์ ์ฟผ๋ฆฌ ์์ฑ ์ ์ฃผ๋ก ์ฌ์ฉ
โฆ
๋์ ์ฟผ๋ฆฌ ์์ฑ์ ๊ฐํธํ๊ณ ์ฌ์ฌ์ฉ์ฑ์ด ๋์ ์ฝ๋๋ฅผ ๋ง๋ค๊ธฐ ์ํด QueryDSL ํ์ต