[kotlin] 룸 데이터베이스의 주요 어노테이션 소개

안녕하세요! 이번 글에서는 안드로이드 앱에서 로컬 데이터베이스를 다루는 데 사용되는 룸(Room) 라이브러리의 주요 어노테이션에 대해 알아보겠습니다. 룸은 SQLite 데이터베이스 위에 추상화 레이어를 제공하여 데이터베이스를 더 쉽게 다룰 수 있도록 도와주는 라이브러리입니다.

주요 어노테이션 소개

  1. @Entity
    • 데이터베이스 테이블에 해당하는 클래스에 사용됩니다. 클래스에 이 어노테이션이 적용되면 해당 클래스의 인스턴스가 데이터베이스의 테이블에 매핑됩니다.
     @Entity
     data class User(
         @PrimaryKey val id: Int,
         val name: String,
         val age: Int
     )
    
  2. @Dao
    • 데이터베이스 액세스 객체(Data Access Object)에 사용됩니다. 인터페이스 또는 추상 클래스에 적용되며, 해당 인터페이스의 메서드는 데이터베이스 작업을 정의합니다.
     @Dao
     interface UserDao {
         @Query("SELECT * FROM User")
         fun getAllUsers(): List<User>
            
         @Insert
         fun insertUser(user: User)
     }
    
  3. @Database
    • 데이터베이스 홀더를 나타내는 클래스에 적용됩니다. 해당 클래스는 데이터베이스와 관련된 엔티티들 및 버전 정보를 포함하고, 앱의 데이터베이스 인스턴스를 나타냅니다.
     @Database(entities = [User::class], version = 1)
     abstract class AppDatabase : RoomDatabase() {
         abstract fun userDao(): UserDao
     }
    

이상으로 룸 라이브러리의 주요 어노테이션에 대해 간략히 살펴보았습니다. 이 어노테이션들을 올바르게 사용하여 룸 라이브러리를 효과적으로 활용할 수 있습니다. 더 많은 정보를 얻고 싶다면 룸 라이브러리 공식 문서를 참고하세요.