티스토리 뷰

Android/Database

SQLite 에서 ROOM 까지 (1)

parkho79 2020. 7. 22. 09:40
728x90



이번 포스팅에서는 Android 에서 제공하는 SQLite 를 사용하는 방법에 대해 알아보려 한다.

또한, 제목과 같이 예제를 통해 SQLite 에서 시작해서 ROOM 으로 migration 하는 방식도 설명할 것이다.



SQLite

SQLite 는 클라이언트 응용 프로그램에 임베디드되어 동작하는 오픈소스 DBMS 의 일종이다.

Android 에서 기본적으로 제공하는 모바일 데이터베이스이다.

(https://www.sqlite.org/index.html)

 

공식적인 약칭은 아니지만 SQL + Lite 로 볼 수 있다.

◼ SQL(Structured Query Language)

- 관계형 데이터베이스 관리 시스템에서 데이터를 관리하기 위해 사용되는 표준 프로그래밍 언어(Language).

- 데이터베이스 스키마 생성 및 수정, 테이블 관리, 데이터 추가, 수정, 삭제, 조회 등, 데이터베이스와 관련된 거의 모든 작업을 위해 사용.

 

◼ Lite

- 경량급 데이터 베이스로, 표준 SQL 기능을 지원하지만 제한되는 경우가 많다.

- 데이터베이스 전체를 파일 하나에 저장하기 때문에, 파일을 통째로 복사하면 백업이 끝남.



UI

SQLite 부터 ROOM 까지 사용할 UI 이다.

[Android/Database] - SQLite 에서 ROOM 까지 (2) - UI 구성



테이블 생성

SQLiteOpenHelper 를 이용해 database 를 생성한다.

[Android/Database] - SQLite 에서 ROOM 까지 (3) - SQLiteOpenHelper 를 이용한 DB 생성



SQLite 를 이용한 CRUD(INSERT, SELECT, UPDATE, DELETE)

SQLite 를 이용한 데이터 추가, 조회, 갱신, 삭제

[Android/Database] - SQLite 에서 ROOM 까지 (4) - SQLite 를 이용한 CRUD



생성된 DB 에 column 추가하기

SQLiteOpenHelper 를 이용해 신규 column 을 추가한다.

[Android/Database] - SQLite 에서 ROOM 까지 (5) - SQLite 를 이용한 CRUD



DB 확인하기

SQLite 로 생성된 DB 를 확인하는 방법에 대해 알아보자

[Android/Database] - SQLite 에서 ROOM 까지 (6) - DB 확인하기



ROOM 이란?

ROOM 에 대해 알아보자

[Android/Database] - SQLite 에서 ROOM 까지 (7) - ROOM 이란?



ROOM 의 3 구성요소(Database, Entity, Dao) 추가하기

ROOM 으로 migration 하기 위해 ROOM 의 3 구성요소인 Database, Entity, Dao 를 추가 하자

[Android/Database] - SQLite 에서 ROOM 까지 (8) - ROOM 의 3 구성요소(Database, Entity, Dao) 추가하기



Architecture Components 구성을 위한 Repository, ViewModel 추가하기

ROOM 으로 migration 하기 위해 Repository, ViewModel 도 추가 하자

[Android/Database] - SQLite 에서 ROOM 까지 (9) - Architecture Components 구성을 위한 Repository, ViewModel 추가하기



SQLite 에서 ROOM 으로 migration 설정하기

SQLite 에서 ROOM 으로 migration 설정에 대해 알아보자

[Android/Database] - SQLite 에서 ROOM 까지 (10) - SQLite 에서 ROOM 으로 migration 설정하기



ROOM 을 이용한 CRUD(INSERT, SELECT, UPDATE, DELETE)

ROOM 을 이용한 데이터 추가, 조회, 갱신, 삭제

[Android/Database] - SQLite 에서 ROOM 까지 (11) - ROOM 을 이용한 CRUD



ROOM 에 LiveData 적용하기

기존 project 에 LiveData 를 적용하면 어떤 장점이 있는지 확인해보자.

[Android/Database] - SQLite 에서 ROOM 까지 (12) - ROOM 에 LiveData 적용하기



728x90
댓글