1. Room 개요
: SQLite를 쉽게 사용할 수 있는 데이터베이스 객체 매핑 라이브러리
- 쉽게 SQLite를 사용할 수 있는 API를 제공
- Query를 컴파일 시간에 검증함
- Query 결과를 LiveData로 하여 데이터베이스가 변경될 때 마다 쉽게 UI를 변경할 수 있음 (자동으로 ui 변경함)
- SQLite보다 Room을 사용할 것을 권장함
2. Room의 주요 3요소
1) @Database : 클래스를 데이터베이스로 지정하는 annotation, RoomDatabase를 상속받은 클래스여야 함
- Room.databaseBuilder 를 이용해 인스턴스를 생성함
2) @Entity : 클래스를 테이블 스키마로 지정하는 annotation
// 데이터베이스 안에 테이블들을 만들어야 함... 그 테이블들을 만드는.. 스키마를 지정하는...? @@@
3) @Dao : 클래스를 DAO (Data Access Object)로 지정하는 annotation
- 기본적인 insert, delete, update SQL은 자동으로 만들어주며, 복잡한 SQL은 직접 만들 수 있음
3. gradle 파일 설정
- Room은 안드로이드 아키텍쳐에 포함되어 있음
- 사용하기 위해 build.gradle 파일의 dependencies에 아래 내용 추가하기
//Androidx 사용하는 경우를 가정함, Android Studio와 SDK는 최신 버전으로 사용
(def room_version 옆 숫자 부분은 검색 후 최신버전 사용하기 - 지금은 2.5.2인듯)
// 'kotlin-kapt' 플러그인이 추가
// dependencies 추가
plugins {
//alias(libs.plugins.androidApplication)
//alias(libs.plugins.jetbrainsKotlinAndroid)
kotlin("kapt")
}
.....
dependencies {
......
val roomVersion = "2.6.1"
implementation(libs.androidx.room.runtime)
annotationProcessor(libs.androidx.room.compiler)
kapt("androidx.room:room-compiler:$roomVersion")
// optional - Kotlin Extensions and Coroutines support for Room
implementation(libs.androidx.room.ktx)
// optional - Test helpers
testImplementation(libs.androidx.room.testing)
}
'Android Studio' 카테고리의 다른 글
[Android 앱개발 심화] 위치 정보 활용 (2) - 구글 지도앱 만들기 (코드) (@@ 내용들 다 수정하기) (0) | 2024.05.01 |
---|---|
[Android 앱개발 심화] 데이터 저장 (3) - Room (3요소 생성, Migration) (# 추가하기) (0) | 2024.04.30 |
[Android 앱개발 심화] 데이터 저장 (1) - SharedPreferences (# 추가하기) (0) | 2024.04.30 |
[Android 앱개발 숙련] 알림 - 예제, 권한 (# 확인...?) (0) | 2024.04.12 |
[Android 앱개발 숙련] 알림 - 개념 (# 주석확인) (0) | 2024.04.12 |