가끔 어떤 DB를 사용해야하는지 잘 모르셨죠? 오늘은 SQLite에 대해서 알아보고자 해요.
쉽게 결론부터 말씀드리면,
- 동시성 작업이 만이 없을때
- 하루 10만건 이하의 트래픽이 발생될 때 쓰면 좋습니다.
이제 상세하게 어떨때 쓰면 좋고, 언제 쓰면 안좋은지 살펴볼게요!
이럴때 SQLite를 쓰면 좋아!
- 내장형 애플리케이션 및 장치: SQLite는 간단함과 효율성이 중요한 애플리케이션에 이상적입니다. 모바일 앱, 게임, 휴대용 장치, 소비자 전자제품에서 내부 데이터 저장용으로 널리 사용됩니다.
- 프로토타이핑 및 테스트: SQLite는 설정 및 구성이 용이하여 프로토타이핑이나 테스트 환경에서 사용하기에 훌륭합니다. 필요한 경우 나중에 PostgreSQL이나 MySQL과 같은 더 완전한 기능을 갖춘 데이터베이스 시스템으로 마이그레이션할 수 있습니다.
- 소규모에서 중규모 트래픽 웹사이트: SQLite는 보통 트래픽의 웹사이트에 적합할 수 있으며, 동시 트랜잭션을 효율적으로 처리할 수 있습니다.
- 독립 실행형 소프트웨어: 별도의 데이터베이스 서버나 광범위한 데이터베이스 관리가 필요 없는 애플리케이션에 SQLite를 사용할 수 있습니다. 최대 281테라바이트 크기의 데이터베이스를 지원하여 대부분의 애플리케이션에 충분합니다.
- 데스크탑 애플리케이션의 로컬 저장소: 사용자 데이터, 애플리케이션 상태, 설정 등을 저장하는 데 사용됩니다. 통합하기 쉽고 사용자가 별도의 데이터베이스 서버를 관리할 필요가 없습니다.
- 교육 및 훈련: SQLite는 서버 기반 데이터베이스의 복잡함 없이 SQL 데이터베이스 개념을 가르치기에 우수한 도구입니다.
- 저-중등 트래픽의 서버 측 데이터베이스(10만건 이하): SQLite는 복잡한 설정이 필요 없는 관계형 데이터베이스 관리 시스템의 모든 기능이 필요하지 않은 서버 측 애플리케이션의 데이터 저장 솔루션으로 사용될 수 있습니다.
이럴때는 SQLite를 쓰면 안돼!
- 높은 동시성 요구: SQLite는 동시에 많은 수의 사용자가 데이터베이스에 접근하는 경우에는 적합하지 않습니다. 여러 사용자가 동시에 쓰기 작업을 수행할 경우 성능 문제가 발생할 수 있습니다.
- 대용량 트랜잭션 처리: 많은 양의 복잡한 쿼리와 트랜잭션을 지속적으로 처리해야 하는 대규모 애플리케이션에는 SQLite보다 MySQL이나 PostgreSQL과 같은 더 강력한 관계형 데이터베이스 관리 시스템(RDBMS)을 사용하는 것이 더 적합할 수 있습니다.
- 고급 데이터베이스 기능 필요: SQLite는 비교적 간단한 SQL 기능을 제공합니다. 외래 키 제약조건과 같은 고급 데이터베이스 기능이 필요한 경우, 더 발전된 데이터베이스 시스템이 필요할 수 있습니다.
- 쓰기 중심의 애플리케이션: SQLite는 동시 쓰기 작업에 제한적입니다. 쓰기 작업이 많은 애플리케이션에서는 데이터베이스 잠금이 발생하여 성능 저하를 일으킬 수 있습니다.
- 분산 시스템 및 확장성: SQLite는 네트워크를 통한 분산 처리를 지원하지 않으며, 대규모로 확장하는 데에는 제한이 있습니다. 클라우드 기반의 애플리케이션 또는 대규모 데이터를 처리해야 하는 경우 다른 데이터베이스 솔루션을 고려하는 것이 좋습니다.