❮
[flutter] Moor 데이터베이스 - (1) 소개
20200501
플러터에서 사용하는 sqlite 플러그인은 2가지가 있는데
pub.dev 에서 예제 코드를 보면 알겠지만 sqflite 는 일반적인 SQL문을 사용하고
moor 는 다트스러운 문법을 사용한다.
여기서는 moor를 사용한다.
둘 다 sqlite를 백엔드로 사용하는 것이기 때문에 결과적으로 큰 차이는 없고 편한 쪽을 사용하면 된다.
덧붙이자면, moor가 더 유리하다고 생각되는 건 sqflite로 할 수 있는 것들은 대부분 moor에서도 할 수 있고
moor에서 할 수 있는 것들 중에서 sqflite 에서는 못하는 것들이 많기 때문이다.
moor에서는 자동 코드 생성도 알차게 해주며, dart, sql 두 가지 쿼리 작성을 지원하고 있다.
이 둘은 일종의 상위호환 관계에 있다고 볼 수 있다.
하지만, 기능이 많다는 것이 좋은 것만은 아니다. 플러그인이 간결하다는 것은 그 자체로도 매우 큰 강점이다.
그러니 취향껏 고르면 된다.
그리고 이것저것 귀찮고 간단하게 사용하고 싶다면 sqlite를 벗어나
hive 라는 좋은 nosql 데이터베이스 플러그인이 있다.
5000레코드 미만의 데이터베이스이고 복잡한 sql 쿼리가 필요없다면 hive가 sqlite 보다 훨씬 좋은 선택이 될 수 있다.
pubspec에 의존성 추가
플러그인을 쓰려면 라이브러리 의존성부터 추가해야한다.
이전 버전에서는 moor_flutter 플러그인을 사용할 것을 권장했지만
최신 버전에서는 moor 와 moor_ffi 를 사용할 것을 권장하고 있다.
그리고 db를 저장할 위치를 지정할 path, path_provider 를 사용한다.
dev_dependency 에는 쿼리 코드를 생성해줄 moor_generator 를 사용한다.
moor: # use the latest version
moor_ffi: # use the latest version
moor_generator: # use the latest version
moor 데이터베이스를 만드는 과정은 3단계로 나눌 수 있다.
- 스키마 작성
- build 를 이용한 자동 코드 생성
- 나머지 쿼리 작성