대부분의 정보는 서버에 저장하지만 클라이언트에서 저장해야 하는 값도 존재합니다.
또한 안드로이드 앱에서 데이터를 저장하는 것은 중요한 과정입니다. 여러 가지 이유가 있지만, 주로 다음과 같은 목적으로 데이터 저장이 필요합니다.
사용자의 선호도, 설정, 진행 상황 등을 기억하면 사용자가 매번 같은 정보를 입력하거나 설정을 조정할 필요가 없어집니다. 예를 들어, 음악 앱이 사용자의 플레이리스트를 저장하거나, 쇼핑 앱이 장바구니의 상태를 기억하는 것이 대표적입니다.
네트워크 연결이 불안정하거나 사용할 수 없는 환경에서도 앱이 제대로 기능하도록 하기 위해서는 필요한 데이터를 로컬에 저장해야 합니다. 이를 통해 사용자는 오프라인 상태에서도 정보를 조회하거나 일부 기능을 사용할 수 있습니다.
서버나 클라우드에 데이터를 요청하는 횟수를 줄임으로써 네트워크 사용량을 줄이고, 결과적으로 데이터 사용료나 서버 비용을 절감할 수 있습니다. 로컬에 데이터를 캐싱하면 반복적인 데이터 요청을 줄일 수 있습니다.
사용자의 활동 데이터를 저장하고 분석함으로써 사용자에게 맞춤형 콘텐츠나 광고를 제공할 수 있습니다. 이는 사용자의 만족도를 높이고 앱 사용 빈도를 증가시킬 수 있습니다.
사용자 데이터를 안전하게 보관하고, 필요한 경우 이전 상태로 복구할 수 있도록 지원합니다. 이는 앱 오류, 기기 문제 또는 데이터 손실 시 사용자 데이터의 안전성을 보장하는 데 중요합니다.
이와 같은 이유로, 데이터를 적절하게 관리하고 저장하는 것은 앱의 기능성, 효율성, 그리고 사용자 경험에 직접적인 영향을 미칩니다.
오늘 블로그에 작성하려는 Android 데이터 저장 방법인 SharedPreferences 의 특징, 장점 및 단점에 대해 살펴보겠습니다.
Android 어플리케이션에서 가볍고 간단한 데이터를 저장하기 위한 시스템을 제공합니다. 이 방식은 주로 설정 값이나 간단한 사용자 정보를 저장하는 데 사용됩니다.
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val editor = sharedPreferences.edit()
editor.putString("key1", "value1")
editor.putInt("key2", 123)
editor.apply() // 비동기적 저장
val sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE)
val value1 = sharedPreferences.getString("key1", "defaultString")
val value2 = sharedPreferences.getInt("key2", 0)