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
반응형
'android' 카테고리의 다른 글
[Android] cosmo calendarview - 캘린더뷰 커스텀 (0) | 2022.06.16 |
---|---|
[android/안드로이드] 리스트뷰 vs 리사이클러뷰 차이점, 리사이클러뷰 개념 (0) | 2022.04.23 |
[안드로이드,kotlin]constraintLayout 연습,제약,체인 (0) | 2022.03.19 |
[안드로이드 스튜디오,kotlin] ImageView 둥글게 만들기 (0) | 2022.03.16 |
안드로이드(android) 버튼 커스텀/모서리가 둥근 버튼/버튼 그림자효과/버튼 둥글게 (0) | 2022.02.17 |
댓글