[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_corecloud_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 등을 사용하여 간단하게 구현할 수 있습니다. 프로젝트의 목적과 요구사항에 맞게 적절한 방법을 선택하여 데이터를 영속적으로 저장하고 관리하시기 바랍니다.

더 많은 정보를 원하시면 플러터 공식 문서를 참고하실 수 있습니다.