# 로컬 DB

## Hive

Hive는 Flutter 앱에서 로컬 데이터베이스를 구축하고 관리하기 위한 효율적인 패키지로, 사용자가 Hive 데이터베이스와 상호 작용할 수 있는 사용자 인터페이스를 제공합니다 Hive 가이드를 참고하여 로컬 데이터를 저장, 검색, 업데이트 및 삭제할 수 있습니다.&#x20;

#### 초기 설정

Hive를 사용하기 전에 앱에서 Hive를 초기화해야 합니다. 이를 위해 `main.dart` 파일에서 다음 초기화 코드를 추가해야 합니다.

```dart
Future<void> main() async {
  // 다른 초기화 작업 수행
  await Hive.initFlutter();
  await Hive.openBox('${your dbTitle}');
  // 필요한 초기화 작업 수행
}
```

#### Hive 데이터베이스&#x20;

**1. 데이터 입력**

Hive 데이터베이스 작업을 수행하기 위해 다음 입력 필드를 채워야 합니다.

* **Hive database key**

<figure><img src="https://2113601596-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQwN4pCJIiPfU3rtbboz1%2Fuploads%2Fp4xk0BlrcC7GIZXbCG4P%2Fimage.png?alt=media&#x26;token=6326259e-5393-4779-8d37-17238f3d9ebc" alt=""><figcaption></figcaption></figure>

: 데이터베이스에서 사용할 고유한 키를 입력합니다. 이것은 숫자여야 합니다.

* **Hive database value**

<figure><img src="https://2113601596-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQwN4pCJIiPfU3rtbboz1%2Fuploads%2Fm89zJOmKYsJFe153CSx6%2Fimage.png?alt=media&#x26;token=240f089b-e6da-4bc4-be9b-20143de61e7a" alt=""><figcaption></figcaption></figure>

: 데이터베이스에 저장할 값을 입력합니다.

**2. 데이터베이스 작업 버튼**

다양한 데이터베이스 작업을 수행할 버튼이 제공됩니다.

* **Hive get (key 값 입력)**

```dart
FlutterHive().getBox(dbTitle: 'tutorial', dbKey: hiveKey!);
```

: 입력한 key 값에 해당하는 value를 검색합니다.

* **Hive add (value 값 입력)**

```dart
FlutterHive().addBox(dbTitle: 'tutorial', dbValue: hiveValue!);
```

: 새로운 value를 추가하며, key 값은 마지막 key 값 다음으로 자동 지정됩니다.

* **Hive put (key, value 값 입력)**

```dart
FlutterHive().putBox(
                      dbTitle: 'tutorial',
                      dbKey: hiveKey!,
                      dbValue: hiveValue!);
```

: 특정 key 값에 value를 추가하거나 업데이트합니다.

* **Hive delete (key 값 입력)**

```dart
FlutterHive().deleteBox(dbTitle: 'tutorial', dbKey: hiveKey!);
```

: 입력한 key에 해당하는 value를 삭제합니다.

* **Hive delete all (key 값 입력)**

```dart
FlutterHive()
                      .deleteAllBox(dbTitle: 'tutorial', dbKeys: [hiveKey!]);
```

: 여러 개의 key 값을 가진 항목을 삭제합니다.

* **Hive clear (key 값 입력)**

```dart
 FlutterHive().clearBox(dbTitle: 'tutorial');
```

: 데이터베이스의 모든 key와 value를 삭제합니다.

Hive를 사용하여 Flutter 앱에서 로컬 데이터베이스를 설정하고 데이터를 관리하는 방법을 소개했습니다. Hive를 사용하면 데이터를 효율적으로 저장하고 검색할 수 있으며, 간단한 구현을 통해 로컬 데이터베이스를 구축할 수 있습니다. Hive를 활용하여 데이터를 지속적으로 유지하고 관리하세요.

## SQLite

SQLite는 모바일 앱에서 로컬 데이터베이스를 구현하는 데 사용되는 경량 데이터베이스 엔진으로서, 사용자에게 입력 필드와 버튼을 제공하여 SQLite 데이터베이스와 상호 작용할 수 있는 사용자 인터페이스를 제공합니다. SQLite 가이드를 참고하여 Flutter 앱에서 SQLite를 사용하여 로컬 데이터베이스를 설정하고 데이터를 추가, 조회, 업데이트 및 삭제할 수 있습니다.

#### 초기 설정

먼저 앱에서 SQLite를 사용하려면 SQLite 패키지를 초기화해야 합니다. 아래와 같이 `main.dart` 파일에서 초기화 코드를 추가합니다:

```dart
Future<void> main() async {
  // 다른 초기화 작업 수행
  // SQLite 초기화
}
```

#### SQLite 데이터베이스

**1. 데이터 입력**

먼저 SQLite 데이터베이스 작업을 수행하기 위해 다음 입력 필드를 채워야 합니다.

* **id**

<figure><img src="https://2113601596-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQwN4pCJIiPfU3rtbboz1%2Fuploads%2Fra065YHIRC9ZGekCOusp%2Fimage.png?alt=media&#x26;token=e04061f5-3d73-4f2e-b85f-86660587c696" alt=""><figcaption></figcaption></figure>

: 데이터베이스 레코드의 고유 ID를 입력합니다. 이것은 숫자여야 합니다.

* **name**

<figure><img src="https://2113601596-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQwN4pCJIiPfU3rtbboz1%2Fuploads%2F81B08RqCh9Ky6KcZNLbT%2Fimage.png?alt=media&#x26;token=780b03a1-ebaa-4287-8293-05cfaf88093e" alt=""><figcaption></figcaption></figure>

: 레코드에 연결할 이름을 입력합니다.

* **age**

<figure><img src="https://2113601596-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQwN4pCJIiPfU3rtbboz1%2Fuploads%2FNtzHQb6N0CsETRri4ps2%2Fimage.png?alt=media&#x26;token=68d81a62-299c-4303-9226-a3928d2682b0" alt=""><figcaption></figcaption></figure>

: 레코드의 연령을 입력합니다. 또한 숫자여야 합니다.

**2. 데이터베이스 작업 버튼**

아래에는 다양한 데이터베이스 작업을 수행할 버튼이 있습니다.

* **CREATE (id, name, age 값 입력)**

```dart
 FlutterSqlite().create(
                        id: sqliteId!, name: sqliteName!, age: sqliteAge!);
```

: 입력한 id, name 및 age 값에 기반하여 데이터베이스에 레코드를 만듭니다.

* **SELECT ID (id 값 입력)**

```dart
 FlutterSqlite().read(id: sqliteId!);
```

: 입력한 id에 해당하는 레코드의 name과 age 값을 조회합니다.

* **SELECT ALL**

```dart
FlutterSqlite().readAll();
```

: 데이터베이스에 저장된 모든 레코드를 조회합니다.

* **DELETE (id 값 입력)**

```dart
 FlutterSqlite().delete(id: sqliteId!);
```

: 입력한 id에 해당하는 레코드를 삭제합니다.

이렇게 각 버튼을 사용하여 SQLite 데이터베이스 작업을 수행할 수 있습니다.

SQLite를 사용하여 Flutter 앱에서 로컬 데이터베이스를 설정하고 관리하는 방법을 소개했습니다. 이것은 모바일 앱에서 데이터를 지속적으로 저장하고 검색하는 데 매우 유용한 도구입니다. SQLite를 사용하면 간단하게 로컬 데이터베이스를 구축하고 데이터를 유지 관리할 수 있습니다.

<br>
