Node의 SQLite 지원

dev | 2024-07-27

노드(Node)가 22.5.0 버전 부터 node:sqlite 모듈을 지원하기 시작했다. 번(Bun)이 SQLite를 지원해서 쓰고 있었는데 메모리 릭때문에 하루에 한번씩 재시작하고 있었다. 이 기회에 다시 노드로 바꿨다.

node:sqlite는 아직 실험기능이어서 그냥 실행해서는 사용할 수 없고 --experimental-sqlite 플래그를 추가해줘야 한다.

node --experimental-sqlite myapp.js

아스트로(Astro) 개발 서버에 이 옵션을 활성화하려고 여기저기 추가해봤는데 쉽게 되지 않았다. 삽질한 끝에 astro 모듈을 npx로 실행하고 --node-options 플래그로 노드에 전달할 옵션을 추가해서 해결했다.

npx --node-options='--experimental-sqlite' astro dev

API는 거의 비슷해서 수정한 부분은 매우 적었다. Database.queryDatabase.prepare로 바꿔주고 스테이트먼트에 파라메터를 넘겨줄 때 스프레드 구문으로 바꿔준게 다이다. 노드 런타임들도 서로 경쟁을 많이 하게 된 것 같다. 번은 메모리 릭 좀 빨리 고쳤으면 좋겠다.

Comments

Post a comment

:

: 공개 되지 않습니다. Gravatar를 표시 합니다.

:

: HTML 태그를 사용할 수 없습니다.