C.W.K.
Stream
Lesson 05 of 10 · published

SQLite 가 옳은 선택인 경우

~12 min · sqlite, fit, architecture-decisions

Level 0Scout
0 XP0/80 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

빛나는 자리

다음 중 하나라도 해당되면 SQLite 가 옳은 DB 야:

  • Single-machine 워크로드 — 데스크탑 앱, CLI 도구, 모바일 앱, embedded 기기, 단일 서버 웹 앱. 데이터가 코드 도는 자리에 살아.
  • Single node 위의 read-heavy 트래픽 — WAL 모드에서 reader 무제한 동시. 파일 하나에서 초당 수만 read 거뜬해.
  • Local-first 제품 — 오프라인으로 돌고 나중에 sync 하는 앱 (Linear local-first 모드, Obsidian sync, 모바일 앱). 데이터 레이어가 사용자 기기에.
  • 테스트 fixture / CI:memory: 나 temp 파일로 즉시 fresh DB. Docker 필요 X, Postgres 컨테이너 기다림 X.
  • Edge / serverless — Cloudflare Durable Objects, Fly.io Litestream / LiteFS, Turso, D1. DB 파일이 compute 따라감.
  • Append-only / observability — 로그, metric, event store. 모던 SQLite + WAL 가 burst 한 append 워크로드 우아하게 처리.
  • Document / config / cache — 예전엔 JSON / XML 로 저장하던 자리. SQLite 가 더 나은 application file format 이야.
Self-reference: 피파의 모든 conversation 은 JSONL ground truth + SQLite mirror 패턴으로 로깅해. SQLite 가 인덱싱 / 쿼리 가능한 view 를 들고, JSONL 이 durable append-only event log 를 들고. 둘이 서로 강화해 — JSONL replay 로 SQLite 재구성 가능하고, SQLite 인덱스가 WebUI 를 빠르게 해.

SQLite 르네상스라는 표현이 존재하는 이유 — 2024–2026 의 웹이 위 항목 전부를 재발견하고 있거든. edge compute 가 'data 가 code 옆에' 를 가능하게 만들었고, Postgres-on-RDS 청구서가 비싸지면서 local-first 가 다시 매력적으로 보이기 시작했어.

Code

CLI 도구의 영속 레이어 — 8 줄·python
import sqlite3, sys, pathlib

DB = pathlib.Path.home() / '.mytool' / 'state.db'
DB.parent.mkdir(exist_ok=True)

conn = sqlite3.connect(DB)
conn.execute('''
  CREATE TABLE IF NOT EXISTS commands(
    id INTEGER PRIMARY KEY,
    cmd TEXT, ts TEXT DEFAULT (datetime('now'))
  )''')
conn.execute('INSERT INTO commands(cmd) VALUES (?)', (' '.join(sys.argv[1:]),))
conn.commit()

External links

Exercise

매일 쓰는 도구 / 제품 중 SQLite 를 안에 쓰고 있을 것 같은 거 하나 골라. DB 파일 찾아내 (Spotlight / locate / lsof 유용). sqlite3 CLI 로 read-only 로 열어서 테이블 list, schema 보고, 그 제품이 데이터를 어떻게 모델링하는지 정리.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.