이번에는 Android ROOM에 대해서 알아보겠습니다.
로컬DB 즉 네트워크 서버가 아니라, 핸드폰 디바이스에 저장되는 저장공간입니다.
카카오톡을 생각하면 편한데, 얘가 네트워크가 끊어져 있어도 대화창이 나옵니다.
당연히 대화 내용을 네트워크에서 받아와야 할 텐데, 네트워크 연결이 끊겨있는데도 나오는 것을 보면, 어딘가에 저장된 곳에서 가져오겠죠?
이와 유사하게 로컬(local)DB를 사용해서 데이터를 저장하고 불러올 수 있습니다.
안드로이드에서는 대표적으로 SQLite와 ROOM이 있습니다.
이 2개의 차이를 한번 볼까요?
구글 문서에서는 아래와 같이 설명하고 있습니다.
Room은 SQLite에 대한 추상화 레이어를 제공하여 원활한 데이터베이스 액세스를 지원하는 동시에 SQLite를 완벽히 활용합니다.
상당한 양의 구조화된 데이터를 처리하는 앱은 데이터를 로컬로 유지하여 대단한 이점을 얻을 수 있습니다. 가장 일반적인 사용 사례는 관련 데이터를 캐싱하는 것입니다. 이런 방식으로 기기가 네트워크에 액세스할 수 없을 때 오프라인 상태인 동안에도 사용자가 여전히 콘텐츠를 탐색할 수 있습니다. 나중에 기기가 다시 온라인 상태가 되면 사용자가 시작한 콘텐츠 변경사항이 서버에 동기화됩니다.
Room은 이러한 문제를 자동으로 처리하므로 SQLite 대신 Room을 사용할 것을 적극적으로 권장합니다. 그러나 SQLite API를 직접 사용하는 것을 선호한다면 SQLite를 사용하여 데이터 저장을 읽어보시기 바랍니다.
요약하자면 sqlite 대신 room을 쓰는게 좋다는 것인데요, 실제로 쓰다 보면 엄청나게 편리한 것을 알 수 있습니다.
그러면 코드로 어떻게 다른지 다음 글에서 하나씩 보도록 하겠습니다.
- 참조
https://onlyfor-me-blog.tistory.com/291
https://developer.android.com/training/data-storage/room?hl=ko
https://developer.android.com/training/dependency-injection/manual?hl=ko
'Android Jetpack' 카테고리의 다른 글
Android Room - 3 (Room Simple ex) (0) | 2022.01.21 |
---|---|
Android Room - 2 (SQLite Simple Ex) (0) | 2022.01.21 |
Android LiveData - 5 (Livedata Transformations map / switchMap) (0) | 2022.01.15 |
Android LiveData - 4 (Fragment LifeCycleOwner) (0) | 2022.01.09 |
Android LiveData - 3 (Livedata vs MutableLiveData) (16) | 2022.01.02 |