[flutter] 플러터에서 로컬 캐시 사용하기

안녕하세요! 오늘은 플러터(Flutter) 앱 개발에서 로컬 캐시를 사용하는 방법에 대해 알아보겠습니다.

로컬 캐시(Local Cache)는 앱이 실행되는 동안 데이터를 저장하고 재사용하는 방법입니다. 이를 통해 네트워크 요청이나 데이터베이스 접근과 같은 비용이 많이 드는 작업을 줄일 수 있어 속도를 향상시킬 수 있습니다.

shared_preferences 패키지 설치

로컬 캐시를 구현하기 위해 shared_preferences 패키지를 사용합니다. 이 패키지는 안드로이드와 iOS의 SharedPreferences를 통해 데이터를 저장하고 검색할 수 있는 기능을 제공합니다.

shared_preferences 패키지를 사용하기 위해 pubspec.yaml 파일에 다음과 같이 의존성을 추가해주세요:

dependencies:
  shared_preferences: ^2.0.7

의존성을 추가한 후, 터미널에서 프로젝트 루트 디렉토리로 이동한 다음 flutter pub get 명령어를 실행하여 패키지를 설치합니다.

데이터 저장하기

로컬 캐시에 데이터를 저장하기 위해 SharedPreferences 인스턴스를 생성해야 합니다. 흔히 SharedPreferences 인스턴스는 앱의 전역적으로 사용하기 위해 앱의 초기화 단계에서 생성되는 것이 일반적입니다.

다음은 플러터 앱에서 SharedPreferences 인스턴스를 생성하는 예제입니다:

import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  SharedPreferences prefs = await SharedPreferences.getInstance();
  
  // SharedPreferences 인스턴스를 사용하여 데이터 저장하기
  prefs.setString('username', 'JohnDoe');
}

위 예제에서는 SharedPreferencesgetInstance 메서드를 호출하여 인스턴스를 얻고, setString 메서드를 사용하여 ‘username’ 키에 ‘JohnDoe’ 값을 저장하고 있습니다.

데이터 불러오기

로컬 캐시에서 데이터를 불러오는 것은 데이터를 저장하는 것과 비슷합니다. SharedPreferences 인스턴스를 생성한 후, 해당 키로 저장된 값을 가져오면 됩니다.

다음은 플러터 앱에서 로컬 캐시에서 데이터를 불러오는 예제입니다:

import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  SharedPreferences prefs = await SharedPreferences.getInstance();
  
  // SharedPreferences 인스턴스를 사용하여 데이터 불러오기
  String username = prefs.getString('username');
  
  print(username); // 'JohnDoe' 출력
}

위 예제에서는 SharedPreferencesgetString 메서드를 사용하여 ‘username’ 키로부터 값을 가져와 username 변수에 저장하고 있습니다. 그 후에는 해당 값인 ‘JohnDoe’가 출력됩니다.

정리하기

이번에는 플러터에서 로컬 캐시를 사용하는 방법에 대해 알아보았습니다. shared_preferences 패키지를 사용하여 데이터를 저장하고 불러올 수 있으며, 이를 통해 앱의 성능을 향상시킬 수 있습니다.

더 자세한 내용은 shared_preferences 패키지 공식 문서를 참고하시기 바랍니다.

감사합니다!