[flutter] 플러터에서의 데이터베이스 연결 풀 설정 방법

이 문서에서는 플러터(Flutter) 애플리케이션에서 데이터베이스 연결 풀(Connection Pool)을 설정하는 방법에 대해 알아보겠습니다.

1. sqflite 패키지 추가

데이터베이스 작업을 위해 플러터에서 제공하는 sqflite 패키지를 사용해야 합니다. 먼저, pubspec.yaml 파일에서 패키지를 추가해주세요.

dependencies:
  sqflite: ^2.0.0+4

그리고 패키지를 적용하기 위해 pub get 명령어를 실행합니다.

2. 데이터베이스 연결 풀 설정

데이터베이스 연결을 관리하기 위해 Connection Pool을 사용하는 것이 좋습니다. sqflite 패키지는 DatabaseFactory 클래스를 제공하여 데이터베이스 연결 풀을 설정할 수 있습니다.

import 'package:sqflite/sqflite.dart';

void main() async {
  var databaseFactory = databaseFactoryFfi;

  var db = await databaseFactory.openDatabase(
    'my_database.db',
    options: OpenDatabaseOptions(
      version: 1,
      onCreate: (db, version) {
        // 데이터베이스 생성 시 초기화 작업 수행
        // 예: 테이블 생성, 초기 데이터 삽입 등
      },
    ),
  );

  // 데이터베이스 작업 수행
  // ...

  await db.close();
}

위의 예제 코드에서 databaseFactoryFfi는 sqflite가 제공하는 FFI(DatabaseFactoryFfi) 중 하나의 인스턴스입니다. 다른 방식으로 설정할 수도 있으니 자신의 상황에 맞게 선택하시면 됩니다.

openDatabase 메소드를 호출하여 데이터베이스 파일(my_database.db)을 생성하고, 옵션을 설정합니다. onCreate 콜백 함수를 사용하여 데이터베이스가 생성될 때 초기화 작업을 수행할 수 있습니다.

3. 데이터베이스 사용

이제 데이터베이스가 설정되었으므로 데이터베이스 작업을 수행할 수 있습니다. db 변수는 Database 클래스의 인스턴스로, 데이터베이스에 접근할 수 있는 메소드를 제공합니다.

// 테이블 생성
await db.execute('''
CREATE TABLE contacts (
  id INTEGER PRIMARY KEY,
  name TEXT,
  email TEXT
)
''');

// 데이터 삽입
await db.insert(
  'contacts',
  {'name': 'John Doe', 'email': 'johndoe@example.com'},
);

// 데이터 조회
var contacts = await db.query('contacts');

위의 예제 코드는 테이블을 생성하고, 데이터를 삽입하고, 데이터를 조회하는 간단한 작업입니다.

참고 문서