[flutter] shared_preferences 를 사용하여 사용자의 검색 기록을 저장하는 방법은 무엇인가요?

개요

Flutter 애플리케이션에서는 검색 기록과 같은 사용자 데이터를 장기간 저장해야 하는 경우가 많습니다. shared_preferences 패키지를 사용하면 심플하게 사용자 데이터를 저장하고 검색 기록과 같은 정보를 유지할 수 있습니다.

shared_preferences 패키지 설치

먼저, shared_preferences 패키지를 프로젝트에 추가해야 합니다. pubspec.yaml 파일에서 dependencies 섹션에 아래의 의존성을 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.0.8

저장 후, 패키지를 가져오기 위해 pub get 명령어를 실행하여 의존성을 완료합니다.

검색 기록 저장하기

1. SharedPreferences 객체 생성

먼저, SharedPreferences 객체를 생성해야 합니다. 다음 코드를 사용하여 SharedPreferences 객체를 생성합니다.

import 'package:shared_preferences/shared_preferences.dart';

Future<void> saveSearchHistory(String searchQuery) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  // 저장된 데이터 가져오기: prefs.getStringList('searchHistory')
}

2. 검색 기록 추가하기

검색 기록을 추가하기 위해 prefs.getStringList('searchHistory')를 사용하여 이전에 저장된 검색 기록 목록을 가져옵니다. 그런 다음, 새로운 검색어를 추가한 후 업데이트된 검색 기록을 저장합니다.

Future<void> saveSearchHistory(String searchQuery) async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  List<String> searchHistory = prefs.getStringList('searchHistory') ?? [];
  // 중복된 검색어가 없는지 검사
  if (!searchHistory.contains(searchQuery)) {
    // 새로운 검색어 추가
    searchHistory.add(searchQuery);
    // 최신 검색 기록 5개만 유지
    if (searchHistory.length > 5) {
      searchHistory.removeAt(0);
    }
    // 업데이트된 검색 기록 저장
    prefs.setStringList('searchHistory', searchHistory);
  }
}

검색 기록을 저장할 때, 기존에 같은 검색어가 있는지를 확인하여 중복된 검색어를 방지합니다. 또한, 최신 검색 기록 5개만 유지하기 위해 기록의 길이를 확인하고 필요한 경우 가장 오래된 기록을 삭제합니다.

3. 검색 기록 불러오기

이전에 저장한 검색 기록을 불러와 사용할 수 있습니다. prefs.getStringList('searchHistory')를 사용하여 저장된 검색 기록을 가져옵니다.

Future<List<String>> getSearchHistory() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  List<String>? searchHistory = prefs.getStringList('searchHistory');
  return searchHistory ?? [];
}

저장된 검색 기록이 없는 경우 빈 리스트가 반환될 수 있으므로, null 체크를 통해 이를 처리합니다.

결론

Flutter 애플리케이션에서는 shared_preferences 패키지를 사용하여 사용자 데이터를 저장할 수 있습니다. 검색 기록과 같은 정보를 저장하고 유지하는 데 이 패키지를 활용할 수 있습니다. 이 글에서는 shared_preferences 패키지를 사용하여 검색 기록을 저장하는 방법을 안내했습니다. 이를 활용하여 Flutter 애플리케이션의 사용자 데이터 관리를 보다 쉽게 할 수 있습니다.

참고 자료