피드로 돌아가기
Dev.toDatabase
원문 읽기
node:sqlite 전환을 통한 Supply-chain Risk 제거 및 의존성 최적화
llm-cli-gateway 2.0.0: the quiet supply-chain release that matters
AI 요약
Context
better-sqlite3 사용으로 인한 prebuild-install, tar-fs 등 복잡한 네이티브 모듈 설치 경로가 Supply-chain 보안 취약점 및 설치 시점의 리스크로 작용함. 단순한 DB 교체가 아닌 설치 프로세스 전반의 불확실성을 제거해야 하는 상황이었음.
Technical Solution
- Node.js 24.4.0+ 내장 node:sqlite 채택을 통한 외부 네이티브 바인딩 의존성 완전 제거
- 단일 Adapter 패턴(src/sqlite-driver.ts) 도입으로 Persistence 레이어의 경계를 명확히 정의하고 검토 가능성 확보
- Named Parameter 바인딩 기능을 활용한 SQL Placeholder 매핑으로 데이터 정밀도 유지
- SQLite 엔진 레벨의 SQLITE_READONLY 강제를 통해 Read-only 연결의 무결성 보장
- VACUUM 및 VACUUM INTO 명령어를 Adapter 수준에서 차단하여 Read-only 커넥션의 쓰기 우회 경로 차단
- Cross-engine WAL crash-recovery fixture 구축을 통한 better-sqlite3와 node:sqlite 간 데이터 호환성 검증
실천 포인트
1. 네이티브 모듈 의존성 제거를 위한 최신 런타임 내장 API 검토
2. DB Read-only 설정 시 엔진 레벨 제약 외에 Adapter 수준의 명령어 화이트리스트 검증 적용
3. 엔진 교체 시 단순 스키마 비교가 아닌 실제 데이터 마이그레이션 및 롤백 테스트 케이스 확보
4. 의존성 그래프 축소를 통한 Supply-chain Attack 표면적 최소화