Notice
Recent Posts
Recent Comments
Link
투케이2K
660. (Android/안드로이드) 앱 영구 데이터 저장소 SharedPreferences (프리퍼런스) , DataStore (데이터 저장소) 비교 정리 본문
Android
660. (Android/안드로이드) 앱 영구 데이터 저장소 SharedPreferences (프리퍼런스) , DataStore (데이터 저장소) 비교 정리
투케이2K 2023. 9. 22. 14:22[개발 환경 설정]
개발 툴 : AndroidStudio
[설 명]
-------------------------------------------------------------------------
[SharedPreferences 설명]
-------------------------------------------------------------------------
1. SharedPreferences 안드로이드 초기부터 사용된 앱 영구 데이터 저장소 솔루션 입니다
2. SharedPreferences 는 키 - 값 (key, value) 형태로 데이터를 쉽게 읽고, 쓸 수 있어 작은 데이터를 저장 시 효과적으로 사용된 솔루션 입니다
3. SharedPreferences 는 앱 저장소에 데이터를 저장하며, 앱 삭제 또는 앱 데이터 및 캐시 삭제를 하지 않는 경우 데이터가 영구히 보존 됩니다
>> 앱 삭제 수행 시에는 저장된 데이터가 사라짐
4. SharedPreferences 의 value 값 저장 시 String , Int , Boolean , Float 등의 데이터 타입을 저장할 수 있습니다
5. SharedPreferences 는 작고 단순한 데이터를 저장하기에 적합 합니다
>> 각 값 (value) 에 대해 30K 이하 로 저장 권장 (value 값 저장 값이 큰 경우는 SQLite 등 DB 사용을 권장 / 1mb 이상 되면 성능에 문제가 발생 가능)
>> SharedPreferences xml 파일 용량은 제한 없음 (실제 휴대폰에 저장할 수 있는 가용 공간 만 확보 되면)
-------------------------------------------------------------------------
[DataStore 설명]
-------------------------------------------------------------------------
1. DataStore 란 프로토콜 버퍼를 사용하여 키-값 쌍 또는 유형이 지정된 객체를 저장할 수 있는 데이터 저장소 솔루션입니다
2. DataStore 는 코루틴 및 Flow를 사용하여 비동기적이고 일관된 트랜잭션 방식으로 데이터를 저장하는 것이 특징입니다
3. DataStore 저장 방법 구분 :
>> 키 - 값 (key, value) 으로 구성되어 있는 Preferences DataStore
>> 사용자가 정의한 데이터를 저장할 수 있는 Proto DataStore : 프로토콜 버퍼를 사용해 스키마 정의 필요
4. DataStore 는 데이터의 타입을 보장해주며, SharedPreferences 보다 빠르고 단순합니다
5. DataStore 는 Dispather.IO 밑에서 작동하기 때문에 UI 스레드를 호출해도 안전합니다
6. DataStore 는 앱 저장소에 데이터를 저장하며, 앱 삭제 또는 앱 데이터 및 캐시 삭제를 하지 않는 경우 데이터가 영구히 보존 됩니다
>> 앱 삭제 수행 시에는 저장된 데이터가 사라짐
7. DataStore 는 현재 구글에서 SharedPreferences 를 대신해 강력히 데이터 저장 사용해 추천을 하고 있는 기술입니다
8. DataStore 는 작고 단순한 데이터를 저장하기에 적합 하며, 저장하려는 value 데이터가 큰 경우는 SQLite 등 DB 사용을 권장 합니다
>> 각 값 (value) 에 대해 8K 로 제한
-------------------------------------------------------------------------
[참고 사이트]
-------------------------------------------------------------------------
https://developer.android.com/training/data-storage?hl=ko#pref
https://developer.android.com/training/data-storage/shared-preferences?hl=ko#java
https://developer.android.com/topic/libraries/architecture/datastore?hl=ko#kts
https://proandroiddev.com/lets-explore-jetpack-datastore-in-android-621f3564b57
반응형
'Android' 카테고리의 다른 글
Comments