서버리스는 거짓말이지만 SQLite는 예외
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인프라/DevOps/보안
대상자
- 소프트웨어 개발자 (백엔드, DevOps, 인프라 설계자)
- SaaS 제품 매니저 (데이터베이스 선택 전략 수립)
- 중급~고급 수준 (인프라 복잡성과 성능 트레이드오프 분석)
핵심 요약
- SQLite는 "정말" 서버리스 데이터베이스 : 파일 기반 운영, 서버/네트워크 없이 작동
- WAL(Write-Ahead Logging) 활성화 시 :
sqlite3
에서 고성능 쓰기 처리 가능 - SaaS 및 내부 도구에 적합 :
Litestream
으로 복제,S3
파일 복사로 백업 가능 - 프로덕션에서의 이점 :
zero infrastructure
설정,no SSL
,no connection pools
관리
섹션별 세부 요약
1. 서버리스의 오해
- "서버리스"는 서버 관리 없이 서비스 사용을 의미함
- Firebase, DynamoDB 등은 서버 추상화만 제공, 실제 서버는 여전히 존재
- SQLite는 서버 없이 파일 기반으로 작동 (TCP, 데몬, 소켓 없음)
2. SQLite의 핵심 특징
- 단일 파일 데이터베이스 : 로컬 개발 시 별도 서버 구축 필요 없음
- 복잡한 설정 없음 : 사용자 생성, SSL 설정, 백업 작업 등 생략 가능
- 프로덕션 배포 시 간단한 백업 :
S3
에 파일 업로드만으로 완료 가능
3. 현대 SaaS 아키텍처와의 호환성
- CRUD 대시보드, 분석 대시보드 등 대부분의 SaaS는 읽기 중심 작업
- SQLite의 WAL 모드 : 쓰기 성능 향상,
sqlite3
에서 동시 쓰기 처리 가능 - 사용 사례 :
- 내부 도구 및 대시보드
- 클라우드 기반 앱 (Cloudflare, Fly.io)
- 브라우저 확장 프로그램
4. SQLite의 장점 요약
- 즉시 설정 : 개발/스테이징 환경 문제 없음
- 간단한 백업 : 파일 복사로 완료
- 확장성 :
Litestream
으로 리플리카 생성,S3
에 매일 내보내기 가능
결론
- SQLite는 서버리스 개념의 최초 실현 : 인프라 복잡성을 줄이고, "zero setup"의 데이터베이스로 시작
- WAL 모드 활성화는 성능 향상 핵심,
sqlite3
에서PRAGMA journal_mode = WAL;
설정 필수 - SaaS 제품 초기 개발 시 SQLite를 기본 선택, 이후 Postgres로 이전 가능성 고려
- "서버리스"가 아닌 "인프라 없는" 서버리스 개념을 재정의하는 사례로 활용 권장