본문 바로가기
Flutter/Package

[로컬 데이터베이스] 플러터에서 Hive 패키지 사용하여 CRUD 구현하기

by Maccrey Coding 2024. 7. 16.
반응형

 

Hive는 Flutter에서 로컬 데이터베이스를 사용하는 인기 있는 패키지입니다.

NoSQL 데이터베이스로서 키-값 쌍 저장, 객체 저장, 쿼리 등 다양한 기능을 제공합니다.

SQLite보다 가볍고 빠르며, Thread-safe 특성을 가지고 있어 여러 스레드에서 안전하게 사용할 수 있습니다.

 

1. Hive 패키지 설치

Hive 패키지를 사용하려면 먼저 pubspec.yaml 파일에 다음 종속성을 추가해야 합니다.

dependencies:
  hive: ^2.2.3
  hive_flutter: ^1.1.0
 
 

또한 객체를 저장하려는 경우 build_runnerhive_generator 패키지를 dev_dependencies 에 추가해야 합니다.

dev_dependencies:
  build_runner: ^2.4.7
  hive_generator: ^2.0.1
 
 

2. 모델 정의

 

먼저, Hive에 저장할 객체를 나타내는 모델 클래스를 정의해야 합니다. 예를 들어, 사용자 정보를 저장하는 모델 클래스는 다음과 같이 정의할 수 있습니다.

class User {
  final String name;
  final int age;

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

3. Hive 초기화

Hive를 사용하기 전에 앱의 main() 함수에서 Hive를 초기화해야 합니다.

import 'package:hive_flutter/hive_flutter.dart';

void main() async {
  await Hive.initFlutter();
  // ... 나머지 앱 코드
}
 
 

4. Hive Box 열기

모델 클래스를 기반으로 Hive Box를 열어 데이터를 저장하고 불러올 수 있습니다.

import 'package:hive_flutter/hive_flutter.dart';

Box<User> userBox = await Hive.openBox('userBox');
 
 

5. 데이터 생성

저장할 데이터를 생성합니다.

User newUser = User(name: 'John Doe', age: 30);
 
 

6. Create (생성)

새로운 데이터를 Hive Box에 저장합니다.

userBox.put('user1', newUser);
 

7. Read (읽기)

Hive Box에서 데이터를 읽습니다.

User? existingUser = userBox.get('user1');
if (existingUser != null) {
  print(existingUser.name);
  print(existingUser.age);
} else {
  print('사용자를 찾을 수 없습니다.');
}
 

8. Update (수정)

기존 데이터를 업데이트합니다.

existingUser!.age = 31;
userBox.put('user1', existingUser!);
 

9. Delete (삭제)

Hive Box에서 데이터를 삭제합니다.

userBox.delete('user1');
 
 

10. 전체 데이터 목록 가져오기

Hive Box에서 모든 데이터를 가져옵니다.

List<User> users = userBox.values.toList();
for (User user in users) {
  print(user.name);
  print(user.age);
}
 
 

11. 추가 팁

  • Hive는 비동기 API를 사용하므로 모든 작업을 await 키워드와 함께 사용해야 합니다.
  • Hive는 기본적으로 디바이스 내부 저장소에 데이터를 저장합니다. 데이터 암호화 또는 외부 저장소에 대한 지원은 별도의 패키지를 사용해야 합니다.
  • Hive는 아직 개발 중이며 일부 변경 사항이 있을 수 있습니다. 최신 변경 사항은 Hive 문서를 참조하십시오.

이 코드는 Hive 패키지를 사용하여 플러터에서 CRUD 작업을 수행하는 기본적인 방법을 보여줍니다.

실제 앱에서는 더 복잡한 쿼리, 오류 처리 및 권한 관리를 고려해야 할 수 있습니다.

이 정보가 도움이 되었기를 바랍니다! 궁금한 점이 있으면 언제든지 질문해주세요.

반응형