SQLite, 서버리스 데이터베이스의 예외적인 선택

서버리스는 거짓말이지만 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로 이전 가능성 고려
  • "서버리스"가 아닌 "인프라 없는" 서버리스 개념을 재정의하는 사례로 활용 권장