이 글은 Spring Boot를 공부하며 정리한 글입니다.
어플리케이션에서 데이터베이스가 없다면, 사용자에게 전달되는 정보는 대부분 일시적인 정보겠죠. 하지만, 데이터베이스를 이용하여 모든 사용자에게 동일한 정보를 전달할 수 있습니다. 그래서 가장 기본적인 H2 데이터베이스와 JPA를 이용하여 DB에 액세스하는 방법에 대해서 알아보겠습니다.
처음 프로젝트를 생성할 당시에 의존성을 추가하지 않았다면, build.gradle에 의존성을 추가해주어야 합니다.
dependencies {
...
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'
...
}
위 의존성을 추가해주면 JPA와 H2 데이터베이스를 사용할 수 있습니다. 추가를 하지 않으면, java.persistence를 사용할 수 없어요.
플러그인 추가하는 방법은 프로젝트 설정에 따라 다릅니다. 저는 Gradle(Groovy)이기 때문에 아래와 같이 JPA 플러그인을 추가하겠습니디ㅏ.
plugins {
...
id 'org.jetbrains.kotlin.plugin.jpa' version '{코틀린 버전}'
}
application.property 파일안에 H2 데이터베이스에 접근하기 위한 정보를 입력합니다.
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:crypto-labs
이제 도메인을 만들어보겠습니다. 제가 만들 도메인은 Human으로 아래와 같이 작성해줍니다. 만약 에러가 발생하면 플러그인이나 의존성 문제이니까 수정하시면 됩니다.
...
import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id
@Entity
data class Human(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id : Int = 0,
var name : String,
)
도메인까지 생성을 완료했습니다.
이제 스프링 프로젝트를 디버깅해보겠습니다. 별다른 RestController는 필요하지 않아요. 단순하게 데이터베이스에 액세스하기 위해서 그냥 실행합니다.
http://localhost:8080/h2-console
실행에 성공하면 위 url로 접속해줍니다.
자, 이 화면이 등장하면 성공적으로 프로젝트가 실행되었다고 할 수 있습니다. JDBC URL은 application.property에 적은 url을 입력하고 Connect 해봅시다.
도메인으로 정의한 테이블이 생성되어있는 것을 확인할 수 있습니다.