본문 바로가기
Flutter/Package

플러터에서 Flutter Secure Storage 패키지 사용 방법과 옵션: 초보자도 쉽게 따라 할 수 있는 가이드

by Maccrey Coding 2024. 9. 5.
반응형

 

플러터(Flutter)는 다양한 패키지를 통해 앱 개발을 손쉽게 할 수 있게 도와줍니다.

특히, 중요한 데이터를 안전하게 저장하는 것은 매우 중요합니다.

이번 포스트에서는 플러터 초보자도 쉽게 이해할 수 있도록 Flutter Secure Storage 패키지를 사용하여 민감한 데이터를 안전하게 저장하고 불러오는 방법을 설명드리겠습니다.

Flutter Secure Storage 패키지란?

Flutter Secure Storage는 플러터 애플리케이션에서 중요한 데이터를 안전하게 저장할 수 있도록 도와주는 패키지입니다.

이 패키지는 iOS와 Android에서 각각의 보안 저장소(Keychain, Keystore)를 사용해 데이터를 안전하게 보호합니다.

비밀번호, 토큰, 개인 정보 등의 민감한 데이터를 안전하게 저장할 때 유용하게 사용됩니다.

1. Flutter Secure Storage 패키지 설치

먼저, pubspec.yaml 파일에 Flutter Secure Storage 패키지를 추가합니다.

dependencies:
  flutter_secure_storage: ^8.0.0 # 최신 버전을 사용하세요.

이후, 터미널에서 flutter pub get 명령어를 실행해 패키지를 설치합니다.

2. 기본 사용 방법

패키지를 설치한 후, 데이터를 저장하고 불러오는 기본 방법을 알아보겠습니다.

a. 데이터 저장하기

import 'package:flutter_secure_storage/flutter_secure_storage.dart';

final storage = FlutterSecureStorage();

Future<void> saveData() async {
  await storage.write(key: 'token', value: 'my_secure_token');
}

위 코드는 'token'이라는 키로 'my_secure_token' 값을 안전하게 저장하는 예제입니다.

b. 데이터 불러오기

Future<void> loadData() async {
  String? token = await storage.read(key: 'token');
  print('Saved token: $token');
}

저장된 데이터를 불러오려면 read 메서드를 사용합니다. 키를 기준으로 데이터를 읽어올 수 있습니다.

c. 데이터 삭제하기

Future<void> deleteData() async {
  await storage.delete(key: 'token');
}

특정 키의 데이터를 삭제할 때는 delete 메서드를 사용합니다.

d. 모든 데이터 삭제하기

Future<void> deleteAllData() async {
  await storage.deleteAll();
}

저장된 모든 데이터를 삭제하려면 deleteAll 메서드를 사용합니다.

3. 주요 옵션 및 설정

Flutter Secure Storage는 다양한 옵션을 통해 저장 방식을 세밀하게 제어할 수 있습니다. 주요 옵션들을 살펴보겠습니다.

a. iOS의 경우 추가적인 설정

iOS에서는 Keychain 접근 그룹을 설정하거나 암호화를 설정할 수 있습니다. 예를 들어, 특정 접근 그룹을 사용하려면 다음과 같이 설정합니다.

final storage = FlutterSecureStorage(
  iOptions: IOSOptions(
    accessGroup: 'your_access_group',
  ),
);

b. Android의 경우 암호화 설정

Android에서는 키 스토어(KeyStore)로 데이터를 암호화할 수 있습니다. 또한, setEncryptionRequired를 통해 암호화를 필수로 설정할 수 있습니다.

final storage = FlutterSecureStorage(
  aOptions: AndroidOptions(
    encryptedSharedPreferences: true, // 암호화된 SharedPreferences 사용
  ),
);

4. 비밀번호 저장과 관리

이 패키지를 사용하면 사용자 비밀번호를 안전하게 저장할 수 있습니다. 예를 들어, 사용자가 로그인할 때 비밀번호를 저장해 자동 로그인 기능을 구현할 수 있습니다.

Future<void> savePassword(String password) async {
  await storage.write(key: 'password', value: password);
}

Future<String?> getPassword() async {
  return await storage.read(key: 'password');
}

5. 예제: 자동 로그인 기능 구현하기

Flutter Secure Storage를 활용해 간단한 자동 로그인 기능을 구현할 수 있습니다. 다음은 예제 코드입니다.

Future<void> login(String username, String password) async {
  // 로그인 로직이 성공적으로 완료되면 비밀번호 저장
  await storage.write(key: 'username', value: username);
  await storage.write(key: 'password', value: password);
}

Future<void> autoLogin() async {
  String? username = await storage.read(key: 'username');
  String? password = await storage.read(key: 'password');

  if (username != null && password != null) {
    // 자동 로그인 시도
    print('자동 로그인 시도: $username');
    // 로그인 로직 추가
  } else {
    print('자동 로그인 정보 없음');
  }
}

 

 

Flutter Secure Storage 패키지는 플러터 앱에서 민감한 데이터를 안전하게 관리하는 데 필수적인 도구입니다.

이번 가이드에서는 패키지 설치부터 기본 사용 방법, 주요 옵션 설정, 그리고 자동 로그인 기능 구현까지 다양한 내용을 다루었습니다.

초보자도 쉽게 따라 할 수 있도록 최대한 쉽게 설명드렸으니, 이제 여러분의 프로젝트에 적용해보세요!

구독!! 공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형