ํด๋น ๊ธ์ ๋ฐฐ์๋ณด์ Spring Data JPA ์๋ฆฌ์ฆ ์ ๋๋ค.
ํด๋น ์๋ฆฌ์ฆ์ ๋ด์ฉ์ด ์ด์ด์ง๋ ํํ์ด๋ฏ๋ก ๊ธ์ ๋ด์ฉ ์ค์ ์๋ต๋๋ ๋ง๋ค์ด ์์ ์ ์์ผ๋, ์์ธํ ์ฌํญ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์!
- Spring Data JPA์ ๊ธฐ๋ณธ๊ณผ ํ๋ก์ ํธ ์์ฑ :: ์๋ฆฌ์ฆ ํ์ต ํ๊ฒฝ ์ค๋น
- JPA์ ๊ธฐ๋ณธ๊ณผ Spring Data JPA
- Springboot project ์์ JPA ์ค์ ํ๊ธฐ
- JPA์ ๊ธฐ๋ณธ ์ด๋
ธํ
์ด์
๋ค :: JPA์ ์์๊ณผ ๋์์ ๋
- ์ํฐํฐ์ ํ ์ด๋ธ ๋งคํ
- ํ๋์ ์ปฌ๋ผ ๋งคํ
- ๋งคํ ํ
์ด๋ธ๊ณผ ์ฐ๊ด๊ด๊ณ ๋งคํํ๊ธฐ :: RDB์ ๊ฝ, ์ฐ๊ด ๊ด๊ณ
- ์ฐ๊ด๊ด๊ณ๋?, ์ธ๋ ํค๋?, ๋งคํ ํ ์ด๋ธ์ด๋?
- ์ผ๋์ผ, ์ผ๋๋ค, ๋ค๋์ผ ์ฐ๊ด๊ด๊ณ
- ๊ณตํต ์ธํฐํ์ด์ค ๊ธฐ๋ฅ :: ์ด๋ป๊ฒ Data JPA ๋ ๋์ํ ๊น?
- ๋จ๊ฑด ์กฐํ ๋ฐํ ํ์
- ์ปฌ๋ ์ ์กฐํ ๋ฐํ ํ์
- ์ฌ์ฉ์ ์ ์ ์ฟผ๋ฆฌ ์ด์ฉํ๋ ๋ฐฉ๋ฒ :: ๋ด๊ฐ ์ํ๋ ์ฟผ๋ฆฌ๋ฅผ JPA ์์ ๋ง๋ค์ด๋ณด์!
- ๋ฉ์๋ ์ด๋ฆ์ผ๋ก ์ฟผ๋ฆฌ ์์ฑํ๊ธฐ
@Query
๋ฅผ ์ด์ฉํ์ฌ ๋ฉ์๋์ ์ ์ ์ฟผ๋ฆฌ ์์ฑํ๊ธฐ
- ํ์ด์ง๊ณผ ์ ๋ ฌ :: ๊ฒ์ํ๊ณผ ๊ฐ์ ํ์ด์ง๊ฐ ์๋ ์๋น์ค์์ ๋น์ ๋ฐํ๋ JPA ํ์ด์ง!
- Data JPA์ ํ์ด์ง๊ณผ ์ ๋ ฌ
- Web MVC ์์ JPA ํ์ด์ง๊ณผ ์ ๋ ฌ
- Auditing :: ๋ชจ๋ ์์ฒญ๊ณผ ์๋ต์
๋๊ฐ, ์ธ์
์ ๊ทผํ๋์ง ํ๋์ ์ํฐํฐ๋ก ๊ด๋ฆฌํ์.- ์์ JPA์ Auditing
- Spring Data JPA์ Auditing
- ๋ฐฐ์๋ณด์ Spring Data JPA ์๋ฆฌ์ฆ๋ฅผ ๋ง์น๋ฉฐ...
- ์๋ฆฌ์ฆ๋ฅผ ๋ง์น๋ฉฐ ๋๋์
- ๋ด๊ฐ ์ ๋ณด๋ฅผ ์ป์ ๊ณณ
- ํด๋น ์๋ฆฌ์ฆ๋ฅผ ์์ฃผํ์ จ๋์?
์๋ฆฌ์ฆ๋ฅผ ๋ง์น๋ฉฐ
์ด๋ฒ ์๋ฆฌ์ฆ๋ฅผ ๊ธฐํํ๊ณ ํฌ์คํ ์ ํด๋๊ฐ๋ ๋์ JPA ์ ๋ํด์ ๋ ์ค์ค๋ก๋ ๋ ๋ง์ด ์ฐพ์๋ณด๊ณ ์๊ฒ ๋ ์๋ฏธ์๋ ์๋ฆฌ์ฆ์ด๋ค.
๊ธฐ์กด์ ์๊ณ ์๋ ๋ด์ฉ์ ๋ค์ ๋์ง์ด๋ด๋ ค ํ๋ ๋๋ ์กฐ๊ธ ์ ๋งคํ ๋ถ๋ถ๋ค์ด ๋ง์ด ์กด์ฌํ์๋ค.
ํ์ง๋ง ์์ ๋ ์๋ค์๊ฒ ์๋ชป๋ ์ ๋ณด๋ฅผ ์ฃผ๋ฉด ์๋๋ค๋ ์๊ฐ ํ๋๋ก ๋ค์ ์ฑ ์ ํผ์ณ๋ณด๊ณ ๋ค์๋ ๊ฐ์๋ฅผ ๋ค์ ๋ฃ๋ค๋ณด๋ ์ฒ์ ๋ดค์ ๋, ์ฒ์ ๋ค์์ ๋ ๋ค๋ฆฌ์ง ์๋ ๋ด์ฉ๋ค๋ ๋ง์ด ์ดํด๊ฐ ๋๊ธฐ ์์ํ๋ค.
์ด๋ฅผ ํตํด์ ๋๋ ์ ์ด ํ๋ ์๋๋ฐ,
์ญ์ ๊ฐ๋ฐ์๋ ๊ณต์ ํ๋ฉฐ ์ฑ์ฅํ๋ ๊ฒ ์ข๊ณ ๋ ์ญ์ ๊ทธ๊ฒ ์ ๋ง๊ตฌ๋.. ๋ธ๋ก๊ทธ ํ๊ธธ ์ ํ๋ค.. ์ถ์๋ค.
์ด๋ฒ ์๋ฆฌ์ฆ์๋ ๋ฌผ๋ก ์๋ชป๋ ์ ๋ณด ํน์ ๋ถ์กฑํ ์ค๋ช ๋ค์ด ์กฐ๊ธ ํฌํจ๋์ด ์์ ์ ์๋ค.
ํ์ง๋ง ์ด๋ฒ ์๋ฆฌ์ฆ์ ๋ชฉํ๋ ์ ์ด์ JPA ์์ ์ ๋ณต์ด ์๋ JPA์ ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถ๊ณ JPA๋ฅผ ์ค์ ๋ก ์จ๋ณด๊ธฐ ์ํ ๋ชฉํ์ด๋ฏ๋ก ์ฌ๋ฌ ์ฌ๋๋ค์๊ฒ ๋์์ด ๋์์ผ๋ฉด ํ๋ค.
๋ด๊ฐ ์ ๋ณด๋ฅผ ์ป์ ๊ณณ
์ฐ์ , ๊ตฌ๊ธ์ ์กด์ฌํ๋ ๋ง์ ๋ธ๋ก๊ทธ์ ์ฌ๋ฌ ์ค๋ช ๊ณผ ์๊ฐ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๋ธ๋ก๊ฑฐ๋ค๊ณผ ์ ํ๋ฒ๋ค์๊ฒ ๊ฐ์ฌ์ ์ธ์ฌ๋ฅผ ํํ๋ค.
๋ด๊ฐ ์ ๋ณด๋ฅผ ์ป์ ๊ณณ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊น์ํ๋ ์ฑ
- ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ ๊น์ํ๋ ๊ฐ์
- ์ค์ ! ์คํ๋ง ๋ฐ์ดํฐ JPA - ์ธํ๋ฐ ๊น์ํ๋ ๊ฐ์
- Hibernate ORM - Official Docs
- Spring Data - Oficial Docs
- Spring Data JPA - Official Docs
์ฑ
์ฐ์ JPA์ ํ์ค ๋ฐ์ด๋ธ์ด๋ผ๊ณ ์๊ฐ๋๋ JPA ํ๋ก๊ทธ๋๋ฐ ์ฑ ์ ์ ๋ง ๊ผญ ๊ฐ์ถํ๋ค.
์ฑ ๊ตฌ์ฑ์ ์ฝ๋๋ค์ด ๋ง๊ณ ์ค๋ช ์ด ์์ธํ๊ฒ ๋์์์ด์ ๊ฐ๋ณ๊ฒ ์งํ์ฒ ํ๋ฉฐ ์ฝ์ ์ ๋์ ์์ค์ผ๋ก ์์ฑ๋์ด ์๋ค.
๋ํ ๋ค๋ฅธ ์ด๋ก ์ฑ
๋ค๊ณผ ๋ค๋ฅด๊ฒ ์ค๋ฌด ์ค์ฌ์ ์ธ ์ค๋ช
์ด ์์ด์ JPA์ ๋ชจ๋ ๊ธฐ์ ์ ์ค๋ช
ํ๋ค๊ฐ๋ ์ค๋ฌด์์ ์ฌ์ฉ๋์ง ์๋ ๊ธฐ์ ์ด ๋ฑ์ฅํ๋ฉด ๊ณผ๊ฐํ๊ฒ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ์ธ์งํด์ค๋ค.
์ด ์ ์ด ์์ฃผ ์ข์์๋ค.
๊ฐ์
๊ฐ์๋ ์กฐ๊ธ ๋น์ผ ํธ์ด๋ผ๊ณ ์๊ฐํ ์ ์์ง๋ง ๊ฐ์ ๊ตฌ์ฑ์ ๋นํ๋ฉด ์ ๋ง ํ์์ค๋ฌ์ด ๊ฐ๊ฒฉ์ด๋ผ๊ณ ์๊ฐํ๋ค.
์ผ๋จ ๊ฐ์๋ ์ฑ ์ ๋ฒ ์ด์ค๋ก ํ๋๋ฐ, ๊น์ํ๋์ ํน์ ์ ๋งค๋ ฅ์ ๋๋ผ๋ฉด์ ๊ณต๋ถํ ์ ์์ด์ ํฅ๋ฏธ๋กญ๊ธฐ๊น์ง ํ๋ค.
์ฑ ์ ํตํด์ ๊ณต๋ถํ๊ธฐ๊ฐ ํ๋ ์ฌ๋๋ค์๊ฒ ์ถ์ฒํ๋ค.
๊ณต์ ๋ฌธ์
๊ณต์ ๋ฌธ์๋ ์ฑ ์์ ์ค๋ช ์ด ๋ถ์กฑํ, ์ ํํ๋ ๋ด๊ฐ ๋ ๊ถ๊ธํ ๋ด์ฉ์ด ๋์ฌ ๋ ํ ๋ฒ์ฉ ๋ค์ด๊ฐ์ ๋ฉ์๋์ ๋ํ ์ค๋ช ๊ณผ ๊ฐ๋ ์ ์ฐธ๊ณ ํ์๋ค.
ํด๋น ์๋ฆฌ์ฆ๋ฅผ ์์ฃผํ์ จ๋์?
๋๋ JPA์ ๋๊ฐ๋ ํน์ JPA ๋ฅ๋ ฅ์๊ฐ ์๋ ๋จ์ง ์ผ๊ฐ์ ํ์์ผ ๋ฟ์ด๋ค.
๊ทธ๋์ ๋ถ์กฑํ๊ฒ ์ค๋ช ์ด ๋ค์ด๊ฐ ๋ถ๋ถ๋ ๋ถ๋ช ์กด์ฌํ ๊ฒ์ด๊ณ ์๋ต๋ ๋ด์ฉ๋ค, ์๋ฅผ ๋ค๋ฉด ์ํฐํฐ ๋งค๋์ ๋ ์์์ฑ ์ปจํ ์คํธ์ ๊ฐ์, ์ด ์์ ์ ์์ผ๋ ๊ผญ JPA ์ ๋ํด์ ๋ ์์๋ณด๊ธฐ ๋ฐ๋๋ค.
์ด ์๋ฆฌ์ฆ๋ฅผ ์ฌ๋ฐ๊ฒ ์์ฃผํ๋ค๋ฉด ์ฅ๋ดํ๊ฑด๋ฐ JPA๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋ ์ฌ๋ฐ์ ๊ฒ์ด๋ผ๊ณ ๋งํ ์ ์๋ค.
๋ํ ํ๋ก์ ํธ๋ฅผ ํด๋ณด๊ธธ ๋ฐ๋๋ค.
์ง๊ธ๊น์ง ๋ฐฐ์ด ๋ด์ฉ๋ค๋ก๋ ์ฌ์ค ๊ฐ๋จํ ๊ฒ์ํ ํ๋๋ ์ถฉ๋ถํ ๋ง๋ค ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
์ฌ๋ฌ๋ถ๋ค์ด ์ง์ ๊ฒ์ํ๋ ๋ง๋ค์ด๋ณด๊ณ todolist ๋ ๋ง๋ค์ด ๋ณด๋ฉด์ JPA๋ฅผ ๋ณธ์ธ์ ๊ฒ์ผ๋ก ๋ง๋ค๊ธฐ ๋ฐ๋๋ค!
ํด๋น ์๋ฆฌ์ฆ๋ฅผ ๊ธฐํํ๊ณ ํฌ์คํ ํ๋๋ฐ ์ฝ 1์ฃผ์ผ์ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.
1์ฃผ์ผ์ ์๊ฐ๋์ ๋๋ ๋ง์ด ๋ฐฐ์ฐ๊ณ ๋ง์ด ์ป์ด๊ฐ๋ ์๊ฐ์ด์์ด์
์ ์๊ฒ ์ด ์๋ฆฌ์ฆ๋ฅผ ์ฐ์ฌํ ์ ์๊ฒ ๋๊ธฐ๋ถ์ฌ๋ฅผ ํด์ค ๋ธ๋ก๊ทธ ๋ชจ๋ ๋ฐฉ๋ฌธ์์๊ฒ ๊ฐ์ฌ์ ๋ง์์ ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๋๊ธ