JPA์ ๊ฐ๋ ๊ณผ ์ฌ์ฉ ์ด์ ์ ๋ํด ์์๋ณด์!
๐ฅ ๋ชฉํ
JPA๊ฐ ๋ฑ์ฅํ ๋ฐฐ๊ฒฝ๋ถํฐ JPA์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ ๋ํด ์ดํดํ๋ค.
1. JPA ๋ฑ์ฅ ๋ฐฐ๊ฒฝ
SQL Mapper๋ SQL ๊ตฌ์กฐ/๊ตฌ๋ฌธ์ ๋ํ ์์กด์ฑ์ด ๋์ ์๋์ ๊ฐ์ ๋ฌธ์ ์ ์ ์ผ๊ธฐํ๋๋ฐ,
JPA๋ฅผ ํ์ฉํ๋ฉด ์๋ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์๋ค๋ ์ฅ์ ์กด์ฌ
- ๊ฐ์ฒด์งํฅ ๋ฐ ๊ด๊ณ์งํฅ DB์ Paradigm ๋ถ์ผ์น ์ผ๊ธฐ
- ์ ์ง๋ณด์ ์ด๋ ค์ ์ผ๊ธฐ(e.g., ํ๋ ๋ณ๊ฒฝ ์ ๋ฐฉ๋ํ ์ฟผ๋ฆฌ๋ฌธ ์์ ํ์)
- ์์ฐ์ฑ ์ ํ: ๋ฒ๊ฑฐ๋ก์ด ๊ฐ์ฒด ํ๋-SQL ์ํธ๋ณํ(๊ฐ๋ฐ์๊ฐ ๊ณง SQL Mapper๋ผ๊ณ ํ ๋งํผ ๋ฐฉ๋ํ SQL ์์ ๋)
2. JPA ๊ฐ๋
2.1. JPA ๊ธฐ๋ณธ ๊ฐ๋
- Java Persistence API์ ์ฝ์
- Java Application์์ Relational Data Base(RDB) ์ฌ์ฉ ๋ฐฉ์์ ์ ์ํ ์ธํฐํ์ด์ค
- Java์์ ์ ๊ณตํ๋ API๋ก, Spring์์ ์ ๊ณตํ๋ API ์๋
- Java์ Object-Relational Mapping(ORM) ๊ธฐ์ ํ์ค ๋ช ์ธ
- ๊ฐ์ฒด๋ฅผ ํตํด ์ฟผ๋ฆฌ ์์ฑ์ด ๊ฐ๋ฅํ Java Persistence Query Language(JPQL) ์ง์
2.2. ORM ๊ธฐ๋ณธ ๊ฐ๋
- SQL ๊ตฌ๋ฌธ์ ํตํด ์ง์ DB๋ฅผ ์กฐ์ํ๋ SQL Mapper์ ๋ค๋ฅด๊ฒ, ORM์ ๊ฐ์ฒด๋ฅผ ํตํด ๊ฐ์ ์ ์ผ๋ก DB ์กฐ์(๊ฐ์ฒด์งํฅ ๊ฐ๋ฐ)
- SQL ๊ตฌ๋ฌธ์ด ์๋ ๋ฉ์๋๋ฅผ ํตํด DB ๋ฐ์ดํฐ ์กฐ์
- ORM ์์: JPA, Hibernate(Conf. SQL Mapper ์์: MyBatis, JDBC Template)
3. JPA ๊ธฐ๋ณธ ๋์ ๊ณผ์
- JPA๋ Java Application๊ณผ JDBC ์ฌ์ด์์ ๋์(๊ทธ๋ฆผ 1 ์ฐธ๊ณ )
- JPA ๋ด๋ถ์์ JDBC API๋ฅผ ์ฌ์ฉํด SQL์ ํธ์ถํ๊ณ DB์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ด
ํฌ์คํ ๋ด์ฉ์ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ์๋์ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์!
๊ณ ๋ง์ต๋๋ค :)