본문 바로가기
android

[데이터베이스] database / 데이터캐싱 / RoomDB란? / RoomDB구성요소 / Database/ DAO / Entity

by 래끼 2022. 5. 5.
728x90
반응형

 

DataBase란?

데이터를 어딘가에 쌓아두고 보관하며 필요할 때마다 추가하거나 조회, 수정, 삭제할 수 있는 장소

SharedPreference는 DB인가?

key/value 형태로 데이터를 저장할 수 있는 데이터구조이고, 내부적으로 XML 파일로 저장

👉 파일 형태로 저장하기 때문에 보안상 안전할 수 없고, 메모리 손실도 클 것

 

서버 제공 데이터베이스

  • 네트워크 통신이 필요함. 와이파이, 데이터가 없으면 접근 불가
  • 비교적 시간이 오래걸림

앱 내부 데이터베이스

  • 네트워크 연결이 안되어 있을 때도 데이터를 보여줄 수 있다 → 콘텐츠 탐색이 가능하다
  • 데이터 로딩 시간이 매우매우 빠르다 (10배 이상 빠르다)

 

 

❤️‍🔥 데이터 캐싱 처리

ex) 네트워크가 연결되지 않은 상태로 카카오톡에 접속했을때 일부 채팅내용과 카톡친구의 프로필을 볼 수 있음

  • 네트워크 연결이 안되어 있을 때도 데이터를 보여줄 수 있다. → 콘텐츠 탐색이 가능하다
  • 로컬 데이터에 접근하기 때문에 서버에 비해 매우 빠르다.
  • 기기가 온라인 상태가 되었을 때 사용자가 시작한 콘텐츠 변경사항이 서버에 동기화 된다
  • 이런것들을 자동으로 해주는 것이 바로 RoomDB 이다. 

❓ 그렇다면 앱 내부 데이터베이스를 사용하기 위해서는 어떻게 해야할까?

 

SQLite

: 안드로이드에서 앱 내부 데이터베이스 기능을 사용하기 위해서 SQLite를 제공한다.

  • RDBMS → 관계형 데이터 베이스 관리 시스템 (소규모 데이터를 관리하는데 적합하다)
  • 매우 복잡함

 

RoomDB는 이러한 복잡한 과정과 데이터 캐싱 처리를 자동화해서 앱 내부 데이터베이스를 구축하고 사용하는데에 도움을 주는 라이브러리이다.

👉 공식문서에서도 RoomDB 사용하기를 적극 권장한다.

 

 

 

💖 RoomDB 구성요소 3가지

1️⃣ Database

: 버전관리, 테이블 저장, DAO의 작업을 구체화하는 작업

2️⃣ DAO (Data Access Objects)

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

3️⃣ Entity

: 데이터베이스에 만들어줄 테이블을 뜻함

  • PrimaryKey : 테이블에 추가된 정보들, 각 행들을 구분할 수 있는 유일한 값

개체 → 객체는 정보뿐 아니라 동작, 기능등을 포함하지만, 정보만 가지고 있음

728x90
반응형

댓글