@senspond
>
flutter 에서 Hive Dart (NoSQL) 사용하기
이 글에서 다루는 Hive Dart는 Apache Hive랑 전혀 다른 것이다.
Hive Dart는 Flutter, Dart 환경에서 사용할 수 있는 NoSQL 데이터베이스이다.
Hive Dart는 Flutter 또는 Dart 언어에서 사용할 수 있는 경량, 빠른, 반응형 NoSQL 데이터베이스입니다. 플랫폼에 독립적이며, Dart VM 환경에서 작동합니다. Key-value 스토리지 형식을 지원하여 데이터를 효율적으로 저장하고 액세스 할 수 있습니다.
Apache Hive는 Hadoop에서 동작하는 데이터 웨어하우스 인프라입니다. 대용량 데이터 집합을 쿼리해 분석할 수 있으며, SQL과 유사한 질의 언어(HiveQL)를 제공합니다. Apache Hive는 관계형 데이터베이스 관리 시스템(RDBMS)처럼 구조화된 데이터를 저장하고 처리하는데 주로 사용됩니다.
dependencies:
hive: ^2.2.3
hive_flutter: ^1.1.0
path_provider: ^2.1.4
dev_dependencies:
build_runner: ^2.1.1
hive_generator: ^2.0.1
Flutter에서 기본적으로 제공하는 데이터 타입을 hive로 저장할 수 있다.
Flutter Applications
await Hive.initFlutter();
Non Flutter Applications
await Hive.init();
main()
void main() async {
await Hive.initFlutter();
runApp(const MyApp());
}
hive 사용 시 알아두어야 하는 개념이다. 데이터를 저장하는 하나의 공간을 box라고 부른다.
box에 값을 저장하고 box에서 가져온다. 관계형 데이터베이스로 비유하자면 Table이라고 할 수 있다.
Hive.openBox("person");
Box box = Hive.box("person");
box.put("name", "tyger");
Box box = Hive.box("person");
box.addAll([
{
"name": "tyger",
"age": 20,
},
{
"name": "tyger1",
"age": 30,
},
{
"name": "tyger2",
"age": 40,
},
]);
print(box.values);
print(box.getAt(2));
// ({name: tyger, age: 20}, {name: tyger1, age: 30}, {name: tyger2, age: 40})
// {name: tyger2, age: 40}
Hive를 사용해 어플리케이션의 설정값들을 Local에 저장 해놓도록 구현을 해봤다.
앱을 종료하고 다시 실행해도, 사용자 로컬 Hive에 저장되어 있는 설정 값을 가져와 사용하도록 말이다.
enum, class 등 커스텀 타입을 Hive로 저장하려면 TypeAdapter 를 등록해주어야 한다.
import 'package:hive/hive.dart';
part 'stopwatch_type.g.dart';
@HiveType(typeId: 1)
enum StopwatchType{
@HiveField(0)
INIT,
@HiveField(1)
START,
@HiveField(2)
STOP,
@HiveField(3)
DONE,
}
flutter pub run build_runner build
사용하려면 반드시 TypeAdapter를 등록해주어야 한다.
void main(){
await Hive.initFlutter();
Hive.registerAdapter(StopwatchTypeAdapter());
}
안녕하세요. Red, Green, Blue 가 만나 새로운 세상을 만들어 나가겠다는 이상을 가진 개발자의 개인공간입니다.
현재글에서 작성자가 발행한 같은 카테고리내 이전, 다음 글들을 보여줍니다
@senspond
>