[flutter] 플러터에서의 데이터베이스 연동 방법
플러터(Flutter) 애플리케이션을 개발할 때, 데이터베이스를 연동하여 데이터를 영속적으로 저장하고 관리해야 하는 경우가 있습니다. 이번 포스팅에서는 플러터에서 데이터베이스를 연동하기 위한 몇 가지 방법에 대해 알아보겠습니다.
1. SQLite 사용
가장 보편적으로 사용되는 방법은 SQLite 데이터베이스를 사용하는 것입니다. SQLite는 경량의 데이터베이스 엔진으로 쉽게 통합하여 사용할 수 있습니다. 플러터에서 SQLite를 사용하기 위해서 sqflite
패키지를 이용하면 됩니다.
dependencies:
sqflite: ^2.0.0+3
sqflite
패키지를 설치한 후, 데이터베이스를 생성하고 쿼리를 실행하여 데이터를 저장하고 읽을 수 있습니다.
import 'package:sqflite/sqflite.dart';
import 'package:path/path.dart';
// 데이터베이스 생성
void _createDatabase() async {
var databasesPath = await getDatabasesPath();
String path = join(databasesPath, 'my_database.db');
var database = await openDatabase(path, version: 1,
onCreate: (Database db, int version) async {
// 테이블 생성 쿼리 실행
await db.execute(
'CREATE TABLE Test (id INTEGER PRIMARY KEY, name TEXT, value INTEGER, num REAL)');
});
return database;
}
// 데이터 삽입
Future<void> _insertData() async {
var database = await _createDatabase();
await database!.insert('Test', {'name': 'item', 'value': 123});
}
2. Firebase Firestore 사용
Firebase는 Google의 클라우드 기반 플랫폼으로, Firebase Firestore를 사용하여 플러터 애플리케이션에서 실시간 데이터베이스를 손쉽게 연동할 수 있습니다.
dependencies:
firebase_core: ^1.10.0
cloud_firestore: ^3.3.0
위와 같이 firebase_core
와 cloud_firestore
패키지를 설치한 후, Firebase 프로젝트를 설정하고 Firestore에 데이터를 읽고 쓰는 것이 가능합니다.
import 'package:cloud_firestore/cloud_firestore.dart';
// 데이터 읽기
void _readData() {
FirebaseFirestore.instance
.collection('users')
.doc('user1')
.get()
.then((DocumentSnapshot documentSnapshot) {
if (documentSnapshot.exists) {
print('Document data: ${documentSnapshot.data()}');
} else {
print('Document does not exist on the database');
}
});
}
// 데이터 쓰기
void _writeData() {
FirebaseFirestore.instance
.collection('users')
.doc('user1')
.set({'name': 'John Doe', 'age': 30})
.then((value) => print('User added'))
.catchError((error) => print('Failed to add user: $error'));
}
결론
플러터에서의 데이터베이스 연동은 SQLite나 Firebase Firestore 등을 사용하여 간단하게 구현할 수 있습니다. 프로젝트의 목적과 요구사항에 맞게 적절한 방법을 선택하여 데이터를 영속적으로 저장하고 관리하시기 바랍니다.
더 많은 정보를 원하시면 플러터 공식 문서를 참고하실 수 있습니다.