SharedPreferences 사용법
앱을 만들다 보면 다양한 정보를 저장해야 하는 상황이 생깁니다. 보안, 사용성, 속도 등에 따라 상황에 맞는 방법을 선택해야 합니다. 오늘은 로컬에 저장되고 방법이 매우 간단한 shared_preferences 패키지를 이용하는 방법에 대해서 알아보겠습니다.
1. SharedPreferences란?
SharedPreferences는 안드로이드와 iOS에서 간단한 데이터를 로컬에 저장할 수 있는 방법입니다. 이 저장소는 앱이 종료되거나 재시작을 하더라고 휘발되지 않고 남아있어 다양한 곳에서 사용하기에 적합합니다.
2. SharedPreferences 사용법
1. 패키지 설치
터미널에서 명령어로 설치를 하던가
flutter pub add shared_preferences
pubspec.yaml에 직접 추가한 후에 flutter pub get으로 설치하는 방법을 있습니다.
dependencies:
shared_preferences: ^2.5.1
2. 데이터 불러오기
Future<void> _loadtext() async {
final prefs = await SharedPreferences.getInstance();
setState(() {
_text = prefs.getString('text') ?? '이름 없음';
});
}
SharedPreferences.getInstance(); 로 SharedPreferences에 연결을 합니다. 그리고 'text'라는 키의 값을 생성하고 _text로 정의해줍니다. 이렇게 해서 가져올 수 있고 처음에는 값이 없을 수 있으니??로 예외처리를 해줍니다.
3. 데이터 저장
Future<void> _saveText(String text) async {
final prefs = await SharedPreferences.getInstance();
await prefs.setString('text', text);
}
SharedPreferences.getInstance(); 로 SharedPreferences에 연결을 합니다. 그리고 'text'라는 키에 text 값을 저장하면 됩니다.
4. 데이터 변경
Future<void> _deleteText() async {
final prefs = await SharedPreferences.getInstance();
await prefs.remove('text'); // 키 삭제
}
똑같이 연결을 하고 난 후에 변경을 하면 됩니다.
이게 값 하나인 int, double, bool, String일때는 key를 이용해서 변경하면 됩니다. List <String> 형은 조금 다릅니다. 삭제는 키를 삭제하면 되는 건 똑같습니다. 하지만 변경을 할 때는 불러오고 나서 리스트 함수를 이용해서 변경을 하고 나서
prefs.setStringList('text', text);
다시 내용을 저장해 주어야 변경이 SharedPreferences에 저장됩니다.
사용법이 매우 간단합니다. 하지만 단점이 존재합니다.
- 데이터 형식 제한 : int, double, bool, String, List<String> 형만을 지원합니다.
- 보안 문제 : 데이터를 암호화해서 저장하지 않기 때문에 민감한 정보에는 적합하지 않습니다.
- 유지 관리의 어려움 : 데이터 항목이 많아질 경우 키 관리의 복잡함이 올라가서 유지하는데 어려움이 생깁니다.
이외에도 여러 단점이 존재합니다. 하지만 간단하게 정보를 저장할 수 있기 때문에 검색 기록, 사용자 설정 등의 정보를 저장하는 데 알맞습니다. 이렇듯 장단점이 뚜렷하기 때문에 적재적소에 잘 활용하면 좋을 기능인 것 같습니다.
'Flutter' 카테고리의 다른 글
면접 준비 25.02.14 (0) | 2025.02.14 |
---|---|
면접 준비 25.02.10 (0) | 2025.02.10 |
폰트 적용 (0) | 2025.02.06 |
flutter Statefulwigets 생명주기 (0) | 2025.01.15 |
Flutter : Provider 와 Riverpod (0) | 2025.01.14 |