[kotlin] Room 라이브러리의 핵심 기능

Room은 안드로이드 앱에서 SQLite 데이터베이스를 쉽게 다룰 수 있도록 도와주는 라이브러리입니다. Room은 데이터베이스 액세스 및 관리에 필요한 기능을 제공하여 개발자가 데이터베이스 작업에 더욱 집중할 수 있도록 도와줍니다. 여기서 Room 라이브러리의 핵심 기능을 알아보겠습니다.

1. 데이터베이스 정의

Room은 @Database 어노테이션을 사용하여 데이터베이스를 정의합니다. 데이터베이스 버전, 엔티티, 그리고 데이터베이스와 연결할 데이터 엑세스 객체를 지정할 수 있습니다.

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

2. 엔티티 정의

데이터베이스 테이블을 표현하는 엔티티는 @Entity 어노테이션을 사용하여 정의합니다. 엔티티의 필드는 데이터베이스의 열과 일치하며, @PrimaryKey 어노테이션을 사용하여 기본 키를 지정할 수 있습니다.

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

3. 데이터 엑세스 객체 정의

데이터베이스와 상호작용하기 위한 데이터 엑세스 객체는 @Dao 어노테이션을 적용한 인터페이스로 정의됩니다. 데이터베이스 작업을 수행하는 메서드들을 정의할 수 있습니다.

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

    @Insert
    fun insert(user: User)

    @Delete
    fun delete(user: User)
}

Room 라이브러리는 이러한 핵심 기능들을 제공하여 안드로이드 앱에서 데이터베이스를 효율적으로 다룰 수 있도록 도와줍니다. 이러한 기능들을 활용하여 데이터베이스 관련 작업을 보다 간편하게 수행할 수 있습니다.

참고 자료