Android Jetpack

Android Room - 3 (Room Simple ex)

개복치 개발자 2022. 1. 21. 02:14

 개복치개발자 강의는 아래의 링크에서 확인할 수 있습니다.

 

개복치개발자 | Linktree

uyalae@naver.com

linktr.ee

 

 이번에는 ROOM에 대해서 알아보겠습니다.

 

 공식문서에 있는 그림으로 가장 잘 표현이 되어 있습니다.

 

 

 위에서 보여주는 그림에서

 

 DAO(Data Access Objects), Entities 

 

 라고 2개가 나옵니다. 이 친구들 간단하게 생각해보면

 

 DAO - 이름 그대로 Data에 접근(Access)하는 친구입니다. SQLite에서 Query날렸던 것 처럼 쿼리를 날려주는 곳인데, 아래와 같이 사용할 수 있습니다.

 

https://developer.android.com/training/data-storage/room?hl=ko

 

 그리고 Entities같은 경우는 데이터베이스에 데이터 모델(스키마)를 정의해주는 곳이라고 생각해주시면 될 것 같습니다.

 

https://developer.android.com/training/data-storage/room?hl=ko

 

 그렇다면 굉장히 간단한 예제를 통해서 어떻게 사용하는지 알아보겠습니다.

 

 우선적으로 Gradle에 room을 implementation합니다.

 

// ROOM
def roomVersion = "2.4.0"

implementation("androidx.room:room-runtime:$roomVersion")
annotationProcessor("androidx.room:room-compiler:$roomVersion")

 

 여기까지 하면 아래와 같은 에러가 나옵니다.

 

 Cannot access database on the main thread since it may potentially lock the UI for a long period of time.

 

 이 부분을 해결해주려면 gradle을 조금 수정해줘야하는데 아래와 같이 해주면 됩니다.

 

id 'kotlin-kapt'
// To use Kotlin annotation processing tool (kapt)
kapt("androidx.room:room-compiler:$roomVersion")

 

 전체 gradle을 보면은 아래와 같이 나옵니다.

 

 

 그리고 Entity / DAO / Database를 만들어주면 아래과 같이 나옵니다.

 

 

 

 - 참조

 

https://developer.android.com/training/data-storage/room?hl=ko 

 

Room을 사용하여 로컬 데이터베이스에 데이터 저장  |  Android 개발자  |  Android Developers

Room 라이브러리를 사용하여 더 쉽게 데이터를 유지하는 방법 알아보기

developer.android.com

 

https://developer.android.com/codelabs/android-room-with-a-view-kotlin?hl=ko#7