안녕하세요.
이번시간에는 H2 DB를 Springboot에 연동하는 과정에 대해 알아보겠습니다.
H2 DB란?
H2 데이터베이스는 순수한 자바로 작성된 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. H2는 개발 및 테스트 목적으로 자주 사용되며, 작은 규모의 프로덕션 시스템에서도 사용될 수 있습니다. 또한 H2는 메모리 내 데이터 베이스를 지원하며 일시적인 데이터 저장이나 테스트용 데이터 베이스로 유용하게 활용될 수 있습니다.
H2 DB 종류
H2에서는 Server Mode, In-memory Mode, Embeded Mode 세 가지 방식으로 사용할 수 있습니다.
Server-Mode는 직접 엔진을 설치하는 방식으로, 애플리케이션과 상관없는 외부에서 DB엔진이 구동됩니다. 따라서 데이터가 애플리케이션 외부에 저장되므로, 애플리케이션을 종료해도 데이터가 사라지지 않습니다.
In-memory Mode, Embeded Mode는 엔진을 설치하지 않고 내부의 엔진을 사용하는 방식입니다. 따라서 애플리케이션이 종료되면, DB엔진도 종료됩니다. In-memory Mode는 데이터가 메모리에 저장되기 때문에 애플리케이션이 종료되면 데이터가 삭제되지만, Embeded Mode는 데이터가 외부에 저장되므로, 애플리케이션을 종료해도 데이터가 사라지지 않습니다.
H2 Database 다운로드

위 링크에 접속하여 H2를 다운로드합니다. 저는 All Platform으로 다운로드하였습니다.
- Windows Installer
- Windows 운영 체제에 최적화된 설치 프로그램을 제공.
- All Platform
- 여러 운영 체제 및 플랫폼에서 실행될 수 있는 설치 프로그램 제공.
H2 Database 실행하기
다운로드한 H2 파일을 압축 해제 합니다.

- h2 > bin > h2 파일을 실행시킵니다.

- 윈도우 우측하단 H2 DB 우클릭 → ‘Create a new database’ 클릭.
- Database 경로, username, Password 작성 후 ‘Creat’ 클릭.

- JDBC URL - jdbc:h2:tcp://localhost/./pguns
- jdbc:h2:tcp://localhost 경로에 db를 생성할 때의 경로를 붙여서 입력.
- 사용자명, 비밀번호도 db생성할 시 값을 입력.
- Connect 버튼 클릭.

앞서 설치한 H2를 통하여 H2 Database를 실행시키는 것을 확인할 수 있습니다.
SpringBoot H2 DB연동
앞서 실행시킨 H2 DB를 SpringBoot 프로젝트에 연동 후, JPA Entity를 활용하여 DB에 테이블이 생성되는 과정까지 확인해 보겠습니다.
// DB
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'
- H2와 JPA에 관련된 gradle을 build.gradle에 추가합니다.
spring:
h2:
console:
enabled: true # H2 Console UI 여부
path: /h2-console # H2 Console 경로
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:tcp://localhost/./pguns
username: sa
password: 1111
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
#show_sql: true
format_sql: true
- application.yml 파일에 위 코드를 넣어줍니다.
- H2 DB의 url, username, password는 본인이 설정하였던 값으로 입력하면 됩니다.
@Entity
@Getter
@NoArgsConstructor
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username")
@Comment("사용자 이름")
private String username;
@Column(name = "age")
@Comment("사용자 나이")
private int age;
}
Member 엔티티를 생성합니다.
ddl-auto: create로 설정하였기 때문에 애플리케이션이 실행할 시 Member의 entity가 H2 DB에 테이블이 생성됩니다.

- yml 파일에 h2경로를 h2-console로 설정하였기 때문에 브라우저에 localhost:8080/h2-console을 입력.
- h2의 알맞은 값을 입력 후 Connect 버튼 클릭.

위의 사진과 같이 Member테이블과 칼럼값이 정상적으로 추가되는 것을 확인할 수 있습니다.
H2 DB를 다운로드하여 실행하는 법, SpringBoot에 연동하는 법까지 알아봤습니다.
감사합니다!
참조📚
'Spring(boot)' 카테고리의 다른 글
| [Spring Boot] @RequestBody, @RequestParam, @ModelAttribute (0) | 2024.04.24 |
|---|---|
| [Spring Boot] @PathVariable 사용법 (0) | 2024.04.15 |
| [Spring Boot] @JsonProperty / @JsonNaming 사용법 (0) | 2024.04.09 |
| [Spring Boot] @RequiredArgsConstructor 의존성 주입 (0) | 2024.04.08 |
| [Spring Boot] spring initializr를 이용하여 프로젝트 생성하기 (2) | 2024.03.20 |