[kotlin] 코틀린에서 JPA와의 데이터베이스 연동

코틀린은 Java 플랫폼에서 동작하는 정적 타입 지원 언어로, Java와의 호환성 및 간결한 문법으로 많은 개발자들에게 사랑받고 있습니다. 이번에는 코틀린에서 JPA(Java Persistence API)를 사용하여 데이터베이스를 연동하는 방법에 대해 알아보겠습니다.

1. 의존성 추가

우선, 프로젝트의 build.gradle 또는 build.gradle.kts 파일에 JPA와 데이터베이스 관련 의존성을 추가해야 합니다.

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    implementation("com.h2database:h2")
}

Spring Boot 기반의 프로젝트라면 spring-boot-starter-data-jpa를 추가하여 JPA를 사용할 수 있으며, H2 데이터베이스를 테스트 및 개발용으로 사용하기 위해 h2 의존성을 추가하였습니다.

2. 엔티티 클래스 작성

다음으로는 데이터베이스의 테이블과 매핑될 엔티티 클래스를 작성해야 합니다. 예를 들어, 사용자 정보를 담을 User 엔티티 클래스를 작성해보겠습니다.

import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id

@Entity
class User(
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    val id: Long = 0,
    val username: String,
    val email: String
)

위의 코드에서 @Entity 어노테이션은 이 클래스를 JPA 엔티티로 지정하고, @Id@GeneratedValue 어노테이션은 해당 필드를 기본 키로 사용하며, 자동으로 값을 생성하도록 지정합니다.

3. Repository 인터페이스 작성

마지막으로는 해당 엔티티의 데이터 액세스를 위한 Repository 인터페이스를 작성해야 합니다.

import org.springframework.data.repository.CrudRepository

interface UserRepository : CrudRepository<User, Long>

위의 코드에서 UserRepositoryUser 엔티티에 대한 CRUD(Create, Read, Update, Delete) 기능을 제공하는 Spring Data JPA의 CrudRepository 인터페이스를 상속받았습니다.

이제 코틀린에서 JPA와의 데이터베이스 연동을 위한 기본적인 설정을 마쳤습니다.

참고 자료