SQLite
원래 Room 데이터베이스 라이브러리가 나오기전에는 SQLite를 사용해서 내부 DB를 만들어 데이터를 저장했었다.
하지만 SQLite 몇가지 단점들이 존재한다.
- Query의 유효성 검사 기능을 제공하지 못했던 점
- Scheme가 바뀔 때 자동적으로 업데이트를 하지 못했던 점
- ORM 지원이 안 되어 데이터를 객체로 변환시키기 위해 데이터 처리를 더 해야했던 점
- Observer 패턴의 데이터(LiveData, RxJava)를 생성하고 동작시키기 위해 추가적인 Boiler Plate 코드를 작성해야하는 점
이러한 단점들을 보완한게 Room 데이터베이스 라이브러리고 현재는 어플리케이션 내부 DB로 Room을 추천하고 있다.
Room DB
안드로이드 앱에서 SQLite를 추상화하여 데이터를 쉽고 편리하게 관리하려고 사용하는 라이브러리입니다.
장점 :
- Room은 컴파일하는 시간에 SQL 유효성 검사를 수행한다.
- 스키마가 바뀌었을 때 영향 받는 SQL 쿼리를 직접 바꾸지 않아도 된다.
- 상용구 코드 없이 DB 객체를 자바 객체에 매핑한다.
- LiveData, RxJava와 같이 작동할 수 있다.
Room 구성
- Entity : 데이터베이스의 Table을 표현합니다. Class에 @Entity 어노테이션을 붙여 Entity 클래스를 정의 할 수 있습니다.
- DAO : 인터페이스에 @Dao 어노테이션을 붙여 정의하며, 데이터베이스 접근에 사용되는 추상 메소드들을 포함합니다.
- Database : 데이터베이스 홀더를 포함하는 DB의 주 진입점입니다.
'안드로이드 자바 코틀린 기초 지식 > 안드로이드 기초 지식' 카테고리의 다른 글
안드로이드 style guide 1 (Util/Helper) (0) | 2022.08.30 |
---|---|
Gson 이란??? (0) | 2022.08.25 |
안드로이드 HTTP 통신 라이브러리 (Okhttp3, retrofit and volley) (0) | 2022.08.10 |
싱글톤(singleton) 패턴 (0) | 2022.08.09 |
SharedPreferences (0) | 2022.08.01 |