ํฐ์คํ ๋ฆฌ ๋ทฐ
Spring
[SPRING]์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ ์น์ 1 (JPA ์๊ฐ) #2
chaewonni 2024. 4. 19. 11:33๐กJPA๋?
- Java Persistence API
- ์๋ฐ ์ง์์ ORM ๊ธฐ์ ํ์ค
๐ป ORM์ด๋?
- Object-relational mapping(๊ฐ์ฒด ๊ด๊ณ ๋งคํ)
- ๊ฐ์ฒด๋ ๊ฐ์ฒด๋๋ก ์ค๊ณํ๊ณ , ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋๋ก ์ค๊ณํ๋ฉด,
- ORM ํ๋ ์์ํฌ๊ฐ ์ค๊ฐ์์ ๋งคํํด์ค๋ค.
- ๋์ค์ ์ธ ์ธ์ด์๋ ๋๋ถ๋ถ ORM ๊ธฐ์ ์ด ์กด์ฌํ๋ค.
๐ป JPA ๋์ ๋ฐฉ์
JPA๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ JDBC ์ฌ์ด์์ ๋์ํ๋ค.
JPA์ ๋์ ๊ณผ์
- Java ์ ํ๋ฆฌ์ผ์ด์ ์์์ ํธ์ถ: Java ์ ํ๋ฆฌ์ผ์ด์ ์ JPA API๋ฅผ ํธ์ถํ๋ค.
- JPA์ ์ฒ๋ฆฌ: JPA๋ ์ด ์์ฒญ์ ๋ฐ์ ๋ด๋ถ์ ์ผ๋ก JDBC API๋ฅผ ํธ์ถํ๋ค.
- JDBC๋ฅผ ํตํ SQL ์คํ: JDBC๋ ํ์ํ SQL์ ์์ฑํ๊ณ ์คํํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์์์ ๊ฒฐ๊ณผ ๋ฐํ: ์คํ๋ SQL์ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๋ฐํ๋๋ค.
JPA ๋์ - ์ ์ฅ
- ๋ฉค๋ฒ ๊ฐ์ฒด๋ฅผ ๋ฉค๋ฒ DAO์ ๋๊ธด๋ค.
- ๋ฉค๋ฒ DAO๊ฐ ๋ฉค๋ฒ ๊ฐ์ฒด๋ฅผ ์ ์ฅํด๋ฌ๋ผ๊ณ JPA์๊ฒ ๋ฉค๋ฒ ์ํฐํฐ๋ฅผ ๋์ง๋ค.
- JPA๊ฐ ์์์ ๋ฉค๋ฒ ๊ฐ์ฒด๋ฅผ ๋ถ์ํ๋ค. (INSERT SQL ์์ฑ, ํจ๋ฌ๋ค์์ ๋ถ์ผ์น ํด๊ฒฐ ๋ฑ...)
- JDBC API๊ฐ DB์ INSERT ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฐ๋ค.
- JPA ๋์ - ์กฐํ
- JPA์ ๋ฉค๋ฒ ์์ด๋๋ฅผ ๋์ง๋ค. ('find(id)' ๋ฉ์๋๋ JPA์๊ฒ ๋ฐ์ดํฐ ์กฐํ ์์ ์ ์์ฒญํ๋ค.)
- JPA๋ ์ด ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ด๋ถ์ ์ผ๋ก SELECT SQL ๋ฌธ์ ์์ฑํ๋ค.
- JDBC API๋ฅผ ์ฌ์ฉํ์ฌ ์ด SQL ๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ ์กํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ SQL ๋ฌธ์ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ResultSet ํํ๋ก ๋ฐํํ๋ค.
- JPA๋ ResultSet์ ๋ฐ์ Java์ Entity Object (์ฌ๊ธฐ์๋ ๋ฉค๋ฒ ์ ๋ณด๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด)๋ก ๋ณํํ๋ค.
JPA์์ ๊ฐ์ฅ ์ค์ํ ์ญํ ์ ๋ฐ๋ก ํจ๋ฌ๋ค์ ๋ถ์ผ์น ํด๊ฒฐ์ธ๋ฐ, ๋ ์์ธํ ๋ด์ฉ์ https://programming-tree.tistory.com/108 ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.^^
๐ป JPA ๊ตฌํ์ฒด
JPA๋ Java ORM ๊ธฐ์ ์ ๋ํ API ํ์ค ๋ช ์ธ๋ก, ์ฌ๋ฌ ๊ตฌํ์ฒด๊ฐ ์กด์ฌํ๋ค.
๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๊ตฌํ์ฒด๋ ํ์ด๋ฒ๋ค์ดํธ(Hibernate) ์ด๋ค.
๐ป JPA๋ฅผ ์ ์ฌ์ฉํด์ผ ํ๋๊ฐ?
- SQL ์ค์ฌ์ ์ธ ๊ฐ๋ฐ์์ ๊ฐ์ฒด ์ค์ฌ์ผ๋ก ๊ฐ๋ฐ
- ์์ฐ์ฑ: JPA๋ ๊ฐ๋ฐ์๊ฐ ์ง์ SQL์ ์์ฑํ์ง ์๋๋ก ํ์ฌ ์์ฐ์ฑ์ ๋์ฌ์ค๋ค.
- ์ ์ง๋ณด์: ๊ฐ์ฒด ์ค์ฌ์ ์ฝ๋๋ก ์ ์ง๋ณด์๋ฅผ ๊ฐํธํ๊ฒ ํด์ค๋ค. ๊ธฐ์กด์๋ ํ๋ ๋ณ๊ฒฝ์ ๋ชจ๋ SQL์ ์์ ํด์ผ ํ์ง๋ง, JPA๋ฅผ ํตํด ํ๋๋ง ์ถ๊ฐํ๋ฉด SQL์ JPA๊ฐ ์์์ ์ฒ๋ฆฌํด์ค๋ค.
- ์ฑ๋ฅ: ์บ์์ ๊ฐ์ ๊ธฐ์ ์ ํตํด ์ฑ๋ฅ์ ์ต์ ํํ๋ค.
- ๋ฐ์ดํฐ ์ ๊ทผ ์ถ์ํ์ ๋ฒค๋ ๋ ๋ฆฝ์ฑ: ์ ํ๋ฆฌ์ผ์ด์ ์ด ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ ์ ์ข ์๋์ง ์๋๋ก ๋์์ค๋ค.
- ํ์ค: JPA๋ ์๋ฐ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์ดํฐ ์ ๊ทผ ํ์ค์ ์ ๊ณตํ๋ค.
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- ์๋ฐ ์คํ๋ง
- ๋น์์
- ํ๋ก ํธ์๋
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ํ์ด์ฌ
- ์ปค๋ฎค๋ํฐ
- ์ธํ ๋ฆฌ์ ์ด
- ์นMVC
- ์ค์์
- EnumType.ORDINAL
- ๋ถ๋งํฌ
- ์คํ๋ง ์ปค๋ฎค๋ํฐ
- SQL
- SQLD
- ์คํ๋ง ๋ถ๋งํฌ
- ์ง์ฐ๋ก๋ฉ
- ์๋ฐ
- ์คํ๋ง
- ๋ฐฑ์ค
- ๋ฐฑ์ค ํ์ด์ฌ
- ์น MVC
- ํ์ํํด
- ๋ก๊น
- ์คํ๋ง๋ถํธ
- ๋ก๊ทธ์์
- JPA
- elasticsearch
- SQL ๋ ๋ฒจ์
- ์์
- DP
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
๊ธ ๋ณด๊ดํจ