๐Ÿค study/JPA

    [JPA] JPA ๊ฐœ์š”, JPA ์ •์˜, JPA ์žฅ์  (์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ 1,2์žฅ ์š”์•ฝ)

    JPA ๊ฐœ์š” ORM ํ”„๋ ˆ์ž„์›Œํฌ : ๊ฐ์ฒด์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งคํ•‘ํ•ด์ค€๋‹ค. JPA ์ •์˜ EJB์—์„œ ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์ƒˆ๋กœ์šด ์ž๋ฐ” ORM ๊ธฐ์ˆ  ํ‘œ์ค€ ์ž๋ฐ” ์ง„์˜์˜ ORM ๊ธฐ์ˆ  ํ‘œ์ค€์ด๋‹ค.(object relational mapping) ์ง€๋ฃจํ•˜๊ณ  ๋ฐ˜๋ณต์ ์ธ crud sql์„ ์•Œ์•„์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ๊ณ , ์‹คํ–‰ ์‹œ์ ์— ์ž๋™์œผ๋กœ SQL์„ ๋งŒ๋“ค์–ด์„œ ์‹คํ–‰ํ•œ๋‹ค. ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•˜๋Š” ์ž‘์—…์„ ๋Œ€๋ถ€๋ถ„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค. JPA ์žฅ์  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ SQL์ด ์•„๋‹Œ ๊ฐ์ฒด ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋‹ˆ ์ƒ์‚ฐ์„ฑ, ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด์—์„œ ์ข‹๋‹ค. 1๏ธโƒฃ ์œ ์ง€๋ณด์ˆ˜ ์ธก๋ฉด JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •ํ•  ์ฝ”๋“œ๊ฐ€ ์ค„์–ด๋“ ๋‹ค. SQL์„ ์ง์ ‘ ๋‹ค๋ฃจ๋ฉด ์—”ํ‹ฐํ‹ฐ์— ํ•„๋“œ๋ฅผ ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ•ด๋„ ๊ด€๋ จ๋œ ๋“ฑ๋ก, ์ˆ˜์ •, ์กฐํšŒ SQL๊ณผ ๊ฒฐ..

    [JPA] Hibernate, JPA, Spring Data JPA, JDBC ์ฐจ์ด

    ๋ฉด์ ‘์šฉ์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋†“์€ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค! ๋งจ ์•„๋ž˜ ์ฐธ๊ณ ์— ๊ผผ๊ผผํžˆ ์„ค๋ช…๋˜์–ด์žˆ๋Š” ๋ธ”๋กœ๊ทธ๊ฐ€ ์žˆ์œผ๋‹ˆ ์ž์„ธํžˆ ๋ฐฐ์šฐ๊ณ ์‹ถ๋‹ค๋ฉด ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š” ๐Ÿฅฐ JDBC(Java Database Connectivity) ์ž๋ฐ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” API JDBC๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ณ , JDBC driver๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. JDBC Driver๋Š” ๊ฐ๊ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งˆ๋‹ค ์กด์žฌํ•œ๋‹ค. JPA(Java Persistence API) ์ž๋ฐ” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์„ ์ •์˜ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹ˆ๊ณ , ์ธํ„ฐํŽ˜์ด์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„์ด ์—†๋‹ค. Hibernate JPA๋ผ๋Š” ๋ช…์„ธ์˜ ๊ตฌํ˜„์ฒด์ด๋‹ค.(์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•จ) JPA๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ ORM ํ”„๋ ˆ์ž„์›Œํฌ์ด๊ณ , ์„ฑ์ˆ™๋„๊ฐ€ ๋†’๋‹ค. Spri..