[DB] 실습을 위한 데이터베이스 H2 설치 연동

H2 데이터 베이스 배치파일을 만들게 된 이유

스프링 부트 공부 , 김영한 JPA 프로젝트 실습연습을 진행하기 위해서는 데이터베이스에 저장하여 메모리에 저장되어 데이터가 휘발되는 것을 막아주어야 한다. 간단한 실습을 위해서 H2 데이터베이스를 선택해서 스프링부트와 연결해보는 것이 목표이다.

 

 

h2 데이터베이스를 실행시켜야 하는데, 다운로드 후 다운로드된 폴더로 가서 직접 배치파일을 실행시키는 것의 번거로움을 느껴서 이전 오라클 데이터베이스 관련 배치파일을 생성했던 것이 생각나 H2 데이터베이스 실행 배치파일을 만드는 것을 구상하게 되었다.

 

오라클 데이터베이스는 용량이 크고 컴퓨터가 시작될 때 운영체제 위에 올라오게 되는데, 용량이 커서 부팅 시간이 길어지는 문제가 생긴다. 이를 해결하기 위해서 부팅 시 자동으로 오라클 데이터베이스가 실행되지 않도록 설정 해주고, 배치파일을 만들어서 오라클 데이터 베이스를 직접 배치파일로 실행시켰었다. 

 

 

H2 데이터베이스를 간단하게 실행시키는 방법

 

1. 환경 변수 설정 후 실행

2. 배치 파일을 만들어서 실행

 

H2 데이터 베이스 설치 후 실행시키는 방법

다운로드 한 파일에 들어가서 h2.bat 파일을 직접 실행시키는데 번거로움.

윈도우 cmd로 명령어를 통해 바로 실행시킴으로 파일이 있는 폴더로 이동해서 실행시키는 번거러움 해소

 

배치파일(bat 파일)을 이용해서 단축 경로로 바로 실행시킬 수 있다.

 

 

방법

1. H2 실행용 bat 파일 만들기

메모장을 열어서 내용을 입력합니다.

@echo off
cd C:\Users\사용자\Downloads(다운로드 경로)\h2-2022-06-13\h2\bin
h2.bat

 

2. 작성한 bat 파일 저장

파일을 h2_launcher.bat 과 같은 이름으로 구분하기 쉽고 식별하기 쉬운 이름으로 저장합니다. 파일 형식을 모든 파일로 선택한 후 .bat 확장자를 입력한다.

 

3. 바로 실행

명령 프롬프트를 열고, 해당 배치 파일이 있는 위치로 이동한 뒤 명령어로 H2를 실행시킨다.

C:\Users\사용자명 > h2_launcher.bat

 



H2 데이터베이스 다운로드할 때 버전 선택

일정 버전 이상으로 다운로드를 받을 경우 디비 파일을 자동으로 생성해 주지 않기 때문에 직접 파일을 생성해주어야 한다.

나는 직접 생성하지 않고, 자동으로 파일을 만들게 하기 위해 이하 버전을 선택해주었다.

 

스프링 부트 .3x를 사용하면 2.1.214 버전 이상 사용해야한다.

 

https://www.h2database.com/

 

H2 Database Engine (redirect)

H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo

www.h2database.com

 

 

자동으로 데이터베이스 파일 생성하는 방법

h2.bat 파일을 실행 시킨 후 웹 브라우저에서 경로 설정

jdbc:h2:~/test(최초 한 번)

~(루트)/test.mv.db 파일 생성 확인

확장자는 db로 데이터베이스 파일이다.

 


H2 데이터베이스를 사용하는 이유

스프링부트 사용해서 비즈니스 로직을 만들고, 서비스 계층을 설계한 후 해당 설계가 잘 이루어졌는지 확인하기 위해서 테스트실행해야 한다. 별도로 데이터베이스 설정을 하지 않고 메모리에 임시 데이터베이스가 생성되고, 테스트가 끝나면 자동으로 삭제되어 환경을 깨끗하게 유지할 수 있는 장점이 있다.

 

  • 자동 구성 : 별도로 데이터베이스 설정을 하지 않아도 스프링 부트가 H2를 자동으로 구성하고 사용할 수 있게 해주므로, 빠르게 테스트 환경을 준비할 수 있다.

테스트 하기에 가장 간단한 방법은 Test 패키지에 aplication.yml파일을 따로 두는 것이다. 따로 설정해 줄 필요도 없어 편리하다. 스프링부트는 자동으로 text 패키지 안에 있는 yml 파일에 임시 메모리 디비를 설정해준다. 

 

build.gradle 파일안에 h2 데이터베이스 의존성만 추가해주면 된다.