[flutter] 플러터(Flutter)에서 데이터베이스 사용하기

플러터(Flutter)는 구글에서 개발한 크로스 플랫폼 프레임워크로, 다양한 플랫폼에서 동일한 코드로 앱을 개발할 수 있습니다. 플러터를 사용하여 데이터베이스를 사용하는 방법에 대해 알아보겠습니다.

1. 데이터베이스 라이브러리 선택하기

플러터에서는 여러 데이터베이스 라이브러리를 사용할 수 있습니다. 가장 인기 있는 라이브러리는 sqflite와 Moor입니다. sqflite는 SQLite를 사용하여 데이터베이스를 관리하는 라이브러리이고, Moor는 코드 생성을 통해 데이터베이스를 관리할 수 있게 해주는 라이브러리입니다. 사용할 라이브러리를 선택한 후, 해당 라이브러리의 문서를 참고하여 설치 방법을 따릅니다.

2. 데이터베이스 초기화하기

데이터베이스를 사용하기 전에 초기화해야 합니다. 이 단계에서는 데이터베이스 파일을 생성하고 연결합니다. 아래는 sqflite 라이브러리를 사용하여 데이터베이스를 초기화하는 예시 코드입니다.

import 'package:sqflite/sqflite.dart';

void main() async {
  final database = openDatabase(
    'my_database.db',
    version: 1,
    onCreate: (db, version) {
      db.execute('CREATE TABLE my_table (id INTEGER PRIMARY KEY, name TEXT)');
    },
  );
}

이 예시에서는 my_database.db라는 이름의 데이터베이스 파일을 생성하고, my_table이라는 테이블을 생성합니다. 필요에 따라 테이블에 컬럼을 추가하거나 데이터베이스 스키마를 변경할 수 있습니다.

3. 데이터베이스 쿼리 수행하기

데이터베이스를 초기화한 후에는 쿼리를 수행하여 데이터를 저장하고 조회할 수 있습니다. 아래는 sqflite 라이브러리를 사용하여 데이터를 삽입하는 예시 코드입니다.

import 'package:sqflite/sqflite.dart';

void main() async {
  final database = await openDatabase('my_database.db');

  await database.execute(
    'INSERT INTO my_table (name) VALUES (?)',
    ['John'],
  );
  
  final result = await database.query('my_table');
  print(result);
}

이 예시에서는 my_table 테이블에 John이라는 이름을 가진 데이터를 삽입한 뒤, 모든 데이터를 조회하여 출력합니다.

4. 데이터베이스 연결 해제하기

데이터베이스 작업을 마친 후에는 연결을 해제해야 합니다. 아래는 sqflite 라이브러리를 사용하여 데이터베이스 연결을 해제하는 예시 코드입니다.

import 'package:sqflite/sqflite.dart';

void main() async {
  final database = await openDatabase('my_database.db');

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

  await database.close();
}

이 예시에서는 close() 메서드를 호출하여 데이터베이스 연결을 해제합니다.

마무리

플러터에서 데이터베이스를 사용하는 방법에 대해 간단히 알아보았습니다. 선택한 데이터베이스 라이브러리의 문서를 참고하여 더 자세한 사용법을 익히면 더 다양한 기능을 활용할 수 있을 것입니다. 데이터베이스를 잘 활용하여 앱의 기능을 향상시켜보세요!

참고 자료