[kotlin] 룸 데이터베이스의 주요 기능

안녕하세요! 오늘은 안드로이드 앱에서 로컬 데이터베이스로 사용되는 룸(Room) 라이브러리의 주요 기능에 대해 살펴보겠습니다.

목차

  1. 룸 데이터베이스란
  2. 룸 데이터베이스의 주요 기능
    1. 엔터티(Entities)
    2. 데이터 접근 객체(Data Access Objects, DAO)
    3. 데이터베이스 생성

1. 룸 데이터베이스란

룸은 안드로이드 앱에서 SQLite 데이터베이스를 편리하게 사용할 수 있도록 도와주는 라이브러리입니다. 룸은 SQLite의 기능을 활용하면서, 개발자가 SQLite 데이터베이스에 접근하고 처리하는 과정을 단순화하고 최적화해줍니다.

2. 룸 데이터베이스의 주요 기능

2.1. 엔터티(Entities)

룸은 엔터티 클래스를 사용하여 테이블을 정의합니다. 각 엔터티는 데이터베이스 테이블의 열(Column)과 연결됩니다. 엔터티 클래스는 데이터베이스의 구조를 나타내며, @Entity 어노테이션을 통해 정의됩니다.

예시:

@Entity
data class User(
    @PrimaryKey val userId: Int,
    val userName: String,
    val userEmail: String
)

2.2. 데이터 접근 객체(Data Access Objects, DAO)

데이터 접근 객체는 데이터베이스에 접근하기 위한 메서드를 정의합니다. DAO는 @Dao 어노테이션을 통해 정의되며, CRUD(Create, Read, Update, Delete) 작업을 수행하는 메서드를 포함합니다.

예시:

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

    @Insert
    fun insertUser(user: User)

    @Delete
    fun deleteUser(user: User)
}

2.3. 데이터베이스 생성

룸 데이터베이스 클래스는 싱글톤(Singleton)으로 정의되며, 데이터베이스의 버전 및 엔터티를 포함하는데 사용됩니다. @Database 어노테이션을 통해 정의되며, 데이터베이스의 버전 및 엔터티 목록을 지정합니다.

예시:

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

이상으로 룸 데이터베이스의 주요 기능에 대해 알아보았습니다. 룸을 사용하면 안드로이드에서 간편하게 로컬 데이터베이스를 구축하고 활용할 수 있습니다.

더 많은 정보를 찾고 싶다면, 안드로이드 공식 문서를 참고해보세요. 감사합니다!