NeDB, alternative SQLite for node.js

687474703a2f2f692e696d6775722e636f6d2f394f31784846622e706e67.png


 

보통 가벼운 데이터베이스가 필요할 때에는 SQLite를 주로 써왔다. 안드로이드 개발할 때 써본 것을 시작으로 SQL을 아예 안 써본 수준은 아니니까 약간 번거롭더라도 씨-퀄-라이트를 사용했었는데, 최근에 (일렉트론으로 프로젝트를 진행하면서) Node.js로 대부분의 코드를 작성하다보니 MongoDB가 그리워졌다.

그냥 그리워만 하고 있던 나는, electron-vue의 공식 문서를 읽다가 다음과 같은  특징을 갖는 NeDB를 발견했다.

  1. 파일 하나로 저장됨. 내가 원하던 경량 디비의 특성
  2. 몽고디비의 API의 서브셋을 지원함. 몽고디비를 다루던 그 감각으로 대부분의 작업을 수행 가능.
  3. 파일에서 읽어올 때, 다시 쓸 때 암호화 / 복호화 기능을 지원
  4. 나름 인덱스 넣어 유일성과 성능 튜닝 가능
  5. nedb-promise 레포에서는 callback 스타일의 그것을 Promise로 감싸 await으로 사용가능
  6. 마지막 업데이트가 2016년 5월 21일이지만 잘 작동함.
  7. 깃헙 레포 README의 첫 문단은 다음과 같음.
    Embedded persistent or in memory database for Node.js, nw.js, Electron and browsers, 100% JavaScript, no binary dependency. API is a subset of MongoDB’s and it’s plenty fast.

소개에 써있듯, 꽤 빠르다고 하고, 애초에 엄청나게 헤비한 작업을 하려는 욕심이 없었으니, 속도에 있어서는 아주 만족함. 그저 제품번호를 저장하거나, 유저 아이디정도를 기억하고, 환경설정 정도를 저장하는데 있어서는 전혀 부족함이 없고, 이런 용도에 Mongo, Maria같은 본격 데이터베이스를 쓰는게 오히려 오버 엔지니어링 아닐까. 고작 이런 용도에 CREATE TABLE를 타이핑하게 만들던 SQLite보다 더 좋다!

Leave a Reply