Spring

์Šคํ”„๋ง์—์„œ h2 ์‚ฌ์šฉ

vividswan 2022. 3. 9. 15:06

h2

h2๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž์ฃผ ์“ฐ์ธ๋‹ค.

h2์˜ ํŠน์ง• ๋ฐ ์žฅ์ 

  • ์ธ๋ฉ”๋ชจ๋ฆฌ DBMS ์ค‘ HSQL(HyperSQL)
  • ๋ณ„๋„์˜ ์„ค์น˜๊ฐ€ ํ•„์š” ์—†๋‹ค.
  • ๊ฐ„๋‹จํ•œ ์˜์กด์„ฑ ์ถ”๊ฐ€๋งŒ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • Maven ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ์—์„  pom.xml์— HSQL์— ๋Œ€ํ•œ ์˜์กด์„ฑ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • Gradle ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ์—์„  build.gradle ์—์„œ com.h2database:h2 ์˜์กด์„ฑ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‹คํ–‰ -> ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ดˆ๊ธฐํ™”๋จ

์ด ํฌ์ŠคํŠธ์—์„  Gradle ๊ธฐ๋ฐ˜์˜ ์Šคํ”„๋ง์—์„œ h2๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž.

build.gradle

dependencies {
    /...
    compile('com.h2database:h2')
    /...
}

์œ„์™€ ๊ฐ™์ด build.gradle์— ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ๊ณ  Gradle์— ๋ฐ˜์˜ํ•ด ์ค€๋‹ค.

์ฟผ๋ฆฌ ๋‚ ๋ฆฌ๊ธฐ

๊ฐ์ž ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆฐ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” JPA๋ฅผ ์ด์šฉํ•ด ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ธ๋‹ค.

์›น ์ฝ˜์†” ์˜ต์…˜ ํ™œ์„ฑํ™”

src -> main -> resources -> application.propoerties

์— ๋“ค์–ด๊ฐ„ ๋’ค, ๋‹ค์Œ ์˜ต์…˜์„ ์ž…๋ ฅํ•ด ์ค€๋‹ค.

spring.h2.console.enabled=true

์ ‘์†

http://localhost:8080/h2-console/

๋กœ ์ ‘์†ํ•œ๋‹ค.

JDBC URL์ด jdbc:h2:mem:testdb์ธ์ง€ ํ™•์ธํ•œ๋‹ค.

๋‹ค๋ฅด๋‹ค๋ฉด ์œ„ URL๋กœ ์ˆ˜์ •ํ•ด ์ค€ ๋’ค Connect๋ฅผ ํด๋ฆญํ•œ๋‹ค.

์œ„์™€ ๊ฐ™์ด ์‹คํ–‰๋˜๊ณ , ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ธ๋˜ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

ํ…Œ์ด๋ธ”์„ ๋ˆ„๋ฅด๋ฉด ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋ฌธ์ด ๋‚˜์˜ค๊ณ , ์ƒ๋‹จ์— Run์„ ๋ˆ„๋ฅด๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

์ขŒ์ธก์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ฉ”๋‰ด๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฐ ๋ฉ”๋‰ด์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฌธ์ด ๋‚˜์˜ค๊ณ  ์ด๋ฅผ Run์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดˆ๊ธฐํ™”

์ด๋Ÿฌํ•œ ํŠน์ • ์ž๋ฃŒ๋ฅผ ๋„ฃ์—ˆ์„ ๋•Œ, ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰์‹œ์ผœ๋ณด์ž.

๋ฐ์ดํ„ฐ๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์—ˆ๋‹ค.