1. JPA ๋?
JPA๋ ์๋ฐ ์ง์์์ ORM(Object-Relational Mapping) ๊ธฐ์ ํ์ค์ผ๋ก ์ฌ์ฉ๋๋ ์ธํฐํ์ด์ค์ ๋ชจ์์ด๋ค. ์ค์ง์ ์ผ๋ก ๊ตฌํ๋ ๊ฒ์ด ์๋๋ผ ๊ตฌํ๋ ํด๋์ค์ ๋งคํ์ ํด์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ์ด๋ค. JPA๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ ์คํ์์ค๋ก๋ Hibernate๊ฐ ์๋ค.
ORM(Object-Relational Mapping) ?
์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์๊ณ ์๋ ์ดํ๋ฆฌ์ผ์ด์ Class์ RDB์ ํ ์ด๋ธ์ ๋งคํํ๋ค๋ ๋ป์ด๋ฉฐ, ๊ธฐ์ ์ ์ผ๋ก๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ฒด๋ฅผ RDB ํ ์ด๋ธ์ ์๋์ผ๋ก ์์ํ ํด์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ๋ณด๋ฉด๋๋ค.
์ฅ์
1. SQL๋ฌธ์ด ์๋ Method๋ฅผ ํตํ DB๋ฅผ ์กฐ์ํ ์ ์์ด, ๊ฐ๋ฐ์๋ ๊ฐ์ฒด ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌ์ฑํ๋๋ฐ๋ง ์ง์คํ ์ ์์
2. Query์ ๊ฐ์ด ํ์ํ ์ ์ธ๋ฌธ, ํ ๋น ๋ฑ์ ๋ถ์์ ์ธ ์ฝ๋๊ฐ ์ค์ด๋ค์ด, ๊ฐ์ข ๊ฐ์ฒด์ ๋ํ ์ฝ๋๋ฅผ ๋ณ๋๋ก ์์ฑํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ๋์
3. ๊ฐ์ฒด์งํฅ์ ์ธ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅ
4. ๋งคํํ๋ ์ ๋ณด๊ฐ Class๋ก ๋ช ์๋์๊ธฐ ๋๋ฌธ์ ERD๋ฅผ ๋ณด๋ ์์กด๋๋ฅผ ๋ฎ์ถ ์ ์๊ณ ์ ์ง๋ณด์ ๋ฐ ๋ฆฌํฉํ ๋ง์ ์ ๋ฆฌ
5. DB๊ฐ ๋ณ๊ฒฝ๋๋๋ผ๋ ORM์ ์ด์ฉํ๋ค๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์์ ํ ํ์๊ฐ ์์
๋จ์
1. ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ํฌ๊ณ ๋ณต์กํ์ฌ ์ค๊ณ๊ฐ ์๋ชป๋ ๊ฒฝ์ฐ, ์๋ ์ ํ ๋ฐ ์ผ๊ด์ฑ์ ๋ฌด๋๋จ๋ฆฌ๋ ๋ฌธ์ ์ ์ด ์๊ธธ ์ ์์
2. ๋ณต์กํ๊ณ ๋ฌด๊ฑฐ์ด Query๋ ์๋๋ฅผ ์ํด ๋ณ๋์ ํ๋์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ตญ SQL๋ฌธ์ ์จ์ผํ ์ ์์
3. ํ์ต ๋น์ฉ์ด ๋น์
JPA(Java Persistence API)
- Java ์ง์์์ ORM ๊ธฐ์ ํ์ค์ผ๋ก ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค ๋ชจ์
- ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ์ํ ์ธํฐํ์ด์ค
- ์ธํฐํ์ด์ค ์ด๊ธฐ ๋๋ฌธ์ Hibernate, OpenJPA ๋ฑ์ด JPA๋ฅผ ๊ตฌํ
'๐ CS [ComputerScience] > ๐ CS ๋ฉด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [16] [์ด์์ฒด์ ] (0) | 2024.03.11 |
---|---|
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [ 3์ 1์ฃผ์ฐจ ] [ 1 ] (0) | 2024.03.10 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [14] [์๊ณ ๋ฆฌ์ฆ] (0) | 2024.03.08 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [13] [ Database ] (0) | 2024.03.07 |
๐ [CS๋ฉด์ ] ์น ๋ฉด์ ์ง๋ฌธ [12] [ Docker ] (0) | 2024.03.03 |