[kotlin] 룸 데이터베이스의 주요 어노테이션 소개
안녕하세요! 이번 글에서는 안드로이드 앱에서 로컬 데이터베이스를 다루는 데 사용되는 룸(Room) 라이브러리의 주요 어노테이션에 대해 알아보겠습니다. 룸은 SQLite 데이터베이스 위에 추상화 레이어를 제공하여 데이터베이스를 더 쉽게 다룰 수 있도록 도와주는 라이브러리입니다.
주요 어노테이션 소개
- @Entity
- 데이터베이스 테이블에 해당하는 클래스에 사용됩니다. 클래스에 이 어노테이션이 적용되면 해당 클래스의 인스턴스가 데이터베이스의 테이블에 매핑됩니다.
@Entity data class User( @PrimaryKey val id: Int, val name: String, val age: Int )
- @Dao
- 데이터베이스 액세스 객체(Data Access Object)에 사용됩니다. 인터페이스 또는 추상 클래스에 적용되며, 해당 인터페이스의 메서드는 데이터베이스 작업을 정의합니다.
@Dao interface UserDao { @Query("SELECT * FROM User") fun getAllUsers(): List<User> @Insert fun insertUser(user: User) }
- @Database
- 데이터베이스 홀더를 나타내는 클래스에 적용됩니다. 해당 클래스는 데이터베이스와 관련된 엔티티들 및 버전 정보를 포함하고, 앱의 데이터베이스 인스턴스를 나타냅니다.
@Database(entities = [User::class], version = 1) abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao }
이상으로 룸 라이브러리의 주요 어노테이션에 대해 간략히 살펴보았습니다. 이 어노테이션들을 올바르게 사용하여 룸 라이브러리를 효과적으로 활용할 수 있습니다. 더 많은 정보를 얻고 싶다면 룸 라이브러리 공식 문서를 참고하세요.