303일차 - Android Room 정리

2021. 10. 28. 21:56Diary/300~400


< Room이란 무엇인가? >

 

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

Room은 SQLite에 대한 추상화 레이어를 제공하여 원활한 데이터베이스 액세스를 지원하는 동시에 SQLite를 완벽히 활용합니다.

상당한 양의 구조화된 데이터를 처리하는 앱은 데이터를 로컬로 유지하여 대단한 이점을 얻을 수 있습니다. 가장 일반적인 사용 사례는 관련 데이터를 캐싱하는 것입니다. 이런 방식으로 기기가 네트워크에 액세스할 수 없을 때 오프라인 상태인 동안에도 사용자가 여전히 콘텐츠를 탐색할 수 있습니다. 나중에 기기가 다시 온라인 상태가 되면 사용자가 시작한 콘텐츠 변경사항이 서버에 동기화됩니다. Room은 이러한 문제를 자동으로 처리하므로 SQLite 대신 Room을 사용할 것을 적극적으로 권장합니다.

 

< 2 - https://todaycode.tistory.com/39 >

Room은 스마트폰 내장 DB에 데이터를 저장하기 위해 사용하는 라이브러리이다.

평소에 우리는 메모를 저장하고, 일정을 저장하고, 즐겨보는 웹툰을 즐겨찾기 하고... 사용자의 데이터를 내장 DB에 저장할 일이 많다. 과거에는 SQLite라는 데이터베이스 엔진을 이용해 데이터를 저장했으나 다음과 같은 단점이 있었다

 

SQLite의 문제점

한마디로 사용하기 어렵다는 뜻이다. Room은 이러한 문제들을 자동으로 처리할 수 있도록 도와주는 놈이다.

Room은 완전히 새로운 개념은 아니고, SQLite를 활용해서 객체 매핑을 해주는 역할을 한다.

아무튼 이러한 이유들로 구글에서는 SQLite 대신 Room을 사용할 것을 권장하고 있다.

 

 

< 3 - https://blog.yena.io/studynote/2018/09/08/Android-Kotlin-Room.html >

Room을 말하기 전에, 이 Room이 포함된 안드로이드 아키텍쳐 (Android Architecture Components)라는 것이 있다. 안드로이드 아키텍쳐는 앱을 견고하고, 실험 가능하고, 유지보수성이 뛰어나도록 만들어주는 라이브러리 모음이다. 이 중의 하나가 Room이다.

Room은 SQLite의 추상 레이어를 제공하여 SQLite의 객체를 매핑하는 역할을 한다. 쉽게 말하면 SQLite의 기능을 모두 사용할 수 있고, DB로의 접근을 편하게 도와주는 라이브러리 이다.

 


< 개념 정리 >

 

1. Android Room은 무엇인가?

스마트폰 내장 DB에

데이터를 저장하기 위해 사용하는 라이브러리이다.

그리고 Room은 SQLite의 객체를 매핑한다.

 

2. 왜 사용하는가?

네트워크가 필요하긴 하지만,

오프라인에서도 기능이 동작한다.

 

3. 주요 특징은?

SQLite의 기능을 모두 사용함.

DB의 접근을 쉽게 할 수 있도록 도와줌.

내장 DB에 데이터를 저장함.

 

< 한줄 요약 >

Room은 안드로이드 로컬 DB이다.

 


< 직접 해보기 >

 

Room은 Maria DB, SQLite 같은 DB이다.

즉, CRUD를 할 수 있으면 기초는 뗄 수 있다.

 

우선은 간단한 Create, Read만 해보자.

 

 

 

내일은 깃이랑 연동 후에

디자인 좀 가꿔서

게시판 느낌으로 가보려고 한다.