[GP] Spring boot์—์„œ DBMS๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ• JPA ๊ณ ๊ธ‰ํŽธ

๋ฐ˜์‘ํ˜•

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. Spring ๊ด€๋ จ ๊ธ€์„ ์ •๋ง ์•ˆ์“ด์ง€๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๋„ค์š”โ€ฆใ… ใ…  ์š”์ฆ˜ ๋ฐ์ดํ„ฐ ๋ถ„์•ผ์—์„œ ์ผํ•˜๋‹ค๋ณด๋‹ˆ R์„ ๋‹ค๋ฃจ๋ฉด์„œ ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์ด ๋งŽ์ด ๋ฐ€๋ ค์žˆ๋„ค์š”.. ์•ž์œผ๋กœ๋Š” Spring์„ ์ด์šฉํ•œ ์˜คํ”ˆ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌ ์ค‘์ด๋‹ˆ ๋‹ค์‹œ ์žฌ๊ฑด์„ ์œ„ํ•ด์„œ๋ผ๋„ ์ฒœ์ฒœํžˆ ํ•˜๋‚˜์”ฉ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ์—๋Š” ์ง€๋‚œ ๊ธ€์— ์ด์–ด์„œ JPA ๊ณ ๊ธ‰ํŽธ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›Œ๋‚™ ์˜ค๋ž˜๋์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ ๊ธ‰ํŽธ์— ๋ฌด์—‡์„ ์ ์–ด์•ผํ• ์ง€ ๋ช…์‹œ๊ฐ€ ๋˜์–ด ์žˆ๋„ค์š”. ์˜ค๋Š˜์€ ๊ทธ ๋ถ€๋ถ„์„ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

SQL๊ณผ HQL

SQL์€ Structed Query Language์˜ ์•ฝ์ž๋กœ DBMS์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘/์ œ์–ดํ•˜๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด ์ค‘์— ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. SQL Server์—์„œ๋Š” T-SQL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ง์ด์ฃ .

HQL์€ ๊ทธ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ Hibernate Query Language์˜ ์•ฝ์ž๋กœ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃจ๋„๋กํ•˜๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. Spring boot์—์„œ ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” hibernate ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฟผ๋ฆฌ๋กœ ์งˆ์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ ๋ฌด์—‡๋ณด๋‹ค ์žฅ์ ์€ SQL์—์„œ๋Š” ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ ์ž‘์—…ํ•  ๋•Œ ๋ช…์‹œ์ ์ธ JOIN ์ฟผ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜์ง€๋งŒ HQL์€ ๊ทธ๋Ÿฌํ•œ ์ฟผ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

HQL์˜ ์žฅ๋‹จ์ 

๊ทธ๋Ÿผ ๊ฐ„๋‹จํžˆ HQL์ด SQL์— ๋น„ํ•˜์—ฌ ์–ด๋– ํ•œ ์ ์ด ์ข‹๊ณ  ๋‚˜์œ์ง€๋ฅผ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ์žฅ์ 
    1. ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    2. ์•ž์„œ ๊ธฐ๋ณธํŽธ์—์„œ JPA๋ฅผ ๋‹ค๋ค˜๋“ฏ์ด ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ๋ณ€๊ฒฝ, ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค.
    3. ์ •์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ๊ฐ์ฒด์— ์ง‘์ค‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹จ์ 
    1. ์ผ๋ฐ˜์ ์ธ SQL Query๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ณด๋‹ค ์„ฑ๋Šฅ์ ์ธ ์ด์Šˆ๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
    2. ๋ฐ์ดํ„ฐ ์†์‹ค์— ๋Œ€ํ•ด ๋ฏผ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ ํŽธํ•œ๋งŒํผ ๋‹จ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ •์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ๋งŒํผ ๋น ๋ฅด๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋Š” ๋ฐ˜๋ฉด ๊ฐœ๋ฐœ์€ ์กฐ๊ธˆ ์–ด๋ ค์›Œ์ง€๊ณ  ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ๊ทธ๋งŒํผ ์„ฑ๋Šฅ์˜ ๊ฐ์†Œ๋Š” ์กฐ๊ธˆ์€ ๊ฐ์•ˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

HQL์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

๊ธฐ๋ณธํŽธ์—์„œ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ์ž‘์„ฑ์œผ๋กœ CRUD๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•˜์—ฌ Create, Read, Update, Delete๋ฅผ ๋ณ„๋„์˜ ์ฟผ๋ฆฌ ์—†์ด ์‰ฝ๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ์š”. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–จ ๋•Œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ์š”?

์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Kotlin ์ฝ”๋“œ๋งŒ์„ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.)


์ด์–ด์„œ ์ฝ์œผ์‹œ๋ ค๋ฉด ์•„๋ž˜์˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ด์ฃผ์„ธ์š”.


... ๊ณ„์† ์ฝ๊ธฐ


๋ฐ˜์‘ํ˜•
TAGS.

Tistory Comments