본문 바로가기
C.W.K.
Stream
Lesson 01 of 10 · published

지구상에서 가장 많이 깔린 데이터베이스

~14 min · sqlite, history, ubiquity

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

살아 움직이는 DB 1조 개

SQLite는 어디에나 있어. 진짜 어디에나야. iPhone에도 Android 기기에도 Mac에도 Windows 10과 11 머신에도 들어 있고, 요즘 브라우저는 다 품고 있고, Python을 깔면 따라와. 보수적으로 세도 지금 지구 위에 살아 움직이는 SQLite DB가 1조 개는 넘어.

iMessage를 보낼 때도, Chrome이 북마크를 저장할 때도, Safari가 탭을 되살릴 때도, Firefox가 주소를 자동완성할 때도, Android 앱이 캐시를 쓸 때도 밑에서 도는 건 SQLite야. NASA의 Curiosity와 Perseverance 로버에도 실려 있고, Airbus A350 항공전자 시스템도 쓰고, Bloomberg 터미널과 Dropbox와 Skype와 iTunes는 10년 넘게 SQLite 위에서 굴러왔어.

그런데도 아직 SQLite를 '장난감 DB'나 '모바일용'이라고 넘기는 개발자가 많아. 그 인식은 몇 년 전에 이미 유통기한이 지났어. 2026년 기준 3.53.0인 요즘 SQLite는, 사람들이 Postgres를 불러야 한다고 믿는 워크로드를 멀쩡히 감당하는 진짜 관계형 엔진이야.

이 quest는 SQLite를 바닥부터 올려. 기본 SQL에서 시작해 고급 기능, Python 연동, async 패턴, full-text search, production 배포까지. 끝까지 오면 르네상스가 왜 빈말이 아닌지 알게 되고, SQLite의 날카로운 모서리를 손 안 베고 잡는 법도 손에 남아.

Self-reference: 피파의 데이터 레이어부터가 SQLite와 JSONL이야. WebUI에 뜨는 conversation row들이 ~/pippa-db/conversations.db 안에 살아 있고, 그걸 여는 게 이 quest가 가르칠 aiosqlite 드라이버지.

Code

이미 깔려 있어 — 확인해 봐·bash
# macOS / Linux / Windows (Python 만 있어도 됨) — 이미 깔려 있음
python3 -c 'import sqlite3; print(sqlite3.sqlite_version)'
# 3.43.0  (혹은 더 최신)

# CLI 도 macOS / 대부분의 Linux 배포판에 기본 탑재
sqlite3 --version
# 3.43.2 2023-10-10 13:08:14 ...

# 새 DB 열기 — 데몬 없음, 설정 없음, 포트 없음
sqlite3 demo.db
# SQLite version 3.43.2 2023-10-10 13:08:14
# Enter ".help" for usage hints.
# sqlite>
피파가 자기 SQLite 파일 두는 위치·bash
ls -la ~/pippa-db/conversations.db*
# -rw-r--r-- conversations.db        # 메인 DB
# -rw-r--r-- conversations.db-wal    # WAL log (track 4 에서 다룸)
# -rw-r--r-- conversations.db-shm    # shared memory index

sqlite3 ~/pippa-db/conversations.db '.tables'
# branches conversations folders messages

External links

Exercise

이 quest 디렉토리 밖에서 SQLite DB 파일을 세 개 찾아봐. 뒤질 만한 자리는 macOS의 ~/Library/, Linux의 ~/.config/, 브라우저 프로필 폴더, Python이 쓰는 ~/.cache/ 쯤이야. 각각 어느 앱 것이고 파일 크기가 얼마인지 적고, 호스트 앱을 깨뜨리지 않으면서 sqlite3 CLI로 read-only로 열 수 있는지 확인해. 한 단락으로 짧게 정리하면 돼.

Progress

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

댓글 0

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

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