모든 것을 위한 SQLite

2 hours ago 2

SQLite는 내장형 데이터베이스를 넘어 관계형 DB와 전문 검색, 문서 저장소·캐시·벡터 인덱스·파일 형식까지 하나의 라이브러리와 파일로 통합할 수 있음 2000년 처음 출시된 뒤 MC/DC 100% 분기 커버리지, 라이브러리 코드의 약 500배에 달하는 테스트 코드, 2050년까지의 지원 약속과 퍼블릭 도메인 배포를 갖춤 FTS5, JSON·jsonb, WAL, 재귀 CTE, sqlite-vec를 활용하면 Solr·Elasticsearch, MongoDB, 메시지 큐, Redis, 벡터·그래프 DB가 맡던 여러 작업을 처리할 수 있음 단일 쓰기와 단일 머신이라는 한계가 있어 초당 수만 건의 큐 입력이나 초당 100만 개의 시계열 포인트를 다루는 규모에는 전문 시스템이 적합함 애플리케이션 프로세스 안에서 함수 호출로 동작해 배포·네트워크·동기화·운영 부담을 줄이고, 실제 한계에 도달한 뒤 PostgreSQL이나 Kafka로 이전할 수 있음 검증된 안정성과 장기 지원 SQLite는 2000년에 처음 출시됐으며 휴대전화, 브라우저, 자동차, 항공기 등에 포함된 광범위하게 배포된 데이터베이스 엔진임 테스트 스위트는 항공전자 소프트웨어에도 적용되는 MC/DC 기준 100% 분기 커버리지를 갖추고, 테스트 코드는 라이브러리 코드보다 약 500배 많음 프로젝트는 2050년까지 지원하겠다고 약속함 오픈소스 라이선스가 아닌 퍼블릭 도메인이어서 라이선스, CLA, 저작자 표시 조항이 없음 오래된 기술이지만 윈도 함수, RETURNING, strict table, generated column, jsonb 같은 기능을 계속 추가하며 릴리스마다 작고 검증된 하위 호환 개선을 제공함 간단한 설치·테스트와 수직 확장 SQLite는 주요 Linux 배포판과 Python, Ruby, PHP, Go, Rust, .NET, Android, iOS에 포함되며 macOS에도 기본 설치돼 있음 테스트에서는 :memory:를 사용해 각 테스트마다 프로덕션과 동일한 라이브러리 기반 데이터베이스를 수 마이크로초 안에 생성할 수 있음 Docker 데몬이나 포트가 필요하지 않으며 병렬 테스트에서도 포트 충돌이 없음 테스트 대상과 배포 대상은 같은 바이너리에 컴파일된 동일한 라이브러리임 수직 확장에서는 최신 NVMe와 128GB RAM을 활용하고 네트워크 왕복 대신 함수 호출로 접근하므로 연결 풀, TLS 핸드셰이크, pgbouncer가 필요하지 않음 복...

Read Entire Article