Loading...
2020. 6. 24. 20:04

[Spring] JPA ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ ๊ตฌ์กฐ๋กœ ๋ณด๋Š” ์ด์ 

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ JPA์˜ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ์ƒ๋ช… ์ฃผ๊ธฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์˜ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด์„œ Java๋กœ ๊ตฌํ˜„๋œ ๊ฐ์ฒด๊ฐ€ ์–ด๋–ป๊ฒŒ DB๋กœ ์ ์žฌ๋˜๊ณ  ์‚ญ์ œ๋˜๋Š”์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ๋ฅผ ์™œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ผ๊นŒ์š”? ์ฒ˜์Œ์— ์ €๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. JDBC๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด์ฐจํ”ผ Connection์ด ์ƒ์„ฑ๋˜์–ด์•ผ ํ•˜๊ณ , ๊ทธ์— ๋”ฐ๋ฅธ Statement๊ฐ€ ๋งŒ๋“ค์–ด์ ธ์•ผ ํ•˜๋Š”๋ฐ, ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŠน์„ฑ์ƒ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ, Connection์ด ์—ฌ๋Ÿฌ๊ฐœ ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— Connection Pool์ด๋ผ๋Š” ๊ฒƒ์ด ์žˆ๊ณ , ๋Œ€ํ‘œ์ ์œผ๋กœ HikariCP๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์ฃ . ๊ทธ ๋‹ค์Œ์—๋Š” ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„๊ณผ ํ•จ๊ป˜ ์ปค๋ฐ‹๊นŒ์ง€ ํ•ด์ฃผ๋Š” ๋…€์„์ด ..

2020. 6. 23. 16:23

[Spring] JPA์˜ ์˜์†์„ฑ ์ปจํ…์ŠคํŠธ์™€ ์ƒ๋ช…์ฃผ๊ธฐ

Spring Framework๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” DB ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ด์šฉํ•˜์—ฌ DB Connection์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปค๋„ฅ์…˜์ด ์—ฐ๊ฒฐํ•˜๊ณ  ๋Š์–ด์ง€๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” Connection Pool(DBCP, HikariCP), ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ CRUD๋ฅผ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ORM์ด ์žˆ์Šต๋‹ˆ๋‹ค. JPA๋Š” ์—ฌ๊ธฐ์„œ Java ์–ธ์–ด์˜ ํ‘œ์ค€ ORM์— ์†ํ•ฉ๋‹ˆ๋‹ค. Spring boot๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์š”์ฆ˜์—๋Š” Spring ํ”„๋ ˆ์ž„์›Œํฌ์— ๋งž์ถฐ์ ธ ์žˆ๋Š” Spring Data JPA๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”. ๊ทธ๋Ÿฐ๋ฐ, Spring Data JPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๊ฐ์ฒด์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ์Šค์Šค๋กœ..