[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์ ๋นํ์ฌ ์ด๋ ํ ์ ์ด ์ข๊ณ ๋์์ง๋ฅผ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
- ์ฅ์
- ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์์ ๊ธฐ๋ณธํธ์์ JPA๋ฅผ ๋ค๋ค๋ฏ์ด ํ ์ด๋ธ ์์ฑ, ๋ณ๊ฒฝ, ๊ด๋ฆฌ๊ฐ ์ฝ์ต๋๋ค.
- ์ ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์ ์ํ์ง ์๊ณ ๊ฐ์ฒด์ ์ง์คํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋จ์
- ์ผ๋ฐ์ ์ธ SQL Query๋ฅผ ์ฌ์ฉํ ๋ ๋ณด๋ค ์ฑ๋ฅ์ ์ธ ์ด์๊ฐ ์กด์ฌํฉ๋๋ค.
- ๋ฐ์ดํฐ ์์ค์ ๋ํด ๋ฏผ๊ฐํฉ๋๋ค.
ํ์คํ ํธํ๋งํผ ๋จ์ ์ด ์กด์ฌํฉ๋๋ค. ์ ์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ทธ๋งํผ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๋ ๋ฐ๋ฉด ๊ฐ๋ฐ์ ์กฐ๊ธ ์ด๋ ค์์ง๊ณ ์ฝ๊ฒ ๊ฐ๋ฐํ๋ ค๊ณ ํ๋ค๋ฉด ๊ทธ๋งํผ ์ฑ๋ฅ์ ๊ฐ์๋ ์กฐ๊ธ์ ๊ฐ์ํด์ผ ํฉ๋๋ค.
HQL์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ
๊ธฐ๋ณธํธ์์ ๊ฐ๋จํ ์ฝ๋ ์์ฑ์ผ๋ก CRUD๋ฅผ ์์ฑํ์ต๋๋ค. ์ด๋ฅผ ํตํ์ฌ Create, Read, Update, Delete๋ฅผ ๋ณ๋์ ์ฟผ๋ฆฌ ์์ด ์ฝ๊ฒ ์งํํ ์ ์์๋๋ฐ์. ๊ทธ๋ ๋ค๋ฉด ์ด๋จ ๋ ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํด์ผ ํ ๊น์?
์ฝ๋๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. (์ด๋ฒ ํฌ์คํธ์์๋ Kotlin ์ฝ๋๋ง์ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.)
์ด์ด์ ์ฝ์ผ์๋ ค๋ฉด ์๋์ ๋ฒํผ์ ํด๋ฆญํด์ฃผ์ธ์.
'Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] - 2019 Kakao Winter internship Coding test ๋ฌธ์ ํ์ด (0) | 2020.04.06 |
---|---|
GraalVM - R๊ณผ Java ์ฌ์ด (0) | 2019.07.29 |
GoormEdu Coding Party Season 1 (๊ตฌ๋ฆ ์ฝ๋ฉ ํํฐ ์์ฆ1) ํ๊ธฐ (0) | 2018.06.30 |
[GP] Anko๋ฅผ ์ด์ฉํ Android App Layout ์์ฑ (0) | 2018.06.03 |
[GP] Spring boot์์ REST API ๊ฐ๋ฐ ์์ํด๋ณด๊ธฐ (0) | 2018.05.31 |