์๋ฐ ORM ํ์ค JPA ๊ธฐ๋ณธํธ
์ธํ๋ฐ ๊น์ํ๋์ '์๋ฐ ORM ํ์ค JPA ๊ธฐ๋ณธํธ' ๊ฐ์ ๋ณด๋ฌ๊ฐ๊ธฐ
https://www.inflearn.com/course/ORM-JPA-Basic#
๊น์ํ๋ ๊ฐ์๋ฅผ ๋ฃ๊ณ ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. ๋จ์ํ ๊ฐ์ธ ๊ณต๋ถ๋ฅผ ์ํ ๊ฐ์ธ์ ๋ฆฌ๊ธ์ด๋ค.
https://dodeon.gitbook.io/study/kimyounghan-orm-jpa/01-jpa-introduction
๋ ์ ์ค๋ช ๋์ด ์๊ธฐ์, ์์ธํ ์ค๋ช ์ด ํ์ํ๋ค๋ฉด ์ฐธ์กฐํ๊ธธ ๋ฐ๋๋ค.
SQL ์ค์ฌ ๊ฐ๋ฐ์ ๋ฌธ์ ์
๊ฐ์ฒด์งํฅ๊ณผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์ ์ ํํ ์ผ์น์ ์ ์ฐพ๊ธฐ ํ๋ค๋ค. ์ด๋ ํ๋๋ ๋ฒ๋ฆด ์ ์์ด ์ฌ์ฉํด์ผ ํ์ง๋ง, ๋๊ฐ๋ฅผ ์ ํํ ๊ณต์กดํ๋ฉฐ ์ฌ์ฉํ๋๊ฒ์ ์ฝ์ง์์ผ๋ฉฐ ํ์ชฝ์ ํฌ๊ธฐํด์ผํ๋ ๋ฌธ์ ์ด๋ค. ๊ฐ์ฒด์ RDB์ SQL์ฌ์ด์์ ๋ณํ์ ํด์ฃผ๋๊ฒ์ด ํ์ํ๋ค. ๊ทธ๊ฒ์ ์ฐ๋ฆฌ ๊ฐ๋ฐ์ ๋ค์ด ํด์ผํ๋ค.
๊ฐ์ฒด์ RDB์ ์ฐจ์ด๊ฐ ๋ฌด์์ผ๊น?
1.์์ - ๊ฐ์ฒด์๋ ์๊ณ , DB์๋ ์๋ค.
2.์ฐ๊ด๊ด๊ณ - ๊ฐ์ฒด๋ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ , ํ ์ด๋ธ์ ์ธ๋ ํค๋ฅผ ์ฌ์ฉํ๋ค.
3.๋ฐ์ดํฐํ์
4.๋ฐ์ดํฐ ์๋ณ ๋ฐฉ๋ฒ
์ด๊ฒ๋ค์ด ๋ค๋ฅด๋ค.
๊ฐ์ฒด๋ฅผ ์๋ฐ ์ปฌ๋ ์ ์ ์ ์ฅํ๋ ๊ฒ์ฒ๋ผ DB์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ด ์์๊น?
๊ทธ๊ฒ์ด ๋ฐ๋ก JPA(Java Persistence API)์ด๋ค. ์ผ์ข ์ ORM์ธ๋ฐ, ๊ทธ๋ผ ORM์?
ORM(Object-relational mapping) ์ฆ, ๊ฐ์ฒด๋ ๊ฐ์ฒด๋๋ก ์ค๊ณํ๊ณ , RDB๋ RDB๋๋ก ์ค๊ณํ๊ณ ๋์, ์ค๊ฐ์์ ORM์ด ๋งคํํด์ฃผ๋ ๊ฒ์ด๋ค.
JPA ์๊ฐ
์ต์ด์๋ EJB(์๋ฐ ํ์ค ์ํฐํฐ ๋น)๊ฐ ์์์ง๋ง, ๋๋ฌด ๋ถํธํด์ ๊ทธ๊ฑธ ๋ณด์ํ ํ์ด๋ฒ๋ค์ดํธ(์คํ์์ค)๊ฐ ๋์๊ณ , ์ด๋ฅผ ์๋ฐ์ง์์์ ๋ค์ ๋ณด์ํ์ฌ JPA(์๋ฐ ํ์ค)์ด ๋์ค๊ฒ ๋๋ค.
JPA๋ ํ์ค ๋ช ์ธ์ด๋ค. ์ฆ, ์ธํฐํ์ด์ค์ ๋ชจ์์ด๋ผ๋ ๋ง
์ด๋ฅผ ๊ตฌํํ๊ฒ์ด Hibernate,EclipseLink๋ฑ ์ด๊ณ , Hibernate๊ฐ ๊ฐ์ฅ ๋ง์ด ์ด์ฉ๋๋ค.
JPA์ ์ฅ์ ์
SQL์ค์ฌ ๊ฐ๋ฐ์์ ๊ฐ์ฒด ์ค์ฌ์ผ๋ก ๊ฐ๋ฐ์ด ๊ฐ๋ฅํด์ง๋ค.
์์ฐ์ฑ๊ณผ ์ ์ง๋ณด์,์ฑ๋ฅ(1์ฐจ ์บ์์ ๋์ผ์ฑ ๋ณด์ฅ) ์ด ์ข์์ง๋ค.
ํจ๋ฌ๋ค์์ ๋ถ์ผ์น๋ฅผ ํด๊ฒฐํ๋ค (์์, ์ฐ๊ด๊ด๊ณ, ๊ฐ์ฒด ๊ทธ๋ํ )
๋ฐ์ดํฐ ์ ๊ทผ ์ถ์ํ์ ๋ฒค๋ ๋ ๋ฆฝ์ฑ
ํ์ค
'๐ผ๋ฐฑ์ค๋ > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์์์ฑ ๊ด๋ฆฌ (0) | 2023.12.22 |
---|---|
JPQL, JPA (1) | 2023.12.22 |
์๋ฐ ๋น๋ ํจํด์ด๋? (2) | 2023.12.20 |
@ControllerAdvicem, @RestControllerAdvice (0) | 2023.12.20 |
์์กด๊ด๊ณ ์๋ ์ฃผ์ (0) | 2023.12.19 |