[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐Ÿ™†โ€โ™‚๏ธแ„‹แ…ฉแ†ฏแ„…แ…ฆแ„‹แ…ด JPAแ„‹แ…ช JDBC

KIM YONG GUยท2023๋…„ 9์›” 30์ผ
0

์šฐ์•„ํ•œํ…Œํฌ

๋ชฉ๋ก ๋ณด๊ธฐ
12/41

JDBC(Java Database Connectivity)

์ฒด์Šค ๊ณผ์ œ (1) - ํ…Œ์ด๋ธ” ์ƒ์„ฑ
์ฒด์Šค ๊ณผ์ œ (2) - Connection ์„ค์ •
์ฒด์Šค ๊ณผ์ œ (3) - ๋ฐ์ดํ„ฐ ์‚ฝ์ž…

JDBC๋Š” DB์˜ ๊ณ ์œ ํ•œ ํŠน์ง•์„ ๋ชฐ๋ผ๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์—ญํ™œ์„ ํ•จ.

JPA(Java Persistent API)

JPA์˜ ์žฅ์ 

(1) SQL ๋ฌธ์„ ์ง์ ‘ Java Appliction ๋‚ด์—์„œ ์ ์„ ๊ฒฝ์šฐ๊ฐ€ ์ ์–ด์ง„๋‹ค.
(2) SQL ๊ตฌ์กฐ๋ฅผ Java Appliction ๋‚ด์—์„œ ์ ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

JOIN ์ฟผ๋ฆฌ๋ฅผ JPA์—์„œ ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด ์ค€๋‹ค.


JDBC(Java Database Connectivity)์™€ JPA(Java Persistence API)๋Š” Java ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๋น„๊ตํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค:

JDBC (Java Database Connectivity)

  • Low-Level API: JDBC๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ, SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ๋ฐ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ €์ˆ˜์ค€ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ช…์‹œ์ ์ธ SQL: JDBC๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…์†์ : JDBC ์ฝ”๋“œ๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ข…์†์ ์ด๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

JPA (Java Persistence API)

  • High-Level API: JPA๋Š” ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ๋งคํ•‘ ๋ฐ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค๋ฅผ ๋” ์ถ”์ƒํ™”๋œ ๊ณ ์ˆ˜์ค€ API๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ORM (Object-Relational Mapping): JPA๋Š” ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๋งคํ•‘์„ ์ œ๊ณตํ•˜๋ฉฐ, SQL ์ฟผ๋ฆฌ ๋Œ€์‹  ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋…๋ฆฝ์ : JPA๋Š” ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…์†์„ฑ์„ ๋‚ฎ์ถ”๊ณ , ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ๊ณผ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

๊ฐ„๋‹จํžˆ ๋งํ•ด, JDBC๋Š” ๋” ์ €์ˆ˜์ค€์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ API๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ SQL์„ ์ž‘์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฉฐ, JPA๋Š” ๋” ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ด๊ณ  ์ถ”์ƒํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ณ ์ˆ˜์ค€ API์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…์†์„ฑ ๋ฐ ์ฝ”๋“œ ์ƒ์‚ฐ์„ฑ ์ธก๋ฉด์—์„œ JPA๊ฐ€ ์œ ๋ฆฌํ•˜๋ฉฐ, ๊ฐ์ฒด ๊ด€๊ณ„ ๋งคํ•‘(ORM)์„ ํ†ตํ•ด ๊ฐ์ฒด์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

profile
Engineer, Look Beyond the Code.

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