일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 부자의그릇
- 코틀린
- NDK
- View
- Kotlin
- 비동기
- ViewGroup
- AsyncTask
- 멀티쓰레드
- 자청
- SharedPreferences
- mutable
- 동기
- 타이탄의도구
- 인스턴스
- 람다
- MVVM
- Android
- 가치생산주의
- java
- 부의추월차선
- 언스크립티드
- JNI
- 부자아빠가난한아빠
- 안드로이드
- 기업가정신
- 코루틴
- ViewModel
- Coroutines
- 책리뷰
- Today
- Total
타이탄의 도구들
[Android] SharedPreferences에 대하여 본문
오랜만에 안드로이드 어플을 개발하다보니, 쉐어드 쓸 일이 생겼는데,
기억이 안나서 과거에 정리해 놓은 자료를 보고 적용했는데, 도움이 많이 되었다.
물론 부족한 자료지만, 나에게는 다 소중한 자산같은 자료들이다 :)
SharedPreferences의 사전적 의미
쉐어드(Shared) : 공유하는
프레퍼런스(Preference) : 우선권, 더 좋아함
SharedPreferences란 (고유명사적 의미)
데이터를 키와 밸류 형태로 저장하고 불러올 수 있게 하는
안드로이드에서 제공하는 인터페이스다.
interface : 사물과 사물 사이 또는 사물과 인간 사이의 경계에서,
상호 간의 소통을 위해 만들어진 매개체
왜 사용하는가?
1. 데이터를 서버가 아닌 로컬(휴대폰이라고 생각하면 됨)에 저장하기 위해서
2. 데이터를 의미하는 밸류가 매우 많을 때 키로 밸류들을 묶고,
키에 이름을 지정해 밸류에 쉽고 빠르게 접근하도록 할 수 있기 때문
(사실 이건 키밸류 형태의 데이터에 대한 장점이다.)
3. 사용법이 간단하고, 주로 데이터의 양이 적은 값들을 저장할 때 유용하기 때문
어떻게 사용하는가?
SharedPreferences 의 객체를 생성합니다.
Editor 의 객체를 생성합니다.
Editor의 사전적 의미
편집자
편집하다 : 일정한 방침 아래 여러가지 재료를 모아 문서 따위를 하나의 작품으로 완성하다.
고유 명사적 의미 + 왜 사용하는가 (developers에서의 정의)
Interface used for modifying values in a SharedPreferences object.
SharedPreferences 객체에서
데이터들을 변경하는데 사용 되는 인터페이스
SharedPreferences 데이터의 메모장과 같은 역할을 한다.
출처 입력
Editor 객체를 가지고 Key-value 형태의 데이터를 저장 or 수정 or 삭제 합니다.
SharedPreferences 객체를 가지고
저장된 데이터의 Key값을 선언해 데이터를 불러옵니다.
역시 기본은 developers!
https://developer.android.com/reference/android/content/SharedPreferences?hl=ko

SharedPreferences 선언 후
데이터를 입력 또는 삭제하고 싶을 때는 Editor를 이용하고,
데이터를 불러올때는 SharedPreferences 에서 바로 불러오면 됩니다.
(Editor의 경우에는 꼭 apply를 해줘야합니다.)
1. 불러오기
SharedPreferences preference = getSharedPreferences("SharedPreferencesName", MODE_PRIVATE);
preference.getString("KeyName", "(default값)");
해당 키에 대한 밸류가 존재하지 않을 때는 (default값)을 가져옵니다.
MODE_PRIVATE : 자신의 앱에서만 데이터를 사용하도록 하는 설정값
MODE_WORLD_READABLE: 외부 앱에서 읽기 가능
MODE_WORLD_WRITEABLE: 외부 앱에서 쓰기 가능
보안상의 이유로 MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE은 API LEVEL 17부터 deprecation 되었습니다.
deprecate :
비난하다, 반대하다 → 다른 것으로 대체되었거나 될 수 있으니
주의해서 사용하라는 말
2. 저장
SharedPreferences preference = getSharedPreferences("SharedPreferencesName", MODE_PRIVATE);
SharedPreferences.Editor editor = preference.edit();
editor.putString("KeyName", "Value");
editor.apply();
3. 삭제(해당 "키" 의 데이터만 삭제)
SharedPreferences preference = getSharedPreferences("SharedPreferencesName", MODE_PRIVATE);
SharedPreferences.Editor editor =preference.edit();
editor.remove("KeyName");
editor.apply();
4. 전체 삭제
SharedPreferences preference = getSharedPreferences("SharedPreferencesName", MODE_PRIVATE);
SharedPreferences.Editor editor = preference.edit();
editor.clear();
editor.apply();
5. 수정
같은 키 값에, value만 바꿔주면 된다.
SharedPreferences preference = getSharedPreferences("SharedPreferencesName", MODE_PRIVATE);
SharedPreferences.Editor editor = preference.edit();
editor.putString("KeyName", "Value edit");
editor.apply();
위의 예시들은 밸류가 String값일때고, 다양한 변수자료형이 올 수 있다.
ex)
getBoolean(String key, boolean value)
getFloat(String key, float value)
getInt(String key, int value)
getLong(String key, long value)
getString(String key, String value)
getStringSet(String key, Set<String> values)
또한 해당 어플을 삭제하게 되면 쉐어드로 저장한 데이터도 같이 삭제가 된다.
(직접 어플을 삭제해봤더니 저장한 데이터들이 삭제가 되었다.)
'Dev Tools > Android' 카테고리의 다른 글
[Android] 구글 인앱결제 이슈 정리 (0) | 2022.05.30 |
---|---|
[Android] Kotlin 과 Jetpack에 대하여 (0) | 2022.05.29 |
[Android] ListView, RecyclerView, Lazy lists (0) | 2022.05.28 |
[Android] View와 ViewGroup (0) | 2022.05.27 |
[Android] NDK와 JNI의 차이 (0) | 2022.05.25 |