SQLite가 웹 애플리케이션에서 새롭게 주목받고 있다. Turso, LiteStream, Litestack 같은 프로젝트가 SQLite를 프로덕션 환경에서 사용할 수 있게 만들고 있다. 왜 이런 움직임이 있을까?
장점이 뚜렷하다. 설정이 필요 없다. 서버를 띄울 필요도 없다. 파일 하나가 데이터베이스다. 네트워크 왕복이 없어서 읽기 속도가 빠르다. 복잡성이 크게 줄어든다.
새로운 패턴들
Litestack은 Rails 애플리케이션에서 PostgreSQL, Redis, Sidekiq을 모두 SQLite로 대체한다. 하나의 파일로 데이터베이스, 캐시, 큐를 처리한다. 인프라 복잡성이 극적으로 줄어든다.
Turso는 SQLite를 엣지에 배포한다. 전 세계 엣지 로케이션에 읽기 전용 복제본을 둔다. 사용자와 가까운 곳에서 데이터를 읽어 지연 시간을 줄인다. 쓰기는 중앙 리더로 라우팅된다.
언제 적합한가
읽기가 많은 애플리케이션에 적합하다. 블로그, CMS, 분석 대시보드 같은 경우다. 단일 서버나 서버리스 환경에서 잘 작동한다. 복잡한 인프라 없이 빠르게 시작할 수 있다.
하지만 다중 리전 쓰기가 필요하거나 동시 쓰기가 많다면 전통적인 데이터베이스가 낫다. SQLite의 쓰기 락은 동시성에 제한을 준다. 대규모 트래픽에서는 PostgreSQL이나 MySQL이 더 적합하다.
결론
SQLite는 작은 것이 아름답다는 것을 보여준다. 과잉 엔지니어링을 피하고 단순함으로 시작하자. 필요할 때 확장하면 된다. 많은 애플리케이션에서 SQLite로 충분하다.