주머니 노트 vs 서류 사무실
SQLite 는 앱에 link 하는 단일 라이브러리. DB 전체가 디스크 위 파일 한 개. 열기 = 파일 열기. PostgreSQL 은 socket 으로 말 거는 별도 서버 프로세스. 둘 다 자기 자리에선 우수해. 질문은 절대 '뭐가 더 나으냐' 가 아니라 '이 워크로드에 뭐가 맞냐'.
SQLite 가 정답인 때
- 한 번에 한 프로세스가 write (모바일 앱, CLI, single-user 데스크톱 앱).
- 데이터가 앱이랑 같은 머신에 있음.
- 운영 footprint 0 원함 — 서버 시작/보안/백업/업그레이드 없음.
- 서버 안 띄우고 진짜 DB 필요한 테스트 스위트.
PostgreSQL 로 졸업하는 때
- 여러 앱 서버가 동시에 write 필요.
- 복제, point-in-time recovery, hot standby 필요.
- JSONB, full-text search, pgvector, PostGIS, row-level security 가 그림에 들어옴.
- 데이터셋이 몇 GB 넘어가거나 write rate 가 한 대 한계 초과.
마이그레이션은 대부분 무통
SQL 은 거의 portable. 알아둘 차이: SQLite 타입은 dynamic, Postgres 는 strict. SQLite 의 AUTOINCREMENT → GENERATED ALWAYS AS IDENTITY. 날짜 함수 다름. 거의 다 일대일 변환.