H2 ๋ฐ์ดํฐ๋ฒ ์ด์ค
์๋ฐ๋ก ์์ฑ๋ ํ์ผ ๊ธฐ๋ฐ์ RDBMS์ด๋ค. ์์ ํฌ๊ธฐ์ ๋น ๋ฅธ ์๋๋ฅผ ํน์ง์ผ๋ก ํ๋ฉฐ ์ฃผ๋ก ๊ฐ๋ฐ์ฉ์ด๋ ์๊ท๋ชจ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๋ค. ์ค์ ์ด์์์คํ ์ ์ข ๋ ๊ตต์งํ Oracle, MSSQL ๋ฑ์ DB๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ๊ฐ๋ฐ ํจํด์ด๋ค.
์ฌ์ฉ๋ฐฉ๋ฒ
build.gradle
ํ์ผ์dependencies
์runtimeOnly 'com.h2database:h2'
๋ฅผ ์ถ๊ฐํด์ค๋ค.src/main/resources/application.properties
ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํด์ค๋ค.
#DATABASE
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.url=jdbc:h2:~/local
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
์ด์ ๋ธ๋ผ์ฐ์ ์์ spring.h2.console.path
๋ฅผ ์
๋ ฅํ๋ฉด H2 ์ฝ์์ ์ ์ํ ์ ์๋ค. (ํ๊ตญ์ด๋ ์ง์ํด์ค๋ค!! ๐๐ป)
์ฝ์์ ์ ์ํ ํ์ [์ฐ๊ฒฐ]์ ํด๋ฆญํ๋๋ฐ ์์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฌ๋ค...ใ test๋ผ๋ db๊ฐ ์์ผ๋๊น ๋ฏธ๋ฆฌ ๋ง๋ค๋์ง remote๋ก ๋ง๋๋ ๋ฐฉ์์ ํ์ฉํ๋์ง ํ๋ผ๋ ๋ฉ์์ง ๊ฐ๋ค.
๊ธฐ๋ณธ ๊ฒฝ๋ก๋ก ์ค์ ๋ test๋ db๊ฐ ์๋์ผ๋ก ์์ฑ๋๋ค๋๋ฐ ์ค๋ฅ๊ฐ ๋์ ๋นํฉ์ค๋ฌ์ ๋ค.
์๊ณ ๋ณด๋ H2 1.4.198 ๋ฒ์ ๋ถํฐ๋ ๋ณด์์์ ๋ฌธ์ ๋ก db๊ฐ ์๋์ผ๋ก ์์ฑ๋์ง ์๋๋ค๊ณ ํ๋ค.
๊ทธ๋์ ํ ๋๋ ํฐ๋ฆฌ์ ์ง์ ํ์ผ์ ๋ง๋ค์ด์คฌ๋ค. ์ด์ฐจํผ ๋๋ spring.datasource.url
์ local
์ด๋ผ๊ณ ์ค์ ํด๋จ๊ธฐ ๋๋ฌธ์ ํ์ผ ์ด๋ฆ์ local.mv.db
๋ก ์์ฑํ๋ค.
JDBC URL์ jdbc:h2:~/local
๋ก ์์ ํ ๋ค [์ฐ๊ฒฐ]์ ํด๋ฆญํ๋๋ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ์ฝ์ ํ๋ฉด์ด ๋ด๊ณ ์ฑ๊ณต์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
์ด์ ์๋ฐ์์ H2๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ฉด ์ค๋น๊ฐ ์๋ฃ๋๋ค.
์คํ๋ง๋ถํธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฒ๋ฆฌํ ๋ JPA๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ํ ์ถ๊ฐ์ ์ธ ์์ ์ด ํ์ํ๋ค.
JPA(Java Persistence API)๋? ์๋ฐ ์ง์์์ ORM์ ๊ธฐ์ ํ์ค์ผ๋ก ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค์ ๋ชจ์์ด๋ค. ์ธํฐํ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๊ตฌํํด์ฃผ๋ ์ค์ ํด๋์ค๊ฐ ํ์ํ๋ฉฐ JPA ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๋ํ์ ์ธ ํด๋์ค๋ก๋ Hibernate๊ฐ ์๋ค.
์ฐ์ build.gradle
ํ์ผ์ dependencies
์
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
๋ฅผ ์ถ๊ฐํด์ค๋ค.
(build.gradle
ํ์ผ์ ์์ ํ ๋ค์๋ synchronize ํด์ฃผ๋ ๊ฒ์ ์์ผ๋ฉด ์ ๋๋ค)
๊ทธ๋ฆฌ๊ณ src/main/resources
์ application.properties
ํ์ผ์ JPA ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ํ๊ฒฝ์ค์ ์ด ๋๋๋ค.
# JPA
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
'๐ป Web' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] redux ์ ๋ฆฌ (0) | 2022.08.11 |
---|---|
[SpringBoot] JpaRepository ์์ฑ๊ณผ ๋ฐ์ดํฐ ์กฐํํ๊ธฐ๐ (0) | 2022.08.01 |
[React] Context API, useContext Hook ์ฌ์ฉํ๊ธฐ (2) | 2022.07.08 |