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