SteadyDrills

SQLite란? 본문

웹개발

SQLite란?

Drills 2024. 11. 13. 00:13

241112

SQLite란?

SQLite는 SQL(Structured Query Language)을 사용하여 데이터베이스를 관리하며, 경량의 파일 기반 데이터베이스 관
리 시스템(DBMS)이다. 단일 파일에 모든 데이터를 저장하며, 서버가 필요 없어 간편하게 사용할 수 있다.

 

 

SQLite의 특징

 

 

 

  1. 서버리스: SQLite는 별도의 서버 프로세스 없이 작동한다. 애플리케이션이 직접 데이터베이스 파일에 접근하여 데이터를 읽고 쓸 수 있다.
  2. 경량: SQLite는 매우 가벼운 라이브러리로, 설치가 간편하고 시스템 자원을 적게 소모한다.
  3. 트랜잭션 지원: ACID(Atomicity, Consistency, Isolation, Durability) 속성을 지원하여 데이터의 무결성을 보장한다.
  4. 크로스 플랫폼: 다양한 운영 체제에서 사용할 수 있으며, 여러 프로그래밍 언어와 호환한다.
  5. 동적 타입 시스템: SQLite는 동적 타입 시스템을 사용한다. 즉, 각 열의 데이터 타입이 엄격하게 정의되지 않으며, 같은 열에 서로 다른 데이터 타입을 저장할 수 있다. 예를 들어, INTEGER 타입의 열에 문자열을 저장하는 것이 가능하다.
    개발할 때, 로컬에서는 가능하지만 배포 시(다른 DBMS에서) 오류가 생긴다면 확인해봐야 할 필요가 있다. 

 

SQLite의 장단점

 

장점

  • 간편한 설치
    별도의 설치 과정이 필요 없다. 라이브러리를 애플리케이션에 포함시키기만 하면 즉시 사용할 수 있어 개발과 배포가 쉽다.

  • 서버가 필요 없음
    서버 기반의 데이터베이스가 아니므로, 데이터베이스 서버를 설정하거나 운영할 필요가 없다. 모든 데이터가 단일 파일에 저장되며, 파일을 통해 직접 접근할 수 있다.

  • 직접 통합 사용
    애플리케이션 내부에 통합되어 사용되므로, 데이터베이스와 애플리케이션 간의 통신이 매우 빠르고 간단하다. 네트워크 지연이 없으므로 속도가 빠르다.


단점

  • 확장성 제한
    대규모 데이터베이스나 많은 동시 사용자를 처리하는 데 한계가 있다. 데이터가 많아질수록 성능이 저하될 수 있다.
  • 복잡한 쿼리 처리 어려움
    고급 데이터베이스 기능이 부족하여 복잡한 쿼리나 비즈니스 로직을 처리하는 데 어려움이 있을 수 있다. 또한 저장 프로시저나 트리거와 같은 기능이 제한적이다. 그 때문에 장애 발생 시 데이터 복구 기능이 제한적이며 데이터 손실이 발생할 경우 복구가 어려울 수 있다.

 

 

 

위 같은 장점과 단점 때문에 모바일 애플리케이션, 데스크톱 애플리케이션, 웹 브라우저에서 사용된다고 한다.


내가 생각한 사용 이유 


처음에는 개발단계에서만 사용하는 DBMS인 줄 알았지만 모바일 앱, 웹 브라우저 등 가볍고, 빠른 통신이 필요한 서비스에 많이 사용된다는 걸 배웠고, 이런 서비스에 사용되는 이유는 로컬 데이터 저장을 담당하게 해서 빠르고 효율적인 데이터 관리와 사용자 경험을 개선하기 위해서 인걸로 보인다. 

 

'웹개발' 카테고리의 다른 글

[DJANGO] FBV와 CBV의 차이  (0) 2024.11.20
RESTful 아키텍처  (0) 2024.11.17
Redis란?  (1) 2024.11.08
Gunicorn란?  (0) 2024.11.07
NGINX란?  (1) 2024.11.06