Room 이란?
Room은 Android Architecture Componet(AAC) 중 하나인 라이브러리이고 SQLite의 기능을 최대한 활용하는 동시에 데이터베이스를 원활하게 접근할 수 있도록 도와주는 ORM이다.
Room의 주요 컴포넌트
- 데이터베이스: 데이터베이스 홀더를 포함하며 앱의 지속적인 관계형 데이터의 기본 연결을 위한 기본 액세스 포인트 역할을 합니다.
- @Database로 주석이 지정된 클래스는 다음 조건을 충족해야 합니다.
- RoomDatabase를 확장하는 추상 클래스여야 합니다.
- 주석 내에 데이터베이스와 연결된 항목의 목록을 포함해야 합니다.
- 인수가 0개이며 @Dao로 주석이 지정된 클래스를 반환하는 추상 메서드를 포함해야 합니다.
- 런타임 시 Room.databaseBuilder() 또는 Room.inMemoryDatabaseBuilder()를 호출하여 Database 인스턴스를 가져올 수 있습니다.
- 항목: 데이터베이스 내의 테이블을 나타냅니다.
- DAO: 데이터베이스에 액세스 하는 데 사용되는 메서드가 포함되어 있습니다.
앱이 단일 프로세스에서 실행되면 AppDatabase 객체를 인스턴스 화할 때 싱글톤 디자인 패턴을 따라야 한다. 각 RoomDatabase 인스턴스는 리소스를 상당히 많이 소비하고 단일 프로세스 내에서 여러 인스턴스에 액세스 할 필요가 거의 없다.
'Android' 카테고리의 다른 글
[안드로이드] Android Architecture Components(AAC)의 ViewModel (0) | 2021.03.18 |
---|---|
[안드로이드] Module 수준의 Gradle (0) | 2021.03.18 |
[안드로이드] MVC, MVP, MVVM 아키텍처 패턴 (0) | 2021.03.17 |
[안드로이드] Androidx에서 File 공유하기 (0) | 2020.12.15 |
[안드로이드] Invoke-customs are only supported starting with Android O (--min-api 26) 에러 해결 방법 (0) | 2020.12.04 |