[안드로이드] DataStore

이상욱·2022년 12월 23일
0

안드로이드

목록 보기
12/17
post-thumbnail
post-custom-banner

데이터를 앱에 저장하는 방법

  1. 파일 I/O (내부 또는 외부 저장소)
    • 접근 권한을 획득하고 파일을 열었다 닫았다 하는 수고가 필요합니다.
  2. 관계형 데이터베이스
    • SQLite 등을 이용해 복잡한 관계형 데이터를 저장할 수 있습니다.
    • 간단한 데이터를 저장할거라면 구축과 관리에 많은 시간과 노력이 요구됩니다.
  3. SharedPreference
    • Key/Value 형태로 이용합니다.
    • 내부적으로 XML 파일로 저장됩니다.
    • 파일을 열고 닫을 필요 없이 핸들러를 만들어서 간편하게 사용가능합니다.

SharedPrefernces 사용법

  • 핸들러 준비
    일반적으로 앱 내에서만 접근 가능한 MODE_PRIVATE로 많이 사용합니다.
val sharedPref = activity?.getPreference(Context.MODE_PRIVATE)
  • 데이터 저장
val sharedPref = activity?.getPreference(Context.MODE_PRIVATE) ?: return
with(sharedPref.edit()){
	putInt(getString(R.string.saved_high_score_key), newHighScore)
    apply()
}
  • 데이터 로드
val sharedPref = activity?.getPreference(Context.MODE_PRIVATE) ?: return
val defaultValue = resource.getInteger(R.integer.saved_high_score_default_key)
val highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue)
}

✅ DataStore

SharedPreferences는 쓰레드나 타입을 다루는 방법에 구조적으로 부족한 부분이 있었습니다.
구글에서는 이러한 점을 개선한 DataStore를 발표하였습니다.

  • Preferences DataStore
    - 키를 사용하여 데이터를 저장하고 데이터에 엑세스합니다.
    - 이 구현은 유형 안전성을 제공하지 않으며 사전 정의된 스키마가 필요하지 않습니다.
  • Proto DataStore
    - 맞춤 데이터 유형의 인스턴스로 데이터를 저장합니다.
    - 이 구현은 유형 안전성을 제공하며 프로토콜 버퍼를 사용하며 스키마를 정의해야 합니다.

레퍼런스
https://developer.android.com/codelabs/android-preferences-datastore#3
냉동코더의 알기 쉬운 Modern Android Developer 입문

profile
항상 배우고 성장하는 안드로이드 개발자
post-custom-banner

0개의 댓글