[android] 안드로이드 Room Database의 개념

안드로이드 앱을 개발할 때 데이터베이스를 사용하여 데이터를 저장하고 검색하는 것은 중요합니다. Room은 안드로이드 앱에서 SQLite 데이터베이스를 쉽게 사용할 수 있도록 도와주는 라이브러리입니다.

Room Database란 무엇인가?

Room은 SQLite 데이터베이스 위에 구축된 고수준의 라이브러리입니다. Room은 SQLite의 기능을 활용하면서도 더 나은 추상화와 더욱 쉬운 사용성을 제공합니다. Room은 데이터베이스의 객체 관계 매핑(ORM)을 제공하여 개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터를 다룰 수 있게 해줍니다.

Room의 세 가지 주요 구성 요소

Room은 세 가지 주요 구성 요소로 구성되어 있습니다.

  1. Entity: 데이터베이스 테이블에 대한 스키마를 정의합니다.
  2. DAO (Data Access Object): 데이터베이스에 액세스하는 메서드를 포함한 인터페이스를 정의합니다.
  3. Database: 데이터베이스 홀더를 나타내며, 앱의 지속적인 데이터를 위한 기본 연결을 제공합니다.

안드로이드 Room Database는 이러한 구성 요소로 구성되어 있으며, 이들을 함께 사용하여 데이터를 쉽게 조작할 수 있습니다.

Room Database 사용 예시

아래는 안드로이드 Room Database의 간단한 사용 예시입니다.

Entity 클래스 정의

@Entity
data class User(
    @PrimaryKey val uid: Int,
    @ColumnInfo(name = "user_name") val userName: String
)

DAO 인터페이스 정의

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

    @Insert
    fun insertAll(vararg users: User)
}

Database 클래스 정의

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

위와 같이 Entity, DAO, Database를 정의하고 나면 Room Database를 사용하여 데이터를 손쉽게 관리할 수 있습니다.

결론

Room은 안드로이드 앱에서 SQLite 데이터베이스를 다루는 데 큰 도움이 되는 강력한 라이브러리입니다. Room을 사용하면 데이터베이스를 쉽게 구축하고 관리할 수 있으며, ORM을 통해 데이터를 더 쉽게 다룰 수 있습니다.
참고 문헌: Android Developer - Room

이제 안드로이드 앱에서 Room Database를 활용하여 데이터를 효과적으로 다룰 수 있게 되었습니다. Happy coding!