H2 - ynjch97/YNJCH_WIKI GitHub Wiki
1. ์ฐธ๊ณ ์ฌ์ดํธ
2. H2 DB
- ์๋ฐ ๊ธฐ๋ฐ์ ์คํ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ข
๋ฅ ์ค ํ๋
- In-Memory DB ๊ธฐ๋ฅ์ ์ง์
- ๋ฐ์ดํฐ ์์์ฑ์ ์ํด ๋์คํฌ ๊ธฐ๋ฐ์ ์ ์ฅ ๋ฐฉ์ ์ฌ์ฉ ๊ฐ๋ฅ
2-1. Embedded ๋ชจ๋
- ๋ณ๋์ ์ค์น ๊ณผ์ ์ด ํ์ ์์ด ํ
์คํธ ์ฉ๋๋ก ๋ง์ด ์ฌ์ฉ๋จ
- ์์ฉ์์๋ In-Memory ๊ธฐ๋ฅ์ด ํ์ํ ๋ค์ํ ์ํฉ์์ ํ์ฉ ๊ฐ๋ฅ

- H2 DB๋ฅผ ์์คํ
์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์์ (JVM ์์์) ๊ตฌ๋์ํค๋ ๋ฐฉ์
- application์ด ์ข
๋ฃ๋๋ค๋ฉด ์ ์ฅ, ์์ ๋ Data๊ฐ ์์ค(ํ๋ฐ)๋จ > ์์์ ์ด์ง ์์ ๋ฐฉ์
- ๋ฐ์ดํฐ์ ๋ํ ์์์ฑ์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ๋ ์์
- ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ DB๋ฅผ ๋์๋๊ณ ํด๋น DB๋ฅผ ์ฌ์ฉํ๋ Application์ ์ค๋ ๋๋ก ๋ฐ์ดํฐ์ ๋ฐ๋ก ์ ๊ทผํจ์ผ๋ก์จ ๋ฐ์ดํฐ ์ฝ๊ธฐ, ์ฐ๊ธฐ์ ๋ํ ์ฑ๋ฅ ํฅ์
- ๋ฐ์ดํฐ ์บ์ฑ DB์ ๋ํด์๋ H2๋ฅผ ๊ณ ๋ คํ ์ ์์
- JVM์์ ๋ฐ์ดํฐ ์ฐ์ฐ์ ์ฌ์ฉ๋๋ ์ฐ๋ ๋๋ฅผ ์ธํฐ๋ฝํธ ํ์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์ IO ์ํ ์์ I/O Handler๊ฐ ๋ซํ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์์ ์ผ์ผํฌ ์ ์์
2-2. Server ๋ชจ๋
- ๋ณ๋์ ํ๋ก์ธ์ค(JVM)๋ฅผ ํตํด DB๋ฅผ ๋์์์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- local ํ๊ฒฝ์์๋ localhost์ 9092ํฌํธ๋ฅผ ํตํด DB ์ฝ์์ ์ ๊ทผํ ์ ์์
- ๋ณ๋์ ์๋ฒ ์์์ ๋์์ํฌ ๊ฒฝ์ฐ์ ์ฌ๋ฌ Application์ ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์์ ์ผ๋ก ์ฐ๊ฒฐํ ์ ์์
- ์๋ฒ ๋ชจ๋๋ ๋ด๋ถ์ ์ผ๋ก๋ Embedded ๋ชจ๋์ ๋์ผํ ์คํ ๋ฐฉ์
- ๋ชจ๋ ๋ฐ์ดํฐ์ ์ฒ๋ฆฌ ํ๋ฆ์ด TCP/IP๋ฅผ ํตํ์ฌ ์ ์ก๋๊ธฐ ๋๋ฌธ์ Embedded ๋ชจ๋๋ณด๋ค ์๋์ ์ผ๋ก ๋๋ฆผ

3. H2 ์ค์น
- ์ค์น ์, cmd ์ฐฝ์์ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ์ฌ ์ฝ์ ์คํํ ์ ์์
cd C:\Program Files (x86)\H2\bin
dir
h2
3-1. Spring Boot์ H2 Embedded DB ์ฐ๋
dependencies {
...
runtimeOnly 'com.h2database:h2'
...
}
- application.properties (DB๋ช
test)
- spring.h2.console.enabled : ์น ์ฝ์์์ DB ๋ด์ฉ์ ํ์ธํ ์ง ์ฌ๋ถ ์ค์
spring.datasource.driverClassName=org.h2.Driver
# spring.datasource.url=jdbc:h2:~/test
# in-memory ์ฃผ์ ์ค์ (mem)
spring.datasource.url=jdbc:h2:mem:test
spring.datasource.username=sa
spring.datasource.password=1111
spring.h2.console.enabled: true
spring.h2.console.path=/h2-console
- http://localhost:8080/console ์์ H2 Database ์ฝ์์ ์ก์ธ์ค
- ์คํ๋ Browser console ํ์ธ ๋ฐ ์๋ ๋ด์ฉ ์
๋ ฅ
- ๋๋ผ์ด๋ฒ ํด๋์ค : org.h2.Driver
- JDBC URL : jdbc:h2:~/test
- ์ฌ์ฉ์๋ช
: sa
- ๋น๋ฐ๋ฒํธ : 1111
3-2. Spring Boot์ Server ๋ชจ๋๋ก ์ฐ๋
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/test # Tcp, Server ๋ชจ๋ ์ฃผ์ ์ค์
username: sa
driver-class-name: org.h2.Driver