๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
BE/๐Ÿ’พ DB

[H2DB] h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™˜๊ฒฝ ์„ค์ •๊ณผ ์Šคํ”„๋ง ๋ถ€ํŠธ ์„ธํŒ…

by ํ‹ด๋”” 2024. 5. 14.
728x90
๋ฐ˜์‘ํ˜•

 H2DB๋ž€?

 

h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ(dbms) ์ž…๋‹ˆ๋‹ค. ์šฉ๋Ÿ‰์ด ๊ฐ€๋ณ๊ณ  ์Šคํ”„๋ง ๋ถ€ํŠธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ์–ด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋‚˜ ๋กœ์ปฌ ํ™˜๊ฒฝ ํ…Œ์ŠคํŠธ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ๋”ฐ๋กœ ํ•„์š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜๊ธฐ ํŽธ๋ฆฌํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ ๋˜๋ฉด์„œ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๊ฐ€ ํœ˜๋ฐœ๋˜๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

ํŒŒ์ผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐ˜๋ณตํ•˜์—ฌ ์‹คํ–‰ํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ณ  ์—ฌ๋Ÿฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋„ ์‚ฌ์šฉํ•   ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„ ๋ด…์‹œ๋‹ค. ๋˜ํ•œ ์ฝ˜์†” ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ ์–ด๋–ป๊ฒŒ h2๋ฅผ ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณผ๊ฒŒ์š”!

 

 h2 ์„ค์น˜ํ•˜๊ธฐ

 

h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ณ„๋„์˜ ์„ค์น˜ ์—†์ด๋„ ์Šคํ”„๋ง์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ค์ •์„ ํ†ตํ•ด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ์™€ ๊ฐ™๊ฒŒ ๋˜์š”. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ดˆ๊ธฐํ™” ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ In-memory ๋ชจ๋“œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ h2๋ฅผ ์„ค์น˜ํ•˜์—ฌ Server ๋ชจ๋“œ๋กœ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

h2 ์˜์กด์„ฑ ์„ค์ •ํ•˜๊ธฐ

 

์Šคํ”„๋ง ๋ถ€ํŠธ์—์„œ h2๋ฅผ ์‚ฌ์šฉํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด build.gradle ํŒŒ์ผ์— dependency๋ฅผ ์ถ”๊ฐ€ํ•ด ์ค๋‹ˆ๋‹ค. 

 

runtimeOnly 'com.h2database:h2'

 

 

(์ธํ…”๋ฆฌ์ œ์ด ๊ธฐ์ค€) ํ”„๋กœ์ ํŠธ ๋„ค๋น„๊ฒŒ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด ๋ณด๋ฉด External Libraries๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

๊ทธ ์ค‘ com.h2.database:h2:[h2 version]๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฒ„์ „ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„ ๋’ท๋ถ€๋ถ„์—์„œ ๋ฉ”์ด์ €, ๋งˆ์ด๋„ˆ, ํŒจ์น˜ ๋ฒ„์ „์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์œ„ ์‚ฌ์ง„์—์„œ ๋ฒ„์ „์€ 2.2.224๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. dependency ์„ค์ • ์‹œ ๋ฒ„์ „์„ ๋”ฐ๋กœ ๋ช…์‹œํ•˜์ง€ ์•Š์•„ ํ˜„์žฌ ๊ธฐ์ค€ ์ตœ์‹  ๋ฒ„์ „์ด ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋กœ ๋ฒ„์ „์„ ๋ช…์‹œํ•˜์—ฌ dependency๋ฅผ ์„ค์ •ํ•˜๋ฉด ํ•ด๋‹น ๋ฒ„์ „์˜ library๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„ ๋‹ค์šด๋กœ๋“œ

 

https://h2database.com/html/main.html

 

H2 Database Engine

H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size     Supp

h2database.com

 

์ด์ œ ์œ„ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ ์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ์ดํŠธ์— ์ค‘๊ฐ„ ์ฏค์— ์ด๋ ‡๊ฒŒ ์ƒ๊ธด ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ 

 

 

์ถ”๊ฐ€๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ฒ„์ „์ด ๋™์ผํ•˜๋‹ค๋ฉด ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ง„ํ–‰ํ•ด ์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์œˆ๋„์šฐ์— ๊ฒฝ์šฐ Windows Installer, ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋ฉด All Platforms๋ฅผ ๋ˆŒ๋Ÿฌ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์Šต๋‹ˆ๋‹ค. 

๋งŒ์•ฝ ๋ฒ„์ „์ด ๋งž์ง€ ์•Š๋‹ค๋ฉด All Downloads ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์ค๋‹ˆ๋‹ค. 

 

All Downloads ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์œ„ ์‚ฌ์ดํŠธ๋กœ ์ด๋™ํ•˜๋Š”๋ฐ, ์ตœ์‹  ๋ฒ„์ „ 2๊ฐœ ์ •๋„๊ฐ€ ๋ฆฌ์ŠคํŠธ์— ๋ณด์ด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋„ ์›ํ•˜๋Š” ๋ฒ„์ „์ด ์—†๋‹ค๋ฉด Archive Downloads ์„น์…˜์— ๋งํฌ๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. 

 

์ด์ „ ๋ฒ„์ „์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Windows์˜ ๊ฒฝ์šฐ Windows Installer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ  ๋งฅ์˜ ๊ฒฝ์šฐ Platform-Independent Zip์„ ๋ˆŒ๋Ÿฌ zip ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ์ฃผ์„ธ์š”. 

 

 

 

์••์ถ•์„ ํ’€์–ด ์ค๋‹ˆ๋‹ค. h2 ํด๋”๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

h2 ์ฝ˜์†” ์‚ฌ์šฉํ•˜๊ธฐ

 

์••์ถ•์„ ํ’€๋ฉด h2 ํด๋”๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ํด๋”๋กœ ์ด๋™ํ•ด ์ค๋‹ˆ๋‹ค. ํด๋” ์ด๋™ํ›„ bin ๊นŒ์ง€ ์ด๋™ํ•ด ์ฃผ์„ธ์š”. ๊ทธ๋Ÿฌ๋ฉด ๊ฒฝ๋กœ๊ฐ€ ~/์ง€์ •ํ•œ ๊ฒฝ๋กœ/h2/bin์ด ๋˜์–ด ์žˆ์„ ๊ฑฐ์—์š”. 

 

 

์ด ์ƒํƒœ์—์„œ ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ฐ”๊ฟ” ์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

chmod 755 h2.sh

 

ํ•ด๋‹น ๊ฒฝ๋กœ์—์„œ ls ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด h2.sh ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

./h2.sh

 

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ h2๋ฅผ ์‹คํ–‰ํ•ด ์ค๋‹ˆ๋‹ค. 

 

์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ฝ˜์†”์— ์ ‘์†ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ ์ ‘๊ทผ์‹œ์—๋Š” ํŒŒ์ผ๋กœ ๋ฐ”๋กœ ์ ‘์†ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ดˆ 1ํšŒ๋งŒ ํŒŒ์ผ๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ์œ„ ๊ฒฝ๋กœ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ์‚ฌ์šฉ์ž ๊ณ„์ • ๋””๋ ‰ํ† ๋ฆฌ์— test.mv.db ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๊ณ  ๋‚˜๋ฉด tcp ์†Œ์บฃ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘์†ํ•ด ์ค๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ์ฝ˜์†”๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์‹œ์— ์ ‘๊ทผํ–ˆ์„ ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

 

 

> tcp๋กœ ์ ‘์†

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์ด ์ž๋™ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

ํŒŒ์ผ๋กœ ๋ฐ”๋กœ ์ ‘์†์‹œ not found, either pre-create it or allow remote database creation (not recommended in secure enviroments) ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„].mv.db ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค. ๊ณ„์ • ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค. ์œ„ ๊ณผ์ •์—์„œ ์ตœ์ดˆ 1ํšŒ์‹œ ํŒŒ์ผ๋กœ ์ ‘์†ํ•˜๊ณ  ๊ทธ ์ดํ›„์—๋Š” tcp๋กœ ์ ‘์†ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ์š”, ์ง€๊ธˆ์˜ ๊ฒฝ์šฐ ํŒŒ์ผ๋กœ ์ ‘์†ํ•˜์—ฌ ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๋‹จ๊ณ„๋ฅผ ์ง์ ‘ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•ด ์ค€ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— tcp๋กœ ์ ‘์† ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

 

๋งŒ์•ฝ test2.mv.db ํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด jdbc:h2:tcp://localhost/~/test2๋กœ ์ ‘์†ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 

 

 Spring boot ์„ค์ •ํ•˜๊ธฐ

 

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'

 

build.gradle ์— ์˜์กด์„ฑ์„ ์„ค์ •ํ•ด ์ค๋‹ˆ๋‹ค. jpa๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ด ์ฃผ๊ธฐ ์œ„ํ•ด ๊ฐ™์ด ์ถ”๊ฐ€ํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. 

 

Server mode

 

db ์—”์ง„์„ ์„ค์น˜ํ•œ ํ›„ ์ด ์—”์ง„์„ ๊ตฌ๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์•ž์„œ h2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์„ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•ด ์ฃผ์—ˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

์„œ๋ฒ„ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŒŒ์ผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ข…๋ฃŒํ•˜๋”๋ผ๋„ ๋กœ์ปฌ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ ‘์† ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

spring.datasource.url=jdbc:h2:tcp://localhost/~/[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]
spring.datasource.username=[user name]
spring.datasource.password=[password]
spring.datasource.driver-class-name=org.h2.Driver

spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true

spring.h2.console.enabled=true

logging.level.org.hibernate.SQL=debug
logging.level.org.hibernate.type.descriptor.sql=trace

> application.properties

 

๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด๋ฆ„์„ test2๋กœ ์„ค์ •ํ–ˆ๊ณ , ๋ณ„๋„์˜ username๊ณผ password๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

 

spring.datasource.url=jdbc:h2:tcp://localhost/~/test2
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver

 

h2๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฑด ์ฒซ 4์ค„ ์ž…๋‹ˆ๋‹ค. ddl-auto ์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ์ „๋žต์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰ ์‹œ ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ddl-auto๋ฅผ update๋กœ ์„ค์ •ํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 Entity ์‚ฌ์šฉํ•ด์„œ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

 

package org.youable.personal_study.model;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;

@Entity
public class Member {
    @Id
    private String id;
    private String name;
}

 

ํ…Œ์ŠคํŠธ์šฉ Entity๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ์ดํ›„ Application์„ ์‹คํ–‰ํ•ด ์ฃผ์„ธ์š”. 

 

 

jpa์— ์˜ํ•ด ์ž๋™์œผ๋กœ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ์ฝ˜์†”์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ณด์ด์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ฝ˜์†”์„ ์ƒˆ๋กœ๊ณ ์นจ ํ•˜๊ฑฐ๋‚˜, ์žฌ ์ ‘์†, ํ˜น์€ ์„ค์ •์ด ์ž˜ ๋ชป ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.

 

In-memory Mode

 

์ธ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด๋ถ€์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋Š” DB ์—”์ง„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒ๋ช…์ฃผ๊ธฐ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด ๊ตฌ๋™๋˜๊ณ , ์ข…๋ฃŒํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์ง€ ์•Š๊ณ  ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์ผํšŒ์„ฑ ํ…Œ์ŠคํŠธ, ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋“ฑ์œผ๋กœ ์ ํ•ฉํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

application.properties์—์„œ spring.datasource.url์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

 

spring.datasource.url=jdbc:h2:mem:testdb

 

๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒฝ์šฐ

localhost:8080/h2-console

 

url๋กœ ์ ‘์†

jdbc url์€ spring.datasource.url์—์„œ ์ง€์ •ํ•ด ์ค€ ๊ฒฝ๋กœ์™€ ๋™์ผํ•˜๊ฒŒ ์ž‘์„ฑํ•ด ์ค๋‹ˆ๋‹ค. ์ดํ›„ connect๋ฅผ ๋ˆŒ๋Ÿฌ ์—ฐ๊ฒฐํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

 Outro

 

๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ํ”„๋กœ์ ํŠธ์™€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์…‹ํŒ… ์‹œ h2 ์„ค์ •์„ ์ž์ฃผ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ํ•  ๋•Œ๋งˆ๋‹ค ํ—ท๊ฐˆ๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ์žˆ์–ด ํ•œ๋ฒˆ ์ •๋ฆฌํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ๋‚˜ ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“  ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!!

 

 ์ฐธ๊ณ  ์‚ฌ์ดํŠธ

https://colabear754.tistory.com/193

 

[Spring Boot] H2 DB Embedded Mode ์‚ฌ์šฉํ•˜๊ธฐ

๋ชฉ์ฐจ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— H2๋Š” ๊ต‰์žฅํžˆ ์ž‘๊ณ  ๊ฐ€๋ฒผ์šด RDBMS๋กœ, ๊ทธ ํŠน์„ฑ์ƒ ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ์€ ์ œํ•œ์ ์ด์ง€๋งŒ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋ณ„๋„์˜ ํ”„๋กœ๊ทธ๋žจ ์—†์ด ์›น๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜์˜ DB ์ฝ˜์†”์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ๋„ ์žˆ๋‹ค.

colabear754.tistory.com

 

https://phantom.tistory.com/59

 

[H2DB] H2 Database ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•

H2DB ๋ž€ H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์„ค์น˜๊ฐ€ ํ•„์š” ์—†๊ณ  ์šฉ๋Ÿ‰์ด ๊ฐ€๋ฒผ์šฐ๋ฉฐ ๊ฐœ๋ฐœ์šฉ ๋กœ์ปฌ DB๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ DBMS์ด๋‹ค. H2DB๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS). ์„œ๋ฒ„(Server) ๋ชจ๋“œ์™€ ์ž„

phantom.tistory.com

 

https://dev-j.tistory.com/10

 

์Šคํ”„๋ง๋ถ€ํŠธ H2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ • ๋ฐฉ๋ฒ•

1. build.gradle์— ์•„๋ž˜์™€ ๊ฐ™์ด ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. # build.gradle ... dependencies { ... runtimeOnly 'com.h2database:h2' ... } ... maven์˜ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. # pom.xml ... com.h2database h2 runtime ... 2. Proper

dev-j.tistory.com

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€