[kotlin] Room 라이브러리의 주요 컴포넌트

Room 라이브러리는 안드로이드 앱에서 SQLite 데이터베이스를 쉽게 다룰 수 있도록 도와주는 컴포넌트입니다. Room 라이브러리에는 다음과 같은 주요 컴포넌트가 있습니다.

1. Entity

Entity는 데이터베이스의 테이블을 나타내는 클래스입니다. 이 클래스는 데이터베이스의 각 테이블에 대한 스키마를 정의합니다.

예시:

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

2. DAO (Data Access Object)

DAO는 데이터베이스에 액세스하기 위한 메서드를 제공하는 인터페이스입니다. Room은 이 인터페이스를 구현하여 데이터베이스 작업을 처리합니다.

예시:

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

3. Database

Database는 데이터베이스의 인스턴스를 나타내는 클래스입니다. 이 클래스는 데이터베이스와 관련된 설정을 정의하고, 앱에서 사용할 데이터베이스의 인스턴스를 제공합니다.

예시:

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

Room 라이브러리를 사용하면 이러한 주요 컴포넌트들을 활용하여 안드로이드 앱에서 간편하게 SQLite 데이터베이스를 다룰 수 있습니다.