[Spring] JPA

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

Spring

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

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

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







๐Ÿ“ŒJPA๋ž€?

  • JPA๋Š” Java Persistence API์ด๋‹ค.






โ“Persistence

Persistence๋ž€ ์˜์†์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค. ๊ทธ๋Ÿผ ์˜์†์„ฑ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?
์˜์†์„ฑ์— ๋Œ€ํ•ด ์–˜๊ธฐํ•˜๊ธฐ์ „์—, ์ปดํ“จํ„ฐ์˜ ์ฃผ๊ธฐ์–ต์žฅ์น˜์ธ RAM์€ ํœ˜๋ฐœ์„ฑ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค.
ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ๋ž€ ์ปดํ“จํ„ฐ์˜ ์ „์›์ด ๊บผ์ง€๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
์šฐ๋ฆฌ๊ฐ€ ์Šคํ”„๋ง์„ ์ด์šฉํ•ด ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๋•Œ, ๋™์ ์ธ ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด DB๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.
๋งŒ์•ฝ, DB์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ํœ˜๋ฐœ์„ฑ์ด์–ด์„œ ์›น ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜๋ฉด ๋‚ ์•„๊ฐ„๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.
์‹ค๋ฌด์—์„œ๋Š” ์•„์ฃผ ๋Œ€ํ˜•์‚ฌ๊ณ  ์ผ ๊ฒƒ์ด๋‹ค..
DB์˜ ๋ฐ์ดํ„ฐ๋“ค์€ ์›น ์„œ๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋ผ๋„ DB์— ๊ทธ๋Œ€๋กœ ์กด์žฌํ•ด์•ผํ•œ๋‹ค.
์ด์™€ ๊ฐ™์ด "๋ฐ์ดํ„ฐ๊ฐ€ ํœ˜๋ฐœ์„ฑ์ด ์•„๋‹Œ, ์˜๊ตฌ์ ์œผ๋กœ ์กด์žฌํ•œ๋‹ค"๋ผ๋Š” ์†์„ฑ์ด ์˜์†์„ฑ์ด๋‹ค.







โ“API

API, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค๋„ ํ•œ๋ฒˆ์ฏค์€ ๋“ค์–ด๋ดค์„ ์ˆ˜๋„ ์žˆ๋Š” ๋‹จ์–ด์ด๋‹ค.
API๋ž€

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(Application) -> ํ”„๋กœ๊ทธ๋žจ
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Programming) -> ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
  • ์ธํ„ฐํŽ˜์ด์Šค(Interface) -> ๊ทœ์•ฝ(์•ฝ์†)

Application๊ณผ Programming์ด๋ผ๋Š” ๋ง์€ ๋‹จ์–ด๋งŒ ๋“ค์–ด๋„ ๋ญ”๊ฐ€ ๊ฐ์ด ์˜ฌ ๊ฒƒ์ด๋‹ค.
๊ทผ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ž€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ผ๊นŒ? ์ž๋ฐ”์˜ interface๋ฅผ ๋งํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ค.
์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ทœ์•ฝ์ด๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ, ๋ฌด์Šจ ๊ทœ์•ฝ์ผ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚ด๊ฐ€ ๊ธฐ๊ฐ€ ๋ง‰ํžˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด์„œ ๋‚จ๋“ค๊ณผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ํ•˜์ž.
์ด ํ”„๋กœ๊ทธ๋žจ์€ ๋‚ด๊ฐ€ ๋งŒ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ์ ˆ๋Œ€์  ๊ถŒ์œ„์ž์ด๊ณ  ๋‚จ๋“ค์ด ๋‚ด ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ—ˆ๋ฝ์„ ๋ฐ›๊ณ  ์‚ฌ์šฉํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ( ex) ๋‚ด ํ”„๋กœ๊ทธ๋žจ์˜ a ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ์„ ์›ํ•˜๋ฉด ๋ฐค 12์‹œ ~ ์ƒˆ๋ฒฝ 6์‹œ๊นŒ์ง€์—๋งŒ ์‚ฌ์šฉํ•ด!)
์ด์ฒ˜๋Ÿผ ์ƒํ•˜๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ทœ์•ฝ(์•ฝ์†)์ด ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค์™€๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์„ ๊ฐ–๊ณ ์žˆ๋Š” ๊ทœ์•ฝ๋„ ์žˆ๋‹ค.
๋ฐ”๋กœ ์ธํ„ฐ๋„ท์˜ ๊ตฌ์„ฑ์š”์†Œ์ธ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
ํ”„๋กœํ† ์ฝœ์€ ์„œ๋กœ ๋™๋“ฑํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค.(๋ˆ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ—ˆ๋ฝ์—†์ด ์‚ฌ์šฉํ•ด๋„ ๋ญ๋ผ ํ•  ์ˆ˜ ์—†๋‹ค.)

ํ•œ๋งˆ๋””๋กœ API๋Š” ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ ๊ทœ์•ฝ(ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ ์„ค๋ช…์„œ)์ด๋‹ค.

์˜์†์„ฑ์˜ ๊ฐœ๋…๊ณผ API์˜ ๊ฐœ๋…์„ ์ข…ํ•ฉํ•ด๋ณด๋ฉด, JPA๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” API์ด๋‹ค.







๐Ÿ“์ •๋ฆฌ

  • JPA๋ž€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๋Š” API์ด๋‹ค.
  • ์‰ฝ๊ฒŒ ๋งํ•ด ์„œ๋ฒ„์™€ DB์˜ ์†Œํ†ต์ฐฝ๊ตฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
profile
์ € ์ปค์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ ๋ž˜์š”!

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