[flutter] 플러터(Flutter)와 데이터베이스(Database) 연동하기

플러터(Flutter)는 Google에서 개발한 모바일 애플리케이션 개발 프레임워크로, 다양한 플랫폼(iOS, Android)에서 동작하는 앱을 만들 수 있습니다. 데이터베이스(Database)는 앱에서 데이터를 저장하고 관리하기 위해 필요한 도구입니다. 이번 글에서는 플러터와 데이터베이스를 연동하는 방법에 대해 알아보겠습니다.

1. SQFlite 패키지 설치하기

데이터베이스 연동을 위해 플러터에서 사용할 수 있는 다양한 패키지가 있지만, 이번에는 SQFlite 패키지를 사용해 보겠습니다. SQFlite는 SQLite를 플러터에서 사용하기 쉽도록 인터페이스를 제공하는 패키지입니다. 아래의 명령어를 사용하여 SQFlite 패키지를 설치합니다.

dependencies:
  sqflite: ^1.3.1
  path_provider: ^2.0.2

2. 데이터베이스 생성하기

플러터와 데이터베이스를 연동하기 전에, 먼저 데이터베이스를 생성해야 합니다. 데이터베이스 생성을 위해 다음과 같은 코드를 작성합니다.

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

void main() async {
  // 데이터베이스 경로 지정
  var databasesPath = await getDatabasesPath();
  String path = join(databasesPath, 'my_database.db');

  // 데이터베이스 생성
  Database database = await openDatabase(
    path,
    version: 1,
    onCreate: (Database db, int version) async {
      // 테이블 생성
      await db.execute(
        'CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)',
      );
    },
  );
}

위의 코드에서 my_database.db라는 데이터베이스 파일을 생성하고, my_table이라는 테이블을 생성합니다.

3. 데이터 삽입하기

데이터베이스를 생성한 후에는 데이터를 삽입할 수 있습니다. 다음 코드를 사용하여 데이터를 삽입해 보겠습니다.

void insertData(Database database, String name) async {
  await database.insert('my_table', {'name': name});
}

void main() async {
  // ...

  // 데이터 삽입
  insertData(database, 'John');
}

위의 코드에서는 insertData 함수를 사용하여 데이터를 삽입하고 있습니다. my_table 테이블에 name이라는 컬럼에 ‘John’을 삽입하고 있습니다.

4. 데이터 조회하기

데이터를 삽입한 후에는 데이터를 조회할 수 있습니다. 다음 코드를 사용하여 데이터를 조회해 보겠습니다.

void getData(Database database) async {
  List<Map<String, dynamic>> records = await database.query('my_table');
  for (var record in records) {
    print(record);
  }
}

void main() async {
  // ...

  // 데이터 조회
  getData(database);
}

위의 코드에서는 getData 함수를 사용하여 데이터를 조회하고 있습니다. my_table 테이블의 모든 데이터를 가져와서 출력합니다.

결론

이상으로 플러터와 데이터베이스 연동에 대해 알아보았습니다. SQFlite 패키지를 이용하여 플러터에서 데이터베이스를 생성하고, 데이터를 삽입하고, 데이터를 조회하는 방법을 확인하였습니다. 데이터베이스 연동은 앱의 데이터 관리에 매우 중요하므로, 필요한 경우에는 데이터베이스를 적극적으로 활용해 보시기 바랍니다.

참고 자료