[flutter] 플러터 objectbox에서 사용자 정의 테이블 생성 방법은?

ObjectBox는 Flutter 애플리케이션에서 사용되는 데이터베이스 엔진으로, 사용자 정의 테이블을 생성하여 데이터를 저장하고 관리할 수 있습니다. 이 글에서는 Flutter에서 ObjectBox를 사용해 사용자 정의 테이블을 생성하는 방법에 대해 알아보겠습니다.

1. ObjectBox 의존성 추가

먼저, pubspec.yaml 파일에 ObjectBox 의존성을 추가해야 합니다. 아래와 같이 dependencies 섹션에 objectbox 패키지를 추가합니다.

dependencies:
  objectbox: ^0.14.0

의존성을 추가한 후에는 flutter packages get 명령을 실행하여 패키지를 설치합니다.

2. 데이터 모델 정의

ObjectBox에서 테이블을 생성하기 위해 데이터 모델을 정의해야 합니다. 데이터 모델은 데이터베이스에 저장될 개체의 속성을 나타내는 클래스입니다. 예를 들어, 사용자 정보를 저장하는 User 클래스를 정의해 보겠습니다.

import 'package:objectbox/objectbox.dart';

@Entity()
class User {
  @Id()
  int id;

  String name;
  int age;
  
  User({required this.id, required this.name, required this.age});
}

@Entity 어노테이션은 해당 클래스가 데이터 모델임을 나타내며, @Id 어노테이션은 기본키를 지정합니다. 속성으로는 사용자의 이름(name)과 나이(age)를 포함하도록 정의하였습니다.

3. ObjectBox 데이터베이스 초기화

ObjectBox 데이터베이스는 앱이 시작될 때 초기화되어야 합니다. main() 함수에서 ObjectBox 데이터베이스를 초기화하고 사용자 정의 테이블을 생성하는 코드를 작성해야합니다. 다음은 예시입니다.

import 'package:objectbox/objectbox.dart';
import 'models/user.dart'; // 위에서 정의한 User 클래스를 import 해주세요.

void main() {
  final store = Store(getObjectBoxModel());
  runApp(MyApp());
}

ObjectBoxModel getObjectBoxModel() {
  return ObjectBoxModel(entities: [
    User.getEntityDef(), // User 클래스의 EntityDefinition을 추가합니다.
  ]);
}

위의 코드에서 getObjectBoxModel() 함수에서는 사용자 정의 테이블인 User 클래스의 EntityDefinition을 반환하도록 설정해야합니다.

4. 사용자 정의 테이블 사용

이제 사용자 정의 테이블을 사용하여 데이터를 저장하고 관리할 수 있습니다. 예를 들어, 사용자를 생성하고 저장하는 코드는 다음과 같습니다.

void createUser() {
  final user = User(id: 1, name: 'John Doe', age: 25);
  
  Store store = Store(getObjectBoxModel());
  final box = Box<User>(store);
  
  box.put(user);
}

위의 코드에서 Box<User>(store)를 사용하여 User 데이터를 저장할 Box를 생성하고, box.put(user)를 통해 사용자를 Box에 저장합니다.

ObjectBox는 강력하고 효율적인 데이터베이스 엔진이므로, 사용자 정의 테이블을 생성하여 데이터를 관리하는 데 효과적으로 활용할 수 있습니다. 자세한 내용은 ObjectBox의 공식 문서를 참고하시기 바랍니다.

참고 자료