티스토리 뷰

주의: 예제 코드 따위(!) 없음.


최근 회사 일로 nodejs에서 mysql을 쓰고 있는데, node-mysql로 날코딩 - 특히 connection pooling, validation, pyramid-of-doom - 하는 게 맘에 걸려서 ORM 비슷한 걸 써볼까 궁리질 중...


구글링을 해보니 역시나 비슷한 고민들이 스택에 넘치네...:


메이저한 것들로는:

  • sequelize.js
    • 2.0.0-rc1, active, mysql/maria/postgresql/sqlite
    • mongoose 스타일.
    • 특징: read/write 분리된 커넥션풀. promise 지원. 문서 좋음. CLI 쓸만해보임.
    • 단점: 타이핑이 어려움.. sequelize라니... sequelize라니... sequelize라니... Orz
  • jugglingdb
    • 0.3.0, active, mysql/postgresql/sqlite3/couchdb/mongodb/redis/neo4j+
    • @outsideris 님의 선택
    • 특징: man page 스타일의 문서
    • 단점: man page 스타일의 문서?!
  • bookshelf.js
    • 0.7.7, active, mysql/maria/postgresql/sqlite+
    • 특징: backbone 스타일 모델, promise 지원.
  • node-orm2
    • 2.1.19, active, mysql/maria/postgresql/sqlite/mongdb/redshift+
    • 장점: 이름이 먹어 줌. 모듈 이름이 orm!!! require('orm') orm이라니 orm이라니 orm...
    • 단점: 이름이 평범함. 구글링하기가 너무 힘들어 ㅠ..ㅠ
    • 주의: 구글 검색하면 앞쪽에 나오는 node-orm.readthedocs.org은 무시할 것. 포크하고 2년 묵힌 쓰레기임.
    • 참고: out-of-box promise 지원
  • persistence.js
    • 0.3.0, +6M, mysql/sqlite/websqlstorage(browser)/localstorage(browser)+
    • 특징: 브라우저 지원...ㄷㄷㄷ
    • 예전에 좋은 문서가 있었던거 같은데... 도메인 연장 안했나 봄.


그 외에도 npmjsnodejsmodules를 뒤져보면:

  • waterline
    • 0.10.9, active, mysql/postgresql/mongodb/redis+
  • knex.js
    • 0.6.22, active, mysql/maria/postgresql/sqlite+
  • backbone-sql
    • 0.6.4, active, mysql/postgresql/sqlite
  • lightorm
    • 0.1.3, +8M, mysql+, typescript
  • mysql-orm
    • 0.0.8, +2M, mysql
  • nobatis
    • 0.0.7, +2Y, maria, 내가 2년전에 만들다 버린 프로젝트... 그냥 끼워넣어 봄ㅋ


끝도 없이 나옴...

선택지가 많다는 것은... 뭔가 마땅한 것이 없다는 얘기...


본격적인(?) ORM 중에서는 sequelize.js, bookshelf.js, jugglingdb 그리고 waterline 정도가 가장 활발하게 개발이 이루어지고 있는 듯.


정리해보면:

  1. 오랜만에 nodejs로 mysql을 사용하는데...
  2. @outsideris님의 슬라이드를 보고
  3. jugglingdb를 쳐다보다가...
  4. promise 지원이 없어서...
  5. sequelize.js로 마음이 살짝 기울었다가...
  6. sequelize.js 팀의 셀프 디스 벤치마크를 보고
  7. 마음이 흔들려서...
  8. node-orm2를 다시 거들떠 보다가...
  9. 내가 만들다만 nobatis가 생각나서...
  10. 오랜만에 clone 해서 뜯어고치다가...
  11. 이게 뭐하는 짓인가 싶어서...
  12. 블로그를 글을 쓰고 있음...(이걸 왜 정리하는 거냣?)


(출처: http://blog.daum.net/minyounghung/80)


결론은... 기승전블로그 Orz


may the SQL be with you...

'hacking > nodejs' 카테고리의 다른 글

나의 Node.js 답사기 - date & time 편  (0) 2014.10.04
나의 Node.js 답사기 - job scheduler 편  (0) 2014.10.03
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함