DB ์ฐ๋์ ์ด์ JPA!
์ค๋ฌด ์ค์ฌ์ ํต์ฌ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋น ๋ฅด๊ฒ ๐
๋ฐฑ์๋ ์ค๋ฌด์๋ฅผ ์ํ
JPA & ์คํ๋ง ๋ฐ์ดํฐ JPA
JPA & Spring Data JPA?
JPA๋ ๊ฐ์ฒด๋ฅผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ์ ์์ํํด์ฃผ๋ ๋๊ตฌ๋ก, ORM์ ์ํ JAVA EE ํ์ค ๊ธฐ์ ์
๋๋ค. ์คํ๋ง ๋ฐ์ดํฐ JPA๋ ์คํ๋ง์์ JPA๋ฅผ ์ด์ฉํ ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ฐํ ์ ์๋๋ก ์ฐ๋ํด ์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
JPA๋ฅผ ๋น ๋ฅด๊ฒ ์ตํ๊ณ ์ถ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์์ด์ ๊ฐ์? ์คํ๋ง๊ณผ JPA๋ฅผ ์ด์ฉํ ํ๋ก์ ํธ๋ฅผ ์งํํด์ผ ํ๋์? ์ด ๊ฐ์๋ ์๋ฐ์์ DB ์ฐ๋์ ํ ๋ ํ๋ฐํ๊ฒ ์ฌ์ฉ๋๋ ๊ธฐ์ ์ธ JPA๋ฅผ ์ตํ๊ณ , ์คํ๋ง์์ JPA๋ฅผ ์ฐ๋ํ ๋ ์ฌ์ฉํ๋ ์คํ๋ง ๋ฐ์ดํฐ JPA์ ๊ธฐ์ด ์ฌ์ฉ๋ฒ์ ๋ฐฐ์ฐ๊ธฐ ์ํ ๊ฐ์์
๋๋ค.
์ค์ ํ์
์์ ์ฐ์ด๋ JPA ๊ด๋ จ ๊ธฐ๋ฅ์ 90%๋ฅผ ๋ค๋ฃน๋๋ค.
์ด ๊ฐ์๋ ์ค๋ฌด์์ ์ฃผ๋ก ์ฌ์ฉํ๋ JPA ๋ฐ ์คํ๋ง ๋ฐ์ดํฐ JPA ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ตํ๋ ๋ฐ ์ด์ ์ ๋๊ณ ์์ต๋๋ค. ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋๋ฉด JPA๋ฅผ ์ฌ์ฉํ๋ ์๋น์ค ๊ฐ๋ฐ ํ๋ก์ ํธ์์ ์ฝ๋๋ฅผ ์ดํดํ๊ณ , ์์ฑํ ์ ์๊ฒ ๋ ๊ฒ์
๋๋ค. ์ค์ ๊ฐ๋ฐ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ JPA ๊ด๋ จ ๊ธฐ๋ฅ์ 90% ์ ๋๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์๋ ค๋๋ฆฝ๋๋ค.
โ
์ ์ ์ง์์ ํ์ธํด์ฃผ์ธ์!
- ์๋ฐ์์ JDBC, MyBatis๋ฅผ ์ด์ฉํ DB ์ฐ๋ ๊ฒฝํ์ด ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ๋ค์ ์ ์์ต๋๋ค.
ํ์ต ๋ด์ฉ ๐
์ค์ JPA ํ๋ก์ ํธ์ ์ฐ์ด๋ JPA ๋ฐ ์คํ๋ง ๋ฐ์ดํฐ JPA์ ํต์ฌ ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ํ์ตํ ์ ์์ต๋๋ค.
- JPA์ ๊ธฐ๋ณธ ๋งคํ ์ค์
- ์์ ์ปจํ
์คํธ
- ์๋ณ์ ์์ฑ ๋ฐฉ์
- @Embeddable ์ค์
- ์ฝ๋ ์
๋งคํ
- ์ํฐํฐ ๊ฐ ์ฐ๊ด ๋งคํ
- JPQL & Criteria
- Spring Data JPA ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ
- Spring Data JPA Specification ์ฌ์ฉ
JPA ๊ธฐ์ด - ์ํฐํฐ ๋งคํ ์ค์ ์ค
Spring Data JPA - ์์ํ๊ธฐ ์ค
โ๋ฐฑ๋ฐ์ ๊ฐ๋ฐ์๋ฅผ ๊ฟ๊พธ๋ ์๋ฒ ๊ฐ๋ฐ์, ์ต๋ฒ๊ท ์
๋๋ค.โ
์คํ๋ง๊ณผ JPA๋ฅผ ์ด์ฉํ ๋ค์ํ ํ๋ก์ ํธ ๊ฒฝํ์ด ์์ต๋๋ค. โ์คํ๋ง 5 ํ๋ก๊ทธ๋๋ฐ ์
๋ฌธโ, โJPA ํ๋ก๊ทธ๋๋ฐ ์
๋ฌธโ โ๋๋ฉ์ธ ์ฃผ๋ ๊ฐ๋ฐ ์์ํ๊ธฐโ, โํ
์คํธ ์ฃผ๋ ๊ฐ๋ฐ ์์ํ๊ธฐโ ๋ฑ์ ์ฑ
์ ์งํํ์์ต๋๋ค.
Q&A ๐ฌ
Q. SQL์ด๋ JDBC ๊ฒฝํ์ด ์์ด๋ ๋๋์?
์ต์ํ ์๋ฐ์์ ๊ธฐ๋ณธ์ ์ธ SELECT, UPDATE, DELETE, INSERT ์ฟผ๋ฆฌ๋ฅผ ์คํํ ๊ฒฝํ์ ์์ด์ผ ๊ฐ์ ๋ด์ฉ์ ์ดํดํ ์ ์์ต๋๋ค.
Q. ๊ฐ์์์ ์ธ๊ธํ JPA ๋ฒ์ ์ด 3.0์ธ๋ฐ ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ JPA 2 ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ฒ์ ์ผ๋ก ์ธํ ์ฐจ์ด๋ ์๋์?
๊ฐ์์์ ์๊ฐํ๋ ๋ด์ฉ์ ํจํค์ง ๋ช
์ ์ ์ธํ๋ฉด ๊ธฐ๋ฅ์ ์ฐจ์ด๊ฐ ์์ผ๋ ๊ฐ์์์ ์๊ฐํ ๋ด์ฉ์ ๋์ดํ๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.
Q. QueryDSL์ ์ ์ ๋ค๋ฃจ๋์?
๊ฐ์์์๋ ์ธ๊ธํ์ง๋ง ๋ชฉ๋ก, ์์ธ์ ๊ฐ์ ์กฐํ ๊ธฐ๋ฅ์ SQL์ ์ง์ ์ฌ์ฉํ๊ฑฐ๋(JdbcTemplate์ด๋ MyBatis), ๊ฒ์ ์กฐ๊ฑด ์กฐํฉ์ด ํ์ํ ๊ฒฝ์ฐ Specification์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ํธํฉ๋๋ค.
ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ฐ์ ๐บ