ORM
๐ ORM
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๊ฐ์ ์๋ฐ์์ ์ฌ์ฉํ๋ ค๋ฉด, ์ฌ๋ฌ ๋ฐฉ๋ฒ์ ์ฐพ์ ๊ณต๋ถ๋ฅผ ํด์ผํฉ๋๋ค.
๋ณดํต์ SQL์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ง๋ง, SQL์ ์ฌ์ฉํ ๊ฒฝํ์ด ์๋ ์ฌ๋์ SQL๋ฅผ ์๋ก ๊ณต๋ถํด์ผ๋๋ ๋ถ๋ด์ด ์๊น๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ ORM ์
๋๋ค.
ORM์ ์ฌ์ฉํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ ๊ฐ์ฒด์ฒ๋ผ ์ฌ์ฉํ ์ ์์ด ์ํ๋ ๊ฐ์ ๊ฐ์ ธ์ค๊ธฐ๊ฐ ์์ํด์ง๋๋ค.
๐ ORM ์ ์ฅ์
๐ ORM ์ ๋จ์
๐ ORM ์ข ๋ฅ
ORM์๋ ๋ค์ํ ์ข ๋ฅ๊ฐ ์์ต๋๋ค. ๊ทธ ์ค ๋ช๊ฐ๋ง ์์๋ฅผ ๋ค์ด๋ณด์๋ฉด, ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
JPA
๐ JPA
JPA๋ '์๋ฐ์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ ์ํ ์ธํฐํ์ด์ค' ์ด๋ฏ๋ก, ์ค์ ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ORM ํ๋ ์์ํฌ๋ฅผ ์ถ๊ฐ๋ก ์ ํํด์ผ๋ฉ๋๋ค. ORM ํ๋ ์์ํฌ์๋ ๋ค์ํ ์ข ๋ฅ๊ฐ ์์ผ๋, ์ฃผ๋ก 'Hibernate'๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ํธ์ ๋๋ค.
๐ Hibernate
JPQL
๐ JPQL
JPA๋ SQL์ ์ถ์ํํ JPQL์ด๋ผ๋ ๊ฐ์ฒด ์งํฅ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ ๊ณตํฉ๋๋ค.
JPA VS JPQL
JPA๋ ๊ธฐ๋ณธ์ ์ธ CRUD ์์
์ ์ฉ์ดํ์ง๋ง, ์กฐ์ธ๊ณผ ์๋ธ์ฟผ๋ฆฌ ๋ฑ์๋ ์ทจ์ฝํ๋ค๋ ๋ฌธ์ ์ ์ด ์์ต๋๋ค.
์ด์ JPQL ์ ์ง์ ๋ง๋ค์ด ์ฒ๋ฆฌํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
ํ์ง๋ง, JPQL ์ ๊ธฐ๋ณธ ๋ฌธ์์ด๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์, ์ปดํ์ผ ์ ์๋ฌ๋ฅผ ๋ฐ์์ํค์ง ์๋๋ค๋ ๋ฌธ์ ์ ์ด ์์ต๋๋ค. ๋ํ, ๋์ ์ผ๋ก ์ฟผ๋ฆฌ์ธ์ด๋ฅผ ์์ฑํ๋ ๋ฐ ํจ์จ์ ์ด์ง ๋ชปํฉ๋๋ค.
๋ฐ๋ผ์, JPA ์ JPQL์ ํน์ง์ ์ ํํ ๊ณต๋ถํ์ฌ, ์ ์ ํ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค!!
โผ ์ฐธ๊ณ ์๋ฃ