[6] 데이터 저장 [1] Key-Value 셋 저장

Saving Key-Value Sets

THIS LESSON TEACHES YOU TO

  1. Get a Handle to a SharedPreferences
  2. Write to Shared Preferences
  3. Read from Shared Preferences

YOU SHOULD ALSO READ


If you have a relatively small collection of key-values that you’d like to save, you should use the SharedPreferences APIs. ASharedPreferences object points to a file containing key-value pairs and provides simple methods to read and write them. EachSharedPreferences file is managed by the framework and can be private or shared.

비교적 작은 key-value컬렉션을 갖고 있고 저장하고 싶다면, SharedPreferences API를 사용해야 합니다. SharedPreference 오브젝트는 key-value 쌍을 담고 있는파일을 가리킵니다. 또한 읽고 쓰는데에 간단한 메서드를 제공합니다. 각각의 SharedPreference 파일은 framework에 의해서 관리됩니다. 또한 private 되거나 공유되거나 하지요.

This class shows you how to use the SharedPreferences APIs to store and retrieve simple values.

이번 클래스에서는 어떻게 SharedPreference API들을 사용하는지 알아봅니다. 이 것으로 간단한 값들을 저장하고 불러옵니다.

Note: The SharedPreferences APIs are only for reading and writing key-value pairs and you should not confuse them with the Preference APIs, which help you build a user interface for your app settings (although they use SharedPreferences as their implementation to save the app settings). For information about using the Preference APIs, see the Settings guide.

주의 : SharedPreferences API들은 단지 key-value 쌍을 읽고 쓰기 위한 것입니다. 그리고 이 것을 Preference API와 혼동해서는 안됩니다. Preference API는 UI를 빌드하는데에 도움을 주는 API입니다.

Get a Handle to a SharedPreferences


You can create a new shared preference file or access an existing one by calling one of two methods:

새로운 shared preference 파일을 생성하거나 원래 존재하는 shared preference 파일에 접근할 수 있습니다. 두 가지 방법이 메서드가 있습니다.

  • getSharedPreferences() — Use this if you need multiple shared preference files identified by name, which you specify with the first parameter. You can call this from any Context in your app.
    getSharedPreferences() ㅡ 다수의 shared preference 파일이 필요할 때 사용하세요. 이름으로 구분되지요. 첫 파라메터로 명시할 수 있습니다. 우리 앱의 어떠한 Context 로부터도 이 것을 호출 할 수 있습니다.
  • getPreferences() — Use this from an Activity if you need to use only one shared preference file for the activity. Because this retrieves a default shared preference file that belongs to the activity, you don’t need to supply a name.
  • getPreferences() ㅡ 액티비티로부터 온 이것을 사용합니다. 만약 단 하나의 shared preference 파일을 액티비티에서 사용한다면 말이지요. 기본 shared preference 파일을 불러 이 것이 불러오기 때문입니다. 그 파일을 액티비티에 포함되어 있는 것이지요. 이름을 지어줄 필요는 없어요.

For example, the following code is executed inside a Fragment. It accesses the shared preferences file that’s identified by the resource string R.string.preference_file_key and opens it using the private mode so the file is accessible by only your app.

예를 들어, 다음 코드는 Fragment 내부에서 실행됩니다. shred preferences 파일을 접근하지요. 그 파일은 리소스 string 으로 구분되는데요, R.string.preference_file_key 라는 string 으로 됩니다. 그리고 이 것을 엽니다. private 모드로. 그래서 이 파일은 우리 앱 어디서든 접근 가능합니다.

Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);

When naming your shared preference files, you should use a name that’s uniquely identifiable to your app, such as "com.example.myapp.PREFERENCE_FILE_KEY"

shared preference 파일에 이름을 붙일 때, 유일한 구문성을 가진 이름을 사용해야 합니다. 예를 들어 “com.example.myapp.PREFERENCE_FILE_KEY” 같은 것 말이지요

Alternatively, if you need just one shared preference file for your activity, you can use the getPreferences()method:

또는, shared preference 파일이 단 한개만 필요하다면, getPreferences() 메소드를 이용할 수 있습니다.

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);

Caution: If you create a shared preferences file with MODE_WORLD_READABLE or MODE_WORLD_WRITEABLE, then any other apps that know the file identifier can access your data.

주의 : 만약 shared preference 파일을 MODE_WORLD_READABLE 이나 MODE_WORLD_WRITEABLE 와 함께 생성하면, 다른 앱은 여러분의 데이터에 접근할 수 있습니다.

Write to Shared Preferences


To write to a shared preferences file, create a SharedPreferences.Editor by calling edit() on yourSharedPreferences.

shared preference 파일을 쓰기 위해서 SharedPreferences.Editor 를 생성합니다. edit() 를 sharedPreferences에서 호출합니다.

Pass the keys and values you want to write with methods such as putInt() and putString(). Then call commit() to save the changes. For example:

메서드에 key 와 value 를 넣습니다. putInt() 나 putString() 같은것을 써서 말이지요. 그리고 나서 commit() 를 해서 변화를 저장합니다. 예를 들어

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();

Read from Shared Preferences


To retrieve values from a shared preferences file, call methods such as getInt() and getString(), providing the key for the value you want, and optionally a default value to return if the key isn’t present. For example:

값들을 shared preference 파일로부터 불러오고 싶다면, getInt()나 getString()을 써서 불러옵니다. key를 전해주면 리턴받거나, key가 없더라도 기본 값을 옵셔널하게 리턴 받을 수 있습니다.

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중