복습 및 정리
DataBase
데이터를 어딘가에 쌓아 두고 보관하며 필요할 때마다 추가하거나 조회, 수정, 삭제할 수 있는 장소
SharedPreference는 DB인가?
SharedPreference는 key-value 형태로 데이터를 저장할 수 있는 데이터 구조이고 내부적으로는 xml 파일로 저장한다. → DB가 아니다.
모든 데이터를 SharedPreference에 넣어도 될까?
파일로 저장하기 때문에 보안상 좋지 않고, 메모리상으로도 좋지 않음.
서버 제공 데이터베이스 vs 앱 내부 데이터베이스
서버제공 데이터베이스
- 네트워크 통신, 와이파이, 데이터가 없으면 접근 불가
- 비교적 시간이 오래 걸림
앱 내부 데이터베이스
- 네트워크 연결이 안되어 있을 때도 데이터를 보여줄 수 있다.
- 데이터 로딩 시간이 매우 빠름!
ex) 데이터 캐싱 처리
- 로컬 데이터에 접근하기 때문에 서버에 비해 매우 빠르다
- 기기가 온라인 상태가 되었을 때 사용자가 시작한 컨텐츠 변경사항이 서버에 동기화된다.
- Android에서 이런 것들을 자동으로 해주는 것이 바로 RoomDB
DBMS의 종류(rdbms, nosql)
RDBMS : 관계형 데이터베이스 관리 시스템 ex) Oracle, MySQL, MS-SQL, Maria DB, SQLite
NoSQL : RDBMS가 아닌 것들
- key-value 형식 ex) Redis, Oracle Berkely, AWS DynamoDB
- Document 형식 ex) mongoDB, Azure Cosmos DB
- wide column 형식 ex) Cassandra, Druid, Google BigTable
- graph 형식 ex) Neo4j, Blazegraph
SQL 쿼리문법
(SQLite 문법)
SELECT - 데이터 조회
ex) SELECT * FROM Table WHERE();
INSERT - 데이터 추가
ex) INSERT INTO Table VALUES ();
UPDATE - 데이터 변경
ex) UPDATE Table SET () WHERE ();
DELETE - 데이터 삭제
ex) DELETE FROM Table WHERE ();
RoomDB
Android에서 SQLite라는 DBMS를 제공해준다. 그러나 이것을 직접 구현하기에는 복잡한 면이 있어 Room DB 라이브러리를 사용하는 것을 추천한다.
RoomDB는 데이터 캐싱 처리를 자동화해서 앱 내부 데이터베이스를 사용하고 구축하는 데 도움을 주는 라이브러리이다.
Room 지속성 라이브러리는 SQLite를 완벽히 활용하면서 원활한 데이터베이스 액세스가 가능하도록 SQLite에 추상화 계층을 제공한다.
Room의 3가지 주요 구성요소
- 데이터베이스 클래스: 데이터베이스를 보유하고 앱의 영구 데이터와의 기본 연결을 위한 기본 액세스 포인트 역할을 한다.
- 데이터 항목: 앱 데이터베이스의 테이블을 나타낸다.
- 데이터 액세스 객체(DAO): 앱이 데이터베이스의 데이터를 쿼리, 업데이트, 삽입, 삭제하는 데 사용할 수 있는 메서드를 제공한다.

참조
https://developer.android.com/training/data-storage/room
https://velog.io/@swhan9404/NoSQL-%EC%9D%98-%EC%A2%85%EB%A5%98%EB%B3%84-%ED%8A%B9%EC%A7%95
'대외활동 > UMC' 카테고리의 다른 글
| [UMC 2기] Android 파트 9주차 정리 (0) | 2022.06.03 |
|---|---|
| [UMC 2기] Android 파트 8주차 정리 (0) | 2022.05.24 |
| [UMC 2기] Android 파트 6주차 정리 (0) | 2022.05.08 |
| [UMC 2기] Android 파트 5주차 정리 (0) | 2022.05.04 |
| [UMC 2기] Android 파트 4주차 정리 (0) | 2022.04.29 |