SharedPreference란?
- Android에서 SharedPreference란 간단한 key-value 형태로 데이터를 저장하기 위한 메커니즘이다.
- 주로 사용자의 정보나 설정등 간단한 정보의 저장에 사용되며, XML 형식으로 데이터를 저장한다.
- SharedPreferences 객체를 사용하여 데이터를 저장하고, 검색할 수 있다.
- 데이터는 앱을 삭제하지 않는 이상 영구적으로 저장된다.
SharedPreference 사용법
- SharedPreferences 객체를 사용하며, 이 객체는 앱 컨텍스트를 통해서 생성된다.
- getSharedPreferences() 메서드나 PreferenceManager.getDefaultSharedPreferences() 메서드를 통해서 객체를 얻을 수 있다.
- 데이터를 저장하기 위해서는 SharedPreferences.Editor 객체를 사용해야하며 데이터를 저장한 후에는 commit()이나 apply()메서드를 호출해 변경 내용을 저장한다.
- commit(): 동기적 저장
- apply(): 비동기적 저장
- 데이터를 검색하기 위해서는 각 데이터 타입의 get 메서드를 이용하면된다.
실제 사용
메모앱 개발 시 기존에는 사용자 비밀번호를 SQLite를 사용해 저장했다.
이는 단순히 비밀번호 하나만 저장하기에는 테이블을 따로 만들어야 된다는 점에서 비효율적이였고, 이를 위한 DAO또한 만들어줘야해서 코드의 양이 상대적으로 많았다.
이런 문제를 SharedPreference를 통해서 해결할 수 있었다.
기존에 SQLite에 사용자 비밀번호를 저장한 코드

SharedPreference를 이용해 수정한 코드
MainActivity에 SharedPreferences 객체를 생성하고 이를 각 프래그먼트에서 접근해 데이터를 검색하거나 Editor 객체를 생성해 데이터를 저장했다.
처음에는 commit() 메서드를 호출하지 않아 데이터가 저장되지 않는 실수가 있었다. (꼭 commit()이나 apply() 메서드를 호출하자)
