SQL (Structured Query Language)
데이터 구조
정형 데이터를 다루는 데에 최적화되어 있다
데이터 스키마를 미리 정의하고, 데이터의 구조가 고정되어 있다
데이터 일관성
ACID (원자성, 일관성, 고립성, 지속성) 트랜잭션을 지원하여 데이터 일관성을 보장한다
이는 데이터의 무결성을 유지하는 데 도움이 된다
스케일링
수직 스케일링이 주로 사용되며, 서버를 업그레이드하여 성능을 향상시킨다
수평 스케일링은 더 복잡하고 비용이 많이 든다
쿼리 언어
SQL 쿼리 언어를 사용하여 데이터를 조작하며, 다양한 조인 및 집계 작업을 수행할 수 있다
NoSQL (Not Only SQL)
데이터 구조
다양한 데이터 형식을 다룰 수 있으며, 스키마가 유연하다
데이터 구조를 나중에 변경할 수 있다
데이터 일관성
일관성 모델을 선택할 수 있으며, 일관성이 상대적으로 유연하다
ACID 트랜잭션을 지원하지 않는 경우도 있다
스케일링
수평 스케일링이 주로 사용되며, 데이터베이스 클러스터를 추가하여 스케일 아웃할 수 있다
-> 대량의 데이터를 처리할 때 유용하다
쿼리 언어
다양한 NoSQL 데이터베이스가 서로 다른 쿼리 언어를 사용한다
일부는 SQL과 유사한 쿼리 언어를 제공하지만, 다른 것들은 고유한 쿼리 언어를 가지고 있다
Hive (Dart 언어로 개발된 경량 NoSQL 데이터베이스)
Flutter 앱에서 사용하기에 적합한 경량 NoSQL 데이터베이스다
키-값(key-value) 쌍으로 데이터를 저장하며, 데이터 모델을 사용자 정의할 수 있다
빠른 속도와 낮은 오버헤드를 제공하며, 모바일 앱과 같은 경량 환경에서도 잘 작동한다
오프라인 데이터 저장 및 동기화를 지원하여 Flutter 앱의 데이터 관리를 용이하게 한다
Dart 언어로 개발되어 Flutter와 시스템 간에 원활한 통합을 제공한다
void main() async {
await Hive.initFlutter();
await Hive.openBox(testBox);
'CS > Flutter | Dart' 카테고리의 다른 글
Tab bar, DefaultTabController, Bottom Navigation Bar (0) | 2023.09.11 |
---|---|
미세먼지 측정 앱 #2 - Hive (19) | 2023.09.07 |
HTTP, REST API, RESTful API (2) | 2023.08.29 |
미세먼지 측정 앱 #1 - 레이아웃 (0) | 2023.08.29 |
RefreshIndicator (9) | 2023.08.27 |