[Spring] ORM

strongmhkยท2023๋…„ 7์›” 11์ผ
0

Spring

๋ชฉ๋ก ๋ณด๊ธฐ
15/25
post-thumbnail

๐Ÿ“Œํฌ์ŠคํŒ…์— ์•ž์„œ..

ํ•„์ž๊ฐ€ ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•จ์— ์˜์˜๋ฅผ ๋’€์œผ๋‹ˆ ๋น„์œ ์ ์ธ ํ‘œํ˜„์ด ๋งŽ๊ณ  ๊ฐœ๋…์„ ์ •์˜ํ•จ์— ์žˆ์–ด์„œ ์ •์„์ ์ธ ์ •์˜๊ฐ€ ์•„๋‹˜์„ ์ธ์‹ํ•ด์ฃผ์—ˆ์œผ๋ฉดํ•œ๋‹ค.
ํ”ผ๋“œ๋ฐฑ ์ ˆ๋Œ€ํ™˜์˜!!!







๐Ÿ“ŒORM

  • JPA๋Š” ORM(Object-Relational Mapping) ๊ธฐ์ˆ ์ด๋‹ค.
  • JPA๋Š” ๋ฐ˜๋ณต์ ์ธ CRUD ์ž‘์—…์„ ์ƒ๋žตํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.






โ“Object๋ฅผ DB์— ๋งคํ•‘

Object๋ฅผ DB์— ๋งคํ•‘์‹œํ‚จ๋‹ค๋Š”๊ฒŒ ๋ฌด์Šจ ๋œป์ผ๊นŒ?
์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ €์žฅ์‹œํ‚ค๋ ค๋ฉด DB์— ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋ผ์žˆ์–ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.
๊ทผ๋ฐ, ์šฐ๋ฆฌ๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ DB์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ  ํ•˜๊ณ ์‹ถ๋‹ค.
๋งŒ์•ฝ ํšŒ์›์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ํšŒ์› Entity๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ•˜์ž.
์ž๋ฐ”์™€ DB๊ฐ€ ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์•„์•ผ ํ• ํ…๋ฐ ๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.




โœ…DB์™€ ์ž๋ฐ”์˜ Connection ๊ณผ์ •

  1. DB์—๊ฒŒ Connection ์š”์ฒญ, DB๊ฐ€ ์‹ ๋ถ„์„ ํ™•์ธํ•˜๊ณ  ์„ธ์…˜ ์˜คํ”ˆ -> Connection ์™„๋ฃŒ
  2. ์ฟผ๋ฆฌ ์ „์†ก(Select, Update๋“ฑ), DB๋Š” table์—์„œ ๋ฐ์ดํ„ฐ ์ถ”์ถœ
  3. ์ž๋ฐ”๋Š” ํ•ด๋‹น ๋ฐ์ดํ„ฐ ๋ฐ›์•„์„œ ์ž๋ฐ”์˜ Object๋กœ ๋ณ€ํ™˜(DB์™€ ์ž๋ฐ”์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ)

์ž๋ฐ”์™€ DB๊ฐ€ ์ •์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋ธ๋ง(2D ์„ค๊ณ„๋„๋ฅผ 3D ์‹ค์ œ ๊ฑด๋ฌผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ)์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

์ž๋ฐ” Class๋กœ ์งœ๋ณธ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฐ„๋‹จํžˆ ์งค ์ˆ˜ ์žˆ๋‹ค.

Class User{
	String name;
    int age;

์‹ค์ œ ํ”„๋กœ๊ทธ๋žจ์„ ์ง ๋‹ค๋ฉด
1. DB ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑ
2. ์ž๋ฐ” ํด๋ž˜์Šค๋กœ ๊ตฌํ˜„
์ฆ‰, DB์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋ฐ” ์„ธ์ƒ์— ๋ชจ๋ธ๋งํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ORM์„ ์ด์šฉํ•˜๋ฉด 1๊ณผ 2์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์ง  ์ž๋ฐ” ํด๋ž˜์Šค๋ฅผ DB์— ๋ชจ๋ธ๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰, ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด Entity๋ฅผ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ORM ๋ฐฉ๋ฒ•๋ก ์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ๋ฐ”๋กœ ์•ž์„œ ์†Œ๊ฐœํ–ˆ๋˜ JPA์ด๋‹ค.







๐Ÿ“์ •๋ฆฌ

  • ORM์ด๋ž€ ์ž๋ฐ”์˜ Class๋ฅผ ๋งŒ๋“ค์–ด JPA์˜ Interface๋ฅผ ์ง€ํ‚ค๋ฉด์„œ ์‹คํ–‰ํ•˜๋ฉด DB์— ์ž๋™์œผ๋กœ table์ด ์ƒ์„ฑ๋˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ORM์€ ๋‚ด๊ฐ€ ๋งŒ๋“  ํด๋ž˜์Šค๋ฅผ DB์˜ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ , ๋ฐ˜๋ณต์ ์ธ CRUD ์ž‘์—…์„ ๋„์™€์ค€๋‹ค.
profile
์ € ์ปค์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ ๋ž˜์š”!

0๊ฐœ์˜ ๋Œ“๊ธ€