[kotlin] 룸 데이터베이스의 주요 기능
안녕하세요! 오늘은 안드로이드 앱에서 로컬 데이터베이스로 사용되는 룸(Room) 라이브러리의 주요 기능에 대해 살펴보겠습니다.
목차
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
}
이상으로 룸 데이터베이스의 주요 기능에 대해 알아보았습니다. 룸을 사용하면 안드로이드에서 간편하게 로컬 데이터베이스를 구축하고 활용할 수 있습니다.
더 많은 정보를 찾고 싶다면, 안드로이드 공식 문서를 참고해보세요. 감사합니다!