SharedPreferences는 안드로이드에서 제공하는 경량의 데이터 저장 방식입니다. 주로 앱의 설정값이나, 간단한 사용자 정보 등을 저장하기 위해 사용됩니다. 데이터는 Key-Value 쌍으로 저장되며, 이를 통해 원하는 데이터를 쉽게 불러올 수 있습니다.
SharedPreferences에 데이터를 저장하기 위해서는 먼저 SharedPreferences 객체를 가져와야 합니다. 이는 getSharedPreferences()
메서드를 통해 가능합니다.
val sharedPreferences = getSharedPreferences("MyApp", Context.MODE_PRIVATE)
이후 Editor
인터페이스를 사용하여 데이터를 저장합니다. Editor
는 SharedPreferences.edit()
메서드를 통해 얻을 수 있습니다.
val editor = sharedPreferences.edit()
editor.putString("username", "John Doe")
editor.apply()
SharedPreferences에서 데이터를 불러오는 것은 간단합니다. 저장할 때 사용한 키를 사용하여 데이터를 불러옵니다.
val username = sharedPreferences.getString("username", "default")
(3) 데이터 삭제하기
특정 키의 데이터를 삭제하려면 remove()
메서드를 사용하면 됩니다.
editor.remove("username")
editor.apply()
모든 데이터를 삭제하려면 clear()
메서드를 사용하세요.
editor.clear()
editor.apply()
SharedPreferences에서 저장하는 모든 데이터는 평문 형태로 저장되기 때문에 보안에 취약할 수 있습니다. 반면, EncryptedSharedPreferences는 Tink라이브러리를 이용하여 데이터를 암호화하여 저장함으로써 이러한 문제를 해결합니다.
아래와 같이 사용할 수 있습니다.
val keyGenParameterSpec = MasterKeys.AES256_GCM_SPEC
val masterKeyAlias = MasterKeys.getOrCreate(keyGenParameterSpec)
val sharedPreferences = EncryptedSharedPreferences.create(
"MySecureApp", // SharedPreferences의 이름
masterKeyAlias, // 키 별칭
applicationContext, // Context
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, // 키 암호화 스키마
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM // 값 암호화 스키마
)