@senspond

>

개발>모바일

flutter 에서 Hive Dart (NoSQL) 사용하기

등록일시 : 2024-08-07 (수) 10:51
업데이트 : 2024-08-15 (목) 05:09
오늘 조회수 : 4
총 조회수 : 182

    flutter 에서 Hive Dart (NoSQL) 사용하기


    Hive

    이 글에서 다루는 Hive Dart는 Apache Hive랑 전혀 다른 것이다.


    Hive Dart는 Flutter, Dart 환경에서 사용할 수 있는 NoSQL 데이터베이스이다.



    Hive Dart

    Hive Dart는 Flutter 또는 Dart 언어에서 사용할 수 있는 경량, 빠른, 반응형 NoSQL 데이터베이스입니다. 플랫폼에 독립적이며, Dart VM 환경에서 작동합니다. Key-value 스토리지 형식을 지원하여 데이터를 효율적으로 저장하고 액세스 할 수 있습니다.


    Apache Hive

    Apache Hive는 Hadoop에서 동작하는 데이터 웨어하우스 인프라입니다. 대용량 데이터 집합을 쿼리해 분석할 수 있으며, SQL과 유사한 질의 언어(HiveQL)를 제공합니다. Apache Hive는 관계형 데이터베이스 관리 시스템(RDBMS)처럼 구조화된 데이터를 저장하고 처리하는데 주로 사용됩니다.



    fultter에서 hive 사용하기

    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로 저장할 수 있다.


    Initalization

    Flutter Applications

    await Hive.initFlutter();

    Non Flutter Applications

    await Hive.init();

    main()

    void main() async {
      await Hive.initFlutter();
      runApp(const MyApp());
    }


    openBox

    hive 사용 시 알아두어야 하는 개념이다. 데이터를 저장하는 하나의 공간을 box라고 부른다.

    box에 값을 저장하고 box에서 가져온다. 관계형 데이터베이스로 비유하자면 Table이라고 할 수 있다.


    Hive.openBox("person");
    Box box = Hive.box("person");
    box.put("name", "tyger");


    example


    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에 저장되어 있는 설정 값을 가져와 사용하도록 말이다.





    Custom Type

    enum, class 등 커스텀 타입을 Hive로 저장하려면 TypeAdapter 를 등록해주어야 한다.


    import 'package:hive/hive.dart';
    
    part 'stopwatch_type.g.dart';
    
    (typeId: 1)
    enum StopwatchType{
      (0)
      INIT,
      (1)
      START,
      (2)
      STOP,
      (3)
      DONE,
    }

    flutter pub run build_runner build





    사용하려면 반드시 TypeAdapter를 등록해주어야 한다.

    void main(){
      await Hive.initFlutter();
      Hive.registerAdapter(StopwatchTypeAdapter());
    }

    Ref


    senspond

    안녕하세요. Red, Green, Blue 가 만나 새로운 세상을 만들어 나가겠다는 이상을 가진 개발자의 개인공간입니다.

    댓글 ( 0 )

    카테고리내 관련 게시글

    현재글에서 작성자가 발행한 같은 카테고리내 이전, 다음 글들을 보여줍니다

    @senspond

    >

    개발>모바일

    • Flutter에서 수학 수식 표기하는 방법, 어떤 오픈소스 라이브러리를 써야 할까?

      Flutter에서 수학 수식 표기하는 방법, 어떤 오픈소스 라이브러리를 써야 할까? 에 대해서 사용해 본 오픈소스 라이브러리들을 비교 분석해서 정리해본 글입니다.
        2024-08-28 (수) 03:50
      1. Flutter 네이티브 플러그인 만들고 외부 프로젝트에서 사용하기

        Flutter에서 MethodChannel은 Flutter 프레임워크와 네이티브 플랫폼(Android 또는 iOS) 간의 통신을 가능하게 하는 메커니즘입니다. 이 기능을 통해 Flutter 애플리케이션은 Dart 코드에서 Kotlin, Java, Swift 또는 Objective-C와 같은 네이티브 코드로 작성된 플랫폼별 기능을 호출할 수 있습니다.
          2024-08-15 (목) 12:21
        1. [현재글] flutter 에서 Hive Dart (NoSQL) 사용하기

          flutter 에서 Hive Dart (NoSQL) 사용하기
            2024-08-07 (수) 10:51
          1. Flutter 모바일 앱 개발 envied 로 안전하게 .env 파일로 환경변수 설정하기

            Flutter 모바일 앱 개발 envied 로 안전하게 .env 파일로 환경변수 설정하기
              2024-08-02 (금) 12:42
            1. Flutter 의 위젯에 대한 개념과 StatefulWidget 생명주기, 컨트롤러, 빌더

              Flutter 의 위젯에 대한 개념과 StatefulWidget 생명주기, 컨트롤러, 빌더에 대해서 정리해 본 글입니다.
                2024-08-03 (토) 03:58