현재 구상한 어플의 기능을 구체화 시키는 단계


안드로이드에서 사용자 데이터를 저장하고 사용하는 방법 선택하기
- SharedPreferences를 사용하여 앱의 설정 정보와 같은 간단한 데이터를 보관하는 방법
- 파일 입출력 API를 통해 기기의 저장소(storage)에 데이터를 직접 읽고 쓰는 방법
- SQL을 사용하여 로컬 데이터베이스에 데이터를 관리하는 방법
- 인터넷을 통해 연결된 서버와 데이터를 주고받는 방법
- 그 외 여러가지
그 중에 난 - SQL을 사용하여 로컬 데이터베이스에 데이터를 관리하는 방법을 택할 것인데,
SharedPreferences의 키-값(key-value) 저장 형식의 한계점 극복, 파일 입출력 방법의 저장 형식 설계에 따른 복잡성 해소, 서버 통신 방법에서 요구되는 서버 구축 비용 절감 등의 장점을 획득
요약하자면 내 앱에서 많은 데이터와 많은 조건들을 토대로 검색을 수행하기에는 시간적 측면이나 관리 용이성에 있어 SQL 사용이 가장 합리적
SQLite를 위한 API 함수를 호출하는 것만으로 데이터베이스를 위한 기능을 사용할 수 있으며, 데이터베이스 API를 통해 관리되는 모든 데이터는 하나의 파일에 저장 (그래서 SQLite의 데이터베이스를 백업하는 작업은 하나의 데이터베이스 저장 파일을 복사하는 것으로 끝남)
-> 본래 계획은 암호화된 텍스트파일 형태로 데이터베이스 백업 기능을 구상 중 이었으나 SQLite의 데이터베이스 저장 파일 백업으로 더 간소화 할 수 있을 듯
SQLite
안드로이드에서 기본적으로 제공하는 SQLite는 관계형 데이터베이스 관리 시스템(Relatinoal Database Management System, RDBMS)의 한 종류
데이터베이스 간단 스케치
NUM(유일) | ID | 경로+파일명(유일) | 등록일 | 영상길이 | 태그 | 별점 | 시청 횟수 | 기타 |
1 | 720p.mp4 | ../720p.mp4 | 2021-01-01-00:00 | 860 | <동영상><720p> | -1 | 0 | |
2 | 1080.mp4 | ../1080.mp4 | 2021-01-01-06:00 | 16800 | <동영상> <1080p> <60fps> <영화> |
4.5 | 2 | |
3 | 다크나이트 | ../360.mp4 | 2021-01-01-10:00 | 13200 | <동영상> <영화> <360p> |
5 | 12 | |
4 | movie.mp4 | ../movie.mp4 | 2021-01-03-21:00 | 32 | <동영상> <영화> |
0 | 36 | |
5 | 초원 | ../picture.jpeg | 2021-01-10-00:00 | -1 | <사진> | 4.5 | 2 |
NUM : 1번 부터 등록 순서대로 +1씩 증가
ID : 초기엔 경로명과 같게 설정, 후에 사용자 임의로 수정 가능
경로+파일명 : 파일 경로, 후에 인터넷 링크 관리 기능 추가 시 링크명도 보관
등록일 : db에 등록될 시의 시간정보
영상 길이 : 파일 등록 시 영상 길이 정보 초단위로 변환 후 삽입, 사진의 경우 -1
태그 : <내용> 식으로 저장
- 한 번의 검색에 태그 하나만 검색
- <순두부><해물순두부> 식으로 저장되어 있을 때 순두부를 검색했을 때 문자열 좌 우에 <와 > 둘 중 하나라도 없으면 검색 대상에서 제외하는 조건 추가할 것
- 위 조건 없으면 검색하는 문자열이 포함된 다른 태그 또한 선택될 것 ex) 순두부 검색 시 해물순두부를 출력할 것임
별점 : 0.5 단위로 0~5 중의 정수 저장, 미지정 시 -1
시청 횟수 : 0 이상의 정수
기타 : 미정
참고
안드로이드 데이터베이스(DB) 프로그래밍 1. [관계형 데이터베이스] (Android Database 1) [Relational Databa
1. 데이터베이스 (Database, DB) 안드로이드 앱에서 사용자 데이터를 저장하고 로드하는 경우는 매우 흔한 일입니다. 앱 실행 중 메모리에 저장된 데이터는 앱의 실행이 종료되면 모두 사라지기 때
recipes4dev.tistory.com
'안드로이드 앱 개발 프로젝트1' 카테고리의 다른 글
6일차 (0) | 2021.01.17 |
---|---|
5일차 (0) | 2021.01.14 |
4일차 (0) | 2021.01.13 |
3일차 (0) | 2021.01.13 |
2일차 - 개발 언어 코틀린 도전, 자바와 다른 점 공부 (0) | 2021.01.11 |