[GP] Spring boot์์ DBMS๋ฅผ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ - JPA ๊ธฐ๋ณธํธ
์ด ๊ธ์ N.K Dev Lab์์ ์์ฑ๋ ๊ธ์
๋๋ค.
์ง๋ ํฌ์คํธ์์ ๊ฐ๋จํ REST API ๊ฐ๋ฐ์ ๋ํด์ ์ ์ ์์์ต๋๋ค. ์์ฃผ ์ฝ๊ฒ GET ๋ฉ์๋์ ๋ํ ๊ฒ๋ง ์ ์ํ์๊ณ ๋๋จธ์ง์ ๋ํ ๋ฉ์๋๋ ๋ค๋ฃจ์ง ์์๋๋ฐ์. ์ค๋์ ๋ชจ๋ REST API๋ฅผ ์ฌ์ฉํด๋ณด๋ฉด์ ํ ์คํธ ๋ํ ์งํํ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ฉด DBMS ์ฐ๋์ ๋ํ ์ด์ผ๊ธฐ ์์ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
DBMS <โ> Spring boot
PHP, Node.js ๋ฑ์์ DBMS๋ฅผ ์ฐ๋ํ๊ธฐ ์ํด์๋ PDO๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ mongoose ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์กด์ฌํฉ๋๋ค. ์ฌ๊ธฐ์ mongoose๋ Node.js์์ MongoDB๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ณ , PDO๋ PHP์์ MySQL ๋ฑ์ DBMS๋ฅผ ์ฐ๋ํ๊ธฐ ์ํ ๊ฐ์ฒด์ ๋๋ค.
Spring boot์์๋ Spring๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก DBMS๋ฅผ ์ฐ๋ํ๊ธฐ ์ํด ์กด์ฌํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- JPA
- MyBatis / iBatis
์๋ง ๊ธฐ์กด์ ๊ฐ๋ฐ์ ๋ถ๋ค์ด์๋ผ๋ฉด Mybatis / ibatis๊ฐ ์ข ๋ ์ต์ํ ๊ฒ์ ๋๋ค. XML ํ์ผ์ ์ด์ฉํด์ ์ง์๋ฅผ ์ ์ํ๊ณ ์ด๋ฅผ ๋ฉ์๋๋ก ํธ์ถํ๋ ๋ฐฉ๋ฒ์ด์ง์.
JPA ๋ํ ๋น์ทํฉ๋๋ค. ๋จ, JPA๋ XML๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ธํฐํ์ด์ค๋ก ์ ์ํ์ฌ ์ง์๋ฅผ ์ ์ํ๊ณ ์ญ์ ์ด๋ฅผ ๋ฉ์๋๋ก ํธ์ถํ์ฌ ์คํํ๋ ๋ฐฉ์์ ๋๋ค.
๋ ๋ค๋ฅธ ์ ์ด ์๋ค๋ฉด JPA๋ CRUD ๋ฑ์ ์ข ์ํ ์ ์์ด ์ฌ๋ฌ๋ถ๋ค์ด ์ง์ CRUD๋ฅผ ๋ง๋ค์ง ์์๋ ์๋์ผ๋ก ์ ์๋์ด ์๋ ํํ์ ํ ํ๋ฆฟ์ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด DBMS์ ์ด๋ ํ ๋ชจ๋ธ๋ง์ ํด๋น๋๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ค ํ๋ค๋ฉด Mybatis์์๋ insert ๋ฌธ์ ์ง์ ์ ์ํ์ฌ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ํ์ง๋ง JPA์์๋ CRUD๊ฐ ์ด๋ฏธ ์ ์๋์ด ์๋ ์ธํฐํ์ด์ค๊ฐ ์กด์ฌํ์ฌ insert, update, delete ๋ฑ ๊ธฐ๋ณธ์ ์ธ ์ง์๋ฌธ์ ๋ํด์๋ ์ฌ๋ฌ๋ถ๋ค์ด ์ง์ ์ ์ํ์ง ์์๋ ์ ํด์ง ๋ฉ์๋๋ง ํธ์ถํ๋ฉด ๋ฐ๋ก DBMS์ ์ถ๊ฐ, ์์ , ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
What is JPA ?
๊ทธ๋ผ ์ด JPA๋ ๋ฌด์์ด๊ณ ์ด๋ค ๋ฐฐ๊ฒฝ์ผ๋ก ํ์ํ ๊ฒ์ผ๊น์?
JPA๋ Java Persistence API์ ์ฝ์๋ก Java ์ธ์ด์์์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค ๋ช ์ธ์ฌํญ์ ๋๋ค. ์ ํํ๋ Java๋ผ๊ธฐ ๋ณด๋จ JVM์ด๋ผ๊ณ ํด์ผ ๋ง๊ฒ ์ง๋ง ํต์ Java ์ธ์ด๋ฅผ ์ํด ๋ง๋ค์ด์ง ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Java ์ธ์ด๋ผ๊ณ ์ด์ผ๊ธฐ ํ๊ฒ ์ต๋๋ค.
์ฆ, Java ํ๋ซํผ์ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ ๊ด๊ณํ ๋ฐ์ดํฐ์ ๊ด๋ฆฌ๋ฅผ ์ํด ๋ง๋ค์ด์ง ์ธํฐํ์ด์ค๋ผ๊ณ ๋ณผ ์ ์์ฃ .
How to use
๊ทธ๋ผ ์ด์ JPA๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ์๋ค.
buildscript {
/*
...
*/
dependencies {
classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion"
}
}
apply plugin: 'kotlin-jpa'
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
}
๊ธฐ์กด ํ๋ก์ ํธ์์ ๊ณ์ ์งํํ์๊ณ ์ ํ ๋๋ build.gradle์์ ์์ ๋ด์ฉ๋ง์ ์ถ๊ฐํ์๋ฉด ๋ฉ๋๋ค.
์ด์ด์ ์ฝ์ผ์๋ ค๋ฉด ์๋์ ๋ฒํผ์ ํด๋ฆญํด์ฃผ์ธ์.
'Programming > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Cloud] - 3. API ์๋ฒ๋ก ์ค์ ๊ฐ ๋ถ๋ฌ์ค๊ธฐ (0) | 2019.12.29 |
---|---|
[Spring Cloud] - 2. Github and Configuration Server (0) | 2019.12.26 |
[Spring Cloud] - 1. Configuration Server ๊ตฌ์ฑ (0) | 2019.12.22 |
[GP] Spring boot์์ REST API ๊ฐ๋ฐ ์์ํด๋ณด๊ธฐ (0) | 2019.11.08 |
[GP] Spring boot์์ DBMS๋ฅผ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ JPA ๊ณ ๊ธํธ (0) | 2019.11.08 |