[flutter] 플러터(sqflite)와의 데이터 로그 관리 방법

플러터 앱을 개발하다 보면 데이터베이스가 필요한 경우가 많습니다. sqflite는 플러터에서 사용되는 경량 SQLite 바인딩이며, 데이터를 저장하고 관리하는 데 유용합니다. 이 포스트에서는 플러터 앱에서 sqflite를 사용하여 데이터를 로그로 관리하는 방법에 대해 알아보겠습니다.

1. sqflite 패키지 추가

먼저, pubspec.yaml 파일에 sqflite 패키지를 추가해야 합니다.

dependencies:
  sqflite: ^2.0.0+3

패키지를 추가한 후에는 flutter pub get 명령어를 통해 패키지를 다운로드 받아야 합니다.

2. 데이터베이스 생성

다음으로는 데이터베이스를 생성해야 합니다. 데이터베이스를 생성하기 위해서는 path_provider 패키지도 함께 추가해야 합니다.

import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';

class DatabaseProvider {
  DatabaseProvider._();
  static final DatabaseProvider db = DatabaseProvider._();

  Database? _database;
  Future<Database?> get database async {
    if (_database != null) {
      return _database;
    }
    _database = await createDatabase();
    return _database;
  }

  Future<Database> createDatabase() async {
    // 데이터베이스 생성 및 반환 로직 작성
  }
}

3. 데이터 로그 작성

이제 데이터베이스가 생성되었으므로 데이터를 로그로 작성하는 함수를 만들어 보겠습니다.

Future<int> addLog(Log log) async {
  final db = await database;
  int result = await db.insert(logTable, log.toMap());
  return result;
}

4. 데이터 로그 조회

데이터베이스에 작성된 로그를 조회하는 함수도 만들어 보겠습니다.

Future<List<Log>> getLogs() async {
  final db = await database;
  var logs = await db.query(logTable, orderBy: "timestamp DESC");
  List<Log> logList = logs.isNotEmpty
      ? logs.map((log) => Log.fromMap(log)).toList()
      : [];
  return logList;
}

결론

이제 플러터 앱에서 sqflite를 사용하여 데이터를 로그로 관리하는 방법에 대해 알아보았습니다. sqflite를 사용하면 앱 내 데이터를 효율적으로 저장하고 관리할 수 있으며, 데이터베이스를 효과적으로 활용하여 로그 기능을 구현할 수 있습니다.

참고: sqflite 패키지 문서