본문 바로가기

백앤드/Jpa

[Jpa] 실전을 위한 JPA - #2 데이터베이스 설치 및 추가하기

반응형

이번 포스팅에서는 JPA를 공부하기 위해 기본적으로 필요한 데이터베이스를 설치하고 설정하는 방법을 공부해보려합니다.

 

우리가 사용하게될 데이터베이스는 H2를 사용할 예정이며, 파일 디비로 사용하지 않고 메모리로 사용하도록 할 예정입니다. 공부용 또는 프로토타입용으로 사용하기 아주 적합한 데이터베이스입니다.

 

이전 #1 포스팅에서 추가했던 Library (Dependency)에 이어서 H2 라이브러리를 추가해야합니다.

 

# 1. H2 데이터베이스 추가

# 1.1. Libary (Dependency) 추가

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.5'
	id 'io.spring.dependency-management' version '1.1.3'
}

group = 'devbox.jpa'
version = 'step-02'

java {
	sourceCompatibility = '17'
}

repositories {
	mavenCentral()
}

dependencies {
	runtimeOnly 'com.h2database:h2'

	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('bootBuildImage') {
	builder = 'paketobuildpacks/builder-jammy-base:latest'
}

tasks.named('test') {
	useJUnitPlatform()
}

 

기존 #1 포스팅의 build.gradle 파일인 상태에서 runtimeOnly 'com.h2database:h2' 가 추가된 상태입니다.

# 1.2. 데이터베이스 설정

spring:
  h2:
    console:
      enabled: true
      
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        format_sql: true

 

/src/main/resources 디렉토리가 비어있을텐데, 이 디렉토리에 application.yml 이름으로 신규 파일을 생성합니다.

파일을 생성하면 위 내용의 설정을 그대로 입력합니다. 사용에 용이하도록 간단한 설명을 하면 아래와 같습니다.

 

spring.h2

└ console.enabled = SpringBoot 서버를 구동했을 때, 콘솔에 로그 출력 여부를 선택합니다.

 

spring.datasource

url = jdbc의 h2 데이터베이스를 메모리(mem)형태로 사용하며, 데이터베이스 이름은 testdb 로 지정합니다.

driver-class-name = org.h2.Driver 이라고 입력합니다. 해당 클래스는 데이터베이스마다 이름이 고정되어있습니다.

username = 로그인 계정을 입력합니다. 추 후 데이터베이스 툴을 통해 접속할 때 사용될 계정입니다.

password = 비밀번호를 입력합니다. 추 후 데이터베이스 툴을 통해 접속할 때 사용될 비밀번호입니다. 입력하지 않으면 비밀번호 없이 접근이 가능합니다.

 

spring.jpa

hibernate.ddl-auto 

create DB가 시작될 때마다 스키마 전체 삭제 후 다시 생성
create-drop DB를 시작할 때 스키마를 생성하며,
DB를 종료할 때 스키마 전체 삭제
update 기존 DB와 비교하여 추가된 경우에는 신규로 추가, 컬럼명이나 변수명이 변경된 경우에는 에러 발생
validate 기존 DB와 비교하여 동일하면 실행,
동일하지 않은 경우 에러 발생
none 아무 작업도 하지 않음

 

properties.hibernate.format_sql = DB 쿼리를 실행할 때, 콘솔에 출력되는 Query를 이쁘게 변환 해줄것인지 여부를 지정합니다.

 

※ 기본 환경 설정 예제 코드 다운로드

위 링크를 통해 Github 로 접속하면 기본 샘플 예제를 다운받아서 확인해볼 수 있습니다.

반응형