[kotlin] 코틀린에서 룸 데이터베이스 설정하기

코틀린에서 안드로이드 앱을 개발할 때 데이터베이스를 사용해야 하는 경우가 많습니다. 룸(Room)은 안드로이드에서 SQLite 데이터베이스를 편리하게 다룰 수 있도록 도와주는 라이브러리입니다. 이번 글에서는 코틀린으로 안드로이드 앱을 만들 때 룸 데이터베이스를 설정하는 방법에 대해 알아보겠습니다.

1. Gradle 설정

룸 데이터베이스를 사용하기 위해서는 build.gradle 파일에 의존성을 추가해야 합니다.

dependencies {
    def roomVersion = "2.4.0"

    implementation "androidx.room:room-runtime:$roomVersion"
    kapt "androidx.room:room-compiler:$roomVersion"
}

2. 엔티티(Entities) 생성

룸에서는 데이터베이스의 테이블을 객체로 표현하는 엔티티 클래스를 정의해야 합니다. 예를 들어, 사용자 정보를 담을 수 있는 User 엔티티를 생성해보겠습니다.

@Entity
data class User(
    @PrimaryKey val id: Int,
    val name: String,
    val email: String
)

3. 데이터베이스 설정

다음으로, 룸 데이터베이스를 정의하는 클래스를 생성해야 합니다. 이 클래스는 데이터베이스와의 연결을 담당하며, 룸 데이터베이스에 접근하기 위한 DAO(Data Access Object)를 포함하고 있습니다.

@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}

4. DAO 설정

마지막으로, 데이터베이스와 상호작용하기 위한 메서드를 포함하는 DAO를 생성해야 합니다. 아래는 User 엔티티와 상호작용하는 DAO의 예시입니다.

@Dao
interface UserDao {
    @Query("SELECT * FROM user")
    fun getAll(): List<User>

    @Insert
    fun insert(user: User)

    @Delete
    fun delete(user: User)
}

이제 룸 데이터베이스 설정이 완료되었습니다. 데이터베이스를 사용하여 데이터를 읽고 쓸 수 있는 기능을 구현할 수 있게 되었습니다.

룸(Room)에 대한 더 자세한 정보는 룸 공식 문서를 참고하시기 바랍니다.