Android (안드로이드)

[Android] SharedPreferences (1) - 특징, 사용처 / 데이터 저장 / 데이터 불러오기

Oscar:) 2022. 9. 7. 20:31

 

지난 포스팅에서 Intent 를 사용하여 데이터를 전달해 보았다.

 

 

데이터를 전달하고 전달 받은 데이터를 액티비티에 띄웠지만

역시 가장 큰 문제는, 데이터를 저장할 수 없었다는 것이다.

 

데이터 전달 후, 앱을 종료하고 다시 실행했을 때

전달했던 데이터가 사라져있다면 무슨 의미가 있을까.

 

그래서 이번 포스팅에서는 데이터를 저장하는 방법에 대해 알아보겠다.

 

 


 

데이터를 저장하는 대표적인 방법은 약 3가지로 볼 수 있다.

 

 

1. SharedPreferences

 

데이터를 앱 내 폴더에 파일 형태로 저장한다.

주로 간단한 데이터를 다룰 때 사용한다.

 


2. Files

 

데이터를 기기의 내/외부 저장소에 파일 형태로 저장한다.

주로 이미지, 영상 등의 대용량 객체를 다룰 때 사용한다.

 


3. DataBase

 

데이터를 기기가 아닌 특정 서버에 저장한다.

주로 여러 사용자에 의해 공유되어 사용될 목적인 데이터를 다룬다.

 


 

이번 포스팅에서는 데이터 저장이 처음이라는 가정하에,

비교적 간단한 데이터를 저장할 것이기 때문에 SharedPreferences 를 사용해 볼 것이다.

 

2, 3번 방법은 나중에 해당 기능을 필요로 할 때 포스팅 하겠다.

 

 

 

SharedPreferences 란?

 

안드로이드에서 기본적으로 제공하는 Key - Value 방식의 데이터 관리 기능이다.

 

데이터베이스(DB)에서 관리할 필요가 없는, 비교적 간단한 데이터를 관리한다.

 

 

 

SharedPreferences 특징

 

대표적인 특징은, 앱 내 폴더에 저장되는 방식을 이야기할 수 있다.

 

데이터가 '앱 내' 에 저장된다는 것은,

앱이 제거되면 해당 데이터 또한 같이 제거된다는 이야기다.

 

DB와 사용처를 확실하게 구분 지어 줄 수 있는 가장 큰 특징이다.

 

 

 

이해를 돕기 위해 게임을 예시로 설명한다.

 

어떤 게임 앱에서 사용자가 레벨을 10까지 성장시키고 앱을 제거했다고 가정한다.

만약, 사용자의 레벨 데이터를 SharedPreferences 에 저장했다면,
사용자가 나중에 앱을 재설치했을 때 레벨이 1로 초기화되어 있을 것이다.

앱을 이용했던 사용자의 데이터가 제거된다는 것은,
사용자의 입장에서 부정적인 경험일 수밖에 없다.

이처럼, 보통 사용자의 데이터를 다룰 때에는
회원가입 - 로그인 방식을 통해 DB에서 관리하기 마련이다.

 

 

그렇다면, SharedPreferences 는 어떤 경우에 주로 사용할까?

 

 

 

SharedPreferences 사용처

 

SharedPreferences 역시, 개발자에 따라 사용하기 나름이겠지만

대표적으로 사용되는 예시가 몇 가지 있다.

 

 

1. 앱 로그인 정보 저장 (자동 로그인, 로그인 유지)

 

모바일의 경우, 보통 하나의 기기는 한 사용자가 사용한다.

따라서, 앱을 이용할 때마다 매번 로그인을 한다면 번거로울 수밖에 없다.

 

대부분의 앱은 설치한 후, 한 번 로그인하면 자동 로그인이 활성화 될 것이다.

(독자의 핸드폰에 있는 카톡이나 SNS를 생각해보자)

 

그리고, 로그인이 유지되어 있는 앱을 삭제 & 재설치하면

로그인이 풀려 있는 상황을 확인할 수 있을 것이다.

 

해당 앱은 로그인 기록을 SharedPreferences 에

데이터로 저장했다는 것을 확인할 수 있다.

 

 

 

2. 앱 환경 설정 변동 사항 데이터 저장

 

앱 내 테마 변경 사항, 앱 내 음량 변경 사항,

앱 내 언어, 폰트 변경 사항 등

 

앱을 삭제 & 재설치해도 큰 문제가 없는 요소들을

SharedPreferences 에 저장하기도 한다.

 

DB에 반드시 저장하지 않아도 될 요소들은 DB의 과부하를 덜어주기 위해

SharedPreferences 를 이용하기도 하는 것이다.

 

 


 

이번 포스팅에서는 데이터의 저장 방식 중 하나인,

SharedPreferences 에 대해서 알아보았다.

 

내용이 길어질 것 같아, SharedPreferences 사용 예제는

다음 포스팅에 이어서 게시하도록 하겠다.