ORM

ORM

Object-Relational Mapping์˜ ์ค„์ž„๋ง์ด๋‹ค. ๊ฐ์ฒด-๊ด€๊ณ„ํ˜•-๋งคํ•‘(์—ฐ๊ฒฐ) ์ •๋„๋กœ ์ง์—ญํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ORM์€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ORM์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ , SQL์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ORM์€ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์›ํ•˜๋ฉฐ ๋น„๊ต์  ์ ์€ ๋…ธ๋ ฅ์œผ๋กœ DB๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐœ๋ฐœ์ž๋Š” ๊ธฐ๋ณธ์ ์ธ DB์ •๋ณด๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ DB์˜ ์—ฐ๊ฒฐ์„ ORM์—๊ฒŒ ๋งก๊ธธ ์ˆ˜ ์žˆ๋‹ค.

์•„๋ฌด๋ž˜๋„ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. SQL๋ฌธ์„ ์ž‘์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋ ค๋ฉด application ์ฐจ์›๊ณผ DB์ฐจ์›์˜ ์‚ฌ๊ณ ๋ฐฉ์‹์„ ์˜ค๊ฐ€๋ฉฐ ์ž‘์—…ํ•ด์•ผ ํ•˜์ง€๋งŒ application ๊ด€์ (๊ฐ์ฒด์ง€ํ–ฅ)์„ ์œ ์ง€ํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํฐ ์žฅ์ ์ด๋‹ค.

๋ฌผ๋ก  ORM์ด ๋งˆ๋ฒ•์˜ ๋„๊ตฌ๋Š” ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ ๋„ ์žˆ๋‹ค. ๋ณต์žกํ•˜๊ณ  ๊ทœ๋ชจ๊ฐ€ ํฐ ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ์—๋Š” ORM์„ ํ†ตํ•˜๊ฒŒ ๋˜๋ฉด ์„ฑ๋Šฅ์ ์œผ๋กœ ์†ํ•ด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ORM์„ ํ†ตํ•ด SQL์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ SQL์„ ์„ธ์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์— ๋น„ํ•ด์„œ ํšจ์œจ์ ์ด์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ๋‹ค.

JPA(Jakarta Persistence API)

Jakarta(Oracle์ด java์— ๋Œ€ํ•œ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉด์„œ Jakarta๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค.) Persistence API์˜ ์ค„์ž„๋ง์ด๋‹ค. ORM ์ค‘์˜ ํ•˜๋‚˜๋กœ Java๋ฅผ ํ†ตํ•ด์„œ RDB ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ORM์˜ ์žฅ์  ์ค‘์˜ ํ•˜๋‚˜์ธ RDB์™€ OOP๊ฐ„์˜ ํŒจ๋Ÿฌ๋‹ค์ž„ ๋ถˆ์ผ์น˜๋ฅผ ํ•ด์†Œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. JPA๋Š”

Jakarta EE

Entity

Last updated