상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - SharedPreferences를 사용하여 사용자 선호도를 저장하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
`SharedPreferences`는 Android 애플리케이션에서 간단한 데이터를 저장하고 관리하는 데 사용되는 API입니다. 사용자 선호도, 설정, <a href='https://sangseek.com/sangseeks/로그인 정보/ko'>로그인 정보</a> 등과 같은 작은 데이터를 저장하는 데 적합합니다. `SharedPreferences`는 키-값 쌍으로 데이터를 저장하며, 이 데이터는 애플리케이션이 종료되더라도 유지됩니다. 아래에서는 `SharedPreferences`를 사용하여 사용자 선호도를 저장하는 방법에 대해 자세히 설명하겠습니다. 1. SharedPreferences 객체 얻기 `SharedPreferences` 객체를 얻으려면 `getSharedPreferences()` 메서드를 사용합니다. 이 메서드는 두 개의 인자를 받습니다: 파일 이름과 모드입니다. 모드는 일반적으로 `Context.MODE_PRIVATE`를 사용하여 해당 파일이 현재 애플리케이션에서만 접근 가능하도록 설정합니다. ```java SharedPreferences sharedPreferences = getSharedPreferences("user_preferences", Context.MODE_PRIVATE); ``` 2. 데이터 저장하기 `SharedPreferences`에 데이터를 저장하려면 `SharedPreferences.Editor` 객체를 사용해야 합니다. `Editor` 객체를 통해 데이터를 추가하거나 수정한 후, `apply()` 또는 `commit()` 메서드를 호출하여 변경 사항을 저장합니다. ```java SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("username", "JohnDoe"); // 문자열 저장 editor.putInt("age", 30); // 정수 저장 editor.putBoolean("isSubscribed", true); // 불리언 저장 editor.apply(); // 비동기적으로 저장 ``` `apply()` 메서드는 비동기적으로 데이터를 저장하며, UI 스레드를 차단하지 않습니다. 반면 `commit()` 메서드는 동기적으로 저장하며, 저장이 완료될 때까지 호출한 스레드를 차단합니다. 일반적으로 `apply()`를 사용하는 것이 좋습니다. 3. 데이터 읽기 저장된 데이터를 읽으려면 `getString()`, `getInt()`, `getBoolean()` 등의 메서드를 사용합니다. 이 메서드는 두 개의 인자를 받습니다: 키와 기본값입니다. 기본값은 해당 키에 대한 값이 존재하지 않을 경우 반환됩니다. ```java String username = sharedPreferences.getString("username", "defaultUser"); int age = sharedPreferences.getInt("age", 0); boolean isSubscribed = sharedPreferences.getBoolean("isSubscribed", false); ``` 4. 데이터 삭제 저장된 데이터를 삭제하려면 `remove()` 메서드를 사용하여 특정 키에 해당하는 데이터를 삭제할 수 있습니다. 모든 데이터를 삭제하려면 `clear()` 메서드를 사용할 수 있습니다. ```java editor.remove("username"); // 특정 키 삭제 editor.clear(); // 모든 데이터 삭제 editor.apply(); // 변경 사항 저장 ``` 5. 예제 코드 아래는 `SharedPreferences`를 사용하여 사용자 선호도를 저장하고 읽는 간단한 예제입니다. ```java public class Main<a href='https://sangseek.com/sangseeks/Activity/ko'>Activity</a> extends AppCompatActivity { @Override protected <a href='https://sangseek.com/sangseeks/void/ko'>void</a> onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // SharedPreferences 객체 얻기 SharedPreferences sharedPreferences = getSharedPreferences("user_preferences", Context.MODE_PRIVATE); // 데이터 저장 SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString("username", "JohnDoe"); editor.putInt("age", 30); editor.putBoolean("isSubscribed", true); editor.apply(); // 데이터 읽기 String username = sharedPreferences.getString("username", "defaultUser"); int age = sharedPreferences.getInt("age", 0); boolean isSubscribed = sharedPreferences.getBoolean("isSubscribed", false); // 데이터 출력 Log.d("User Info", "Username: " + username + ", Age: " + age + ", Subscribed: " + isSubscribed); } } ``` 6. 주의사항 - `SharedPreferences`는 작은 데이터를 저장하는 데 적합합니다. 대량의 데이터나 복잡한 데이터 구조를 저장하려면 SQLite 데이터베이스나 Room 라이브러리를 사용하는 것이 좋습니다. - `SharedPreferences`는 기본적으로 비동기적으로 작동하지만, 데이터의 일관성을 보장하기 위해 `commit()`을 사용할 수도 있습니다. - 데이터의 보안이 중요한 경우, `SharedPreferences`에 저장된 데이터를 암호화하는 방법을 고려해야 합니다. 이와 같이 `SharedPreferences`를 사용하면 간단하게 사용자 선호도를 저장하고 관리할 수 있습니다. 이를 통해 사용자 경험을 향상시키고 애플리케이션의 <a href='https://sangseek.com/sangseeks/유용성/ko'>유용성</a>을 높일 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기