웹 개발을 하다 보면 데이터베이스를 사용하게 되는 경우가 정말 많습니다.
하지만, 로컬에서 개발하기 위해 로컬환경에 데이터베이스를 설치하고 스키마, 테이블을 생성하고 관리하기 여간 귀찮은 것이 아닙니다. 이럴 때, H2를 사용할 수 있습니다.
H2란?
H2는 자바로 구현된 오픈소스 데이터베이스 입니다. 메모리와 파일 기반의 데이터베이스 설정이 가능합니다. 또한 자바 애플리케이션에 포함해서 사용하거나 서버모드로 구동할 수 있습니다. 특히, 별도의 설치과정 없이 바로 사용할 수 있다는 장점 때문에 많이 사용되는 DB 입니다.
H2 사용 방법
1. (gradle을 사용할 경우) build.gradle 에 다음과 같이 설정합니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
여기서 org.springframework.boot:spring-boot-starter-web은 없어도 될것 같지만 h2-console 을 위해서 꼭 있어야 합니다.
2) h2 데이터베이스 설정
3-1) In-Memory
- jdbc:h2:mem:<databaseName>
3-2) 임베비드
- jdbc:h2:[file:][<path>][databaseName]
3-3) 서버모드
- jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
여기서는 In-Memory를 사용합니다.
// h2 데이터베이스 기본 접속 주소
spring.datasource.url=jdbc:h2:mem:testdb;
// h2 드라이버
spring.datasource.driverClassName=org.h2.Driver
// h2 데이터베이스 접속 username
spring.datasource.username=sa
// h2 데이터베이스 접속 password
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
// jpa 사용 시, DDL 적용 모드
spring.jpa.hibernate.ddl-auto=create
3. H2 웹 콘솔 설정
H2는 기본적으로 웹 콘솔을 지원하며, 스프링부트에서는 다음의 방법으로 웹 콘솔을 활성화 시킬 수 있습니다.
1) spring-boot-devtools 적용
2) application.properties에 다음과 같이 설정
// h2-console 활성화
spring.h2.console.enabled=true
// h2-console의 url 지정
spring.h2.console.path=/h2-console
이제 http://localhost:8080/h2-console로 접속하면 다음 화면을 볼 수 있습니다.
여기서 JDBC URL을 설정하고 연결버튼을 클릭하면 DB에 접속하게 됩니다. 이 콘솔 안에서 query를 실행하여 데이터를 확인할 수 있습니다.
4. Entity 생성
테스트를 위해 아래와 같은 entity를 생성합니다.
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
@Getter
@Setter
public class User {
@Id
private String userId;
private String userName;
private Integer age;
}
이 상태에서 spring boot를 재시작 한 후, h2-console에 접속하면 아래와 같이 User 테이블에 생성된 것을 확인할 수 있습니다.
'개발도구 > IDE' 카테고리의 다른 글
Eclipse Tip. Code Minings, IntelliJ tip. code vision (0) | 2021.01.02 |
---|---|
테스트를 하는데 유용한 Eclipse Plugin : MoreUnit (0) | 2020.12.26 |
intellij 실행 시 finished with non-zero exit value 1 오류 (9) | 2020.12.19 |
intellij] 모든 setter를 한번에 생성 ( generate all set method ) (0) | 2020.12.12 |
[IntelliJ] lombok plugin 설치 (0) | 2020.12.04 |