목차
- SharedPreference의 데이터 타입 설명
- 객체 저장하기 예제
- 배열 저장하기 예제
- 암호화된 데이터 저장하기 예제
- SharedPreference 주의사항과 사용 시 고려해야 할 점
1. SharedPreference의 데이터 타입 설명
SharedPreference는 안드로이드에서 키-값 쌍으로 데이터를 저장하는 기능으로, 다양한 데이터 타입을 지원합니다.
주요 데이터 타입으로는 다음과 같은 것들이 있습니다.
- String: 문자열
- int: 정수
- float: 부동소수점
- long: 긴 정수
- boolean: 논리값(true 또는 false)
2. 객체 저장하기 예제
SharedPreference를 이용해 객체를 저장하는 방법은 객체를 JSON 형태로 변환하여 저장하고, 읽어올 때 다시 객체로 변환하는 방법을 사용합니다.
// 객체 저장
User user = new User("Wonseok", 30);
String userJson = new Gson().toJson(user);
SharedPreferences sharedPref = getSharedPreferences("TestPerf", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("user", userJson);
editor.apply();
// 객체 읽기
String userJson = sharedPref.getString("user", "");
User user = new Gson().fromJson(userJson, User.class);
3. 배열 저장하기 예제
배열은 문자열 형태로 변환하여 저장하고, 읽어올 때 다시 배열로 변환하는 방법을 사용합니다.
// 배열 저장
String[] fruits = {"Apple", "Banana", "Orange"};
String fruitsJson = new Gson().toJson(fruits);
SharedPreferences sharedPref = getSharedPreferences("TestPerf", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("fruits", fruitsJson);
editor.apply();
// 배열 읽기
String fruitsJson = sharedPref.getString("fruits", "");
String[] fruits = new Gson().fromJson(fruitsJson, String[].class);
4. 암호화된 데이터 저장하기 예제
보안이 중요한 데이터의 경우에는 암호화하여 저장하는 것이 좋습니다.
암호화를 위해서는 추가적인 라이브러리를 사용하거나 직접 암호화 기능을 구현해야 합니다.
// 데이터 암호화
String dataToEncrypt = "password:qwert1234";
// 사전에 만든 암호화 함수를 이용하여 중요한 메세지를 암호화
String encryptedData = encryptData(dataToEncrypt, "SecretKey");
// 이렇게 중요정보를 기억해야할 때 shared perference를 사용한다.
SharedPreferences sharedPref = getSharedPreferences("TestPerf", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("encryptedData", encryptedData);
editor.apply();
// 데이터 복호화
String encryptedData = sharedPref.getString("encryptedData", "");
String decryptedData = decryptData(encryptedData, "SecretKey");
5. SharedPreference 주의사항과 사용 시 고려해야 할 점
SharedPreference를 사용할 때 주의해야 할 점들이 있습니다.
보안성
SharedPreference는 암호화되지 않은 데이터가 파일로 저장되기 때문에 보안이 중요한 데이터는 사용하지 않는 것이 좋습니다.
용량 제한
SharedPreference는 간단한 설정 정보나 사용자 정보를 저장하는데 유용하지만, 대용량 데이터를 저장하기에는 적합하지 않습니다.
Context 종속성
SharedPreference는 액티비티나 서비스와 같은 Context 객체가 필요하므로, 해당 Context가 소멸되면 데이터도 함께 소멸됩니다.
이렇게 안드로이드에서 SharedPreference를 활용하여 간단하고 가벼운 데이터를 저장, 읽기, 수정, 삭제할 수 있습니다.
반응형