[Android] Room이란?

minnie·2022년 1월 10일
0

Jetpack

목록 보기
7/13
post-thumbnail

1. Room이란?

스마트폰 내장 DB에 데이터를 저장하기 위해 사용하는 라이브러리
SQLite에 대한 추상 레이어를 제공하여 SQLite의 모든 기능을 제공하면서 편한 데이터베이스의 접근을 허용한다.


2. Room vs SQLite

📌 SQLite는 쿼리에 대한 에러를 컴파일 타임에 확인할 수 없지만 ROOM은 컴파일 타임에 SQL에 대한 유효성 검사
📌 SQLite는 schema가 변경이 될 경우 SQL쿼리를 수동으로 업데이트 해야 하지만 ROOM은 쉽게 해결이 가능
📌 ROOM은 LiveData 와 RxJava 를 위한 Observation 으로 생성하여 동작할 수 있지만 SQLite는 할 수 없다.


3. Room 구성요소

Entity , DAO(Data Access Object), Room Database

📖 Entity

관련이 있는 속성들이 모여있는 하나의 정보 단위
아키텍쳐 구성 요소로 작업 할 때 데이터베이스 테이블을 설명하는 주석이 달린 클래스

📖 DAO

데이터에 접근할 수 있는 메서드를 정의해 놓은 인터페이스

📖 Database

데이터베이스를 생성하고 관리하는 데이터베이스 객체 만들기 위해서 위와 같은 추상 클래스를 만들어 줘야한다.
version은 앱을 업데이트 하다가 entity의 구조를 변경해야 하는 일이 생겼을 때 이전 구조와 현재 구조를 구분해주는 역할

👉NEXT
MVVM패턴과 Room 실습 같이!!

profile
Android Developer

0개의 댓글