플러터(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.
'Flutter > Package' 카테고리의 다른 글
플러터에서 ML 모델 사용하기: 초보자를 위한 완벽 가이드 (5) | 2024.10.11 |
---|---|
플러터에서 get_it 패키지 사용 방법과 옵션 쉽게 이해하기 [의존성 주입] (5) | 2024.09.12 |
플러터에서 DIO 패키지 사용 방법과 옵션: 초보자도 쉽게 따라 할 수 있는 가이드 (0) | 2024.09.05 |
플러터에서 Font Awesome 아이콘 사용하기: font_awesome_flutter 패키지 완벽 가이드 (0) | 2024.09.01 |
플러터에서 flutter_time_picker_spinner 패키지 사용하기: 초보자를 위한 간단 가이드 (0) | 2024.08.29 |