SQLite

agnusdei·2025년 5월 28일

Database

목록 보기
61/76

문제

SQLite에 대하여 설명하시오.


답안

1. 개념

SQLite경량 관계형 데이터베이스 관리 시스템 (RDBMS, Relational Database Management System) 으로, 서버 없이 파일 기반으로 데이터베이스를 관리할 수 있는 임베디드(Embedded) DBMS이다.
C언어로 작성된 Self-contained(자체 포함형) 라이브러리로, 주로 모바일, IoT, 임베디드 시스템 등 자원이 제한된 환경에서 많이 사용된다.


2. 역할 및 목적

  • 경량화된 데이터 저장 시스템 제공
  • 서버가 필요 없는 로컬 DB 기능
  • 애플리케이션에 내장형(Embedded) 으로 데이터베이스 기능 탑재
  • 복잡한 설정과 설치 없이 간편하게 데이터 저장/조회 수행

3. 구조 및 동작 원리

(1) 저장 구조

  • 모든 데이터는 하나의 .sqlite 파일에 저장됨
  • 데이터 파일은 B-Tree 구조로 구성되어 빠른 검색 지원
  • VFS(Virtual File System)를 통해 OS와의 파일 입출력 추상화

(2) 동작 방식

  • 서버가 없기 때문에 SQLite 라이브러리를 포함한 애플리케이션이 직접 DB 파일을 열고 SQL 실행
  • DB 트랜잭션은 WAL(Write-Ahead Logging) 또는 Rollback Journal 방식으로 처리

4. 구성 요소

구성 요소설명
SQLite 엔진SQL 구문 해석 및 실행 담당
DB 파일 구조한 개의 파일로 전체 DB 포함 (테이블, 인덱스, 트리거 등)
VFS 모듈OS 파일 시스템과의 추상 인터페이스
SQLite 라이브러리C 언어 기반 API를 통해 프로그램에 직접 링크됨

5. 주요 특징

특성설명
Self-contained모든 기능을 하나의 C 라이브러리로 구현 (외부 종속성 없음)
Serverless별도의 DB 서버 없이 응용 프로그램이 직접 DB 파일을 읽고 씀
Zero-Configuration설치, 설정, 초기화, 구성이 필요 없음
Transactional트랜잭션 특성(ACID: 원자성, 일관성, 고립성, 지속성)을 완전 지원
Cross-Platform다양한 OS(Windows, Linux, Android, iOS)에서 동일하게 작동
경량화크기 약 500KB 이하, 임베디드 및 모바일에 최적

6. 핵심 용어 정리

  • Self-contained: 별도 환경 설치 없이 단독 실행 가능
  • Serverless: DB 서버 프로세스 없이 파일 직접 접근
  • VFS (Virtual File System): OS 간 I/O 추상화 계층
  • ACID: 데이터베이스 트랜잭션의 네 가지 핵심 속성
  • WAL (Write-Ahead Logging): 변경 내용을 먼저 로그에 기록한 후 실제 DB 반영

7. 타 DBMS와의 비교

항목SQLiteMySQLPostgreSQL
구조파일 기반클라이언트-서버클라이언트-서버
사용 환경모바일, IoT, 내장형웹, 중소형 서비스복잡한 업무 시스템
설치/설정불필요필요필요
크기수백 KB수십 MB수십~수백 MB
동시성 처리제한적우수우수

8. 장단점

✅ 장점

  • 경량, 빠른 성능
  • 설정 및 설치 불필요
  • 코드 내에 직접 내장 가능
  • 오픈소스(공개 라이선스, Public Domain)

❌ 단점

  • 다중 사용자/고부하 서비스에는 부적합
  • 서버 기반의 고급 기능 부족
  • 동시 쓰기 처리에 제한

9. 어린이 버전 요약

“SQLite는 조그만 컴퓨터에도 잘 들어가는 똑똑한 노트예요. 서버라는 커다란 기계 없이도, 혼자서 데이터를 잘 저장하고 꺼낼 수 있어요.

profile
DevSecOps Pentest🚩

0개의 댓글