• Hive

    공식 홈페이지

    Hive Docs

    pub.dev 페이지

    hive | Dart Package

    공식 라이브러리 페이지 설명에 따르면 Hive의 장점은 다음과 같다.

    • 모바일, 데스크탑, 브라우저에서 전부 사용할 수 있는 크로스 플랫폼 데이터베이스

    • NoSQL

    • 간단하고 강력하면서 직관적인 API

    • 강력한 암호화 내장

    • 네이티브 의존성 없음

    • Batteries included

      • 전자제품에서 배터리 동봉이라는 뜻으로, 외부 라이브러리 의존성 없이 단독으로도 완전한 기능을 활용할 수 있다는 의미이다. 스탠드얼론과 뜻이 비슷하다.
      • 반례로, retrofit 라이브러리의 경우, 이 라이브러리를 이용하기 위해서 dio를 반드시 같이 설치해줘야 한다.
    • 뛰어난 성능

      각 데이터베이스 서로 다른 목적으로 만들어졌기 때문에 객관적인 비교가 힘드며, 따라서 참고로만 봐야한다.

      각 데이터베이스 서로 다른 목적으로 만들어졌기 때문에 객관적인 비교가 힘드며, 따라서 참고로만 봐야한다.

    • 다만, 하이브는 모든걸 메모리에 적재하여 실행하는 식으로 속도를 챙기기 때문에 일정 규모 이상의 대용량 데이터의 경우 메모리 부족 현상이 일어날 수 있으며, Isolate를 지원하지 않아 모든걸 메인 쓰레드에서 처리하기 때문에 이런 부분도 고려해야 한다.

  • Isar

    Hive 로컬 DB 제작자가 만든 후속 로컬 DB

    Home | Isar Database

    isar | Dart Package

    튜토리얼

    isar-db-tutorial

  • SharedPreferences

    shared_preferences | Flutter Package

  • SQFlite

    sqflite | Flutter Package

    • SQLite를 플러터에 사용하기 위해 만들어진 플러그인이다.
    • 안드로이드, iOS, MacOS를 지원한다.
    • 리눅스, 윈도우, DartVM에 사용하려면 sqflite_common_ffi 를 이용해야 한다.
    • 웹에서 사용하려면 sqflite_common_ffi_web 을 이용해야 한다.
    • 장점
      • 관계형 데이터 베이스(RDBMS)
      • 로컬 파일 기반 DB로 서버, 네트워크 비용 걱정 없음
      • 데이터 휘발 위험 없음
      • 트랜잭션/배치 지원
      • 쿼리 지원
    • 단점
      • 상대적으로 느린 속도
      • 스키마, 로우쿼리 사용시 리터럴 사용(오탈자 발생)
  • Drift

    drift | Dart Package

    • SQLite 기반으로 추가 기능과 편의성을 증진시키고자 만들어진 wrapper 플러그인