본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

아주 작은 데이터베이스, SQLite

by easyfly 2025. 6. 24.
반응형

 

아주 작은 데이터베이스, SQLite

1. SQLite란 무엇인가요?

SQLite는 서버가 필요 없는 경량형 관계형 데이터베이스입니다. 이름에서도 알 수 있듯이 Lite 한, 즉 가벼운 구조를 가지고 있습니다. 별도의 데이터베이스 서버를 설치하지 않고도 파일 하나로 모든 데이터베이스 기능을 수행할 수 있어, 사용과 배포가 매우 간편합니다.

 

SQLite는 C언어로 작성되어 있고, 다양한 프로그래밍 언어에서 쉽게 사용할 수 있도록 라이브러리를 제공합니다. Python, Java, C#, JavaScript 등에서도 기본 라이브러리로 내장되어 있는 경우가 많습니다.

아주 작은 데이터베이스 SQLite


2. SQLite의 주요 특징

  • 서버리스(Serverless): 별도의 서버 설치나 관리가 필요 없습니다.
  • 파일 기반: 하나의 .sqlite 또는 .db 파일에 모든 데이터와 스키마가 저장됩니다.
  • 트랜잭션 지원: BEGIN, COMMIT, ROLLBACK 등의 트랜잭션 제어가 가능합니다.
  • 표준 SQL 지원: 대부분의 표준 SQL문을 지원하여 학습용으로도 적합합니다.
  • 경량/소형: 전체 라이브러리 크기가 수백 KB 수준이며, 실행 파일로 통합도 가능합니다.
  • 높은 호환성: 다양한 운영체제와 플랫폼에서 사용할 수 있습니다.

3. SQLite의 사용 예

  • 모바일 앱 데이터 저장소: 안드로이드(Android), iOS 앱에서 로컬 저장소로 널리 사용됩니다.
  • 브라우저 캐시: 크롬, 파이어폭스 등의 웹 브라우저에서 내부 설정값을 저장할 때 사용됩니다.
  • 임베디드 시스템: IoT 기기, 스마트TV, 차량 내장 시스템 등에서도 사용됩니다.
  • 작은 데스크탑 애플리케이션: 개인용 프로그램이나 가벼운 업무 도구 등에 적합합니다.
  • 웹 개발 초기 단계: Django, Flask 같은 웹 프레임워크에서 개발 및 테스트용 기본 DB로 사용됩니다.

4. SQLite의 장점

장점 설명
쉬운 설치 별도 서버 구성 없이 바로 사용 가능
배포 간편 하나의 DB 파일만 옮기면 됨
빠른 성능 소규모 데이터에 대해 매우 빠름
무료 및 오픈소스 상업적 사용에도 라이선스 제한 없음
학습 용이 SQL 학습에 적합한 구조

5. SQLite의 단점

단점 설명
다중 사용자 환경 부적합 동시 접속이 많거나 쓰기 작업이 많을 경우 병목 발생
데이터 크기 제한 수십~수백 MB 이상에서는 성능 저하 가능
기능 제한 일부 고급 SQL 기능(예: 사용자 정의 함수, 저장 프로시저 등) 미지원
보안 기능 부족 네트워크 보안, 사용자 인증 등 서버형 DB 수준의 보안 기능은 없음

6. SQLite는 이런 분들에게 추천합니다

  • 프로그래밍을 처음 배우는 초보자
  • 작은 프로젝트로 시작하는 웹 개발자
  • 앱 개발자 또는 임베디드 개발자
  • 서버 없이 데이터를 저장하고 싶은 분
  • 기록용 소형 프로그램을 만들고자 하는 분

7. SQLite 시작 예시 (Python)

import sqlite3

# 데이터베이스 연결 (파일이 없으면 자동 생성)
conn = sqlite3.connect("example.db")

# 커서 생성
cur = conn.cursor()

# 테이블 생성
cur.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)")

# 데이터 삽입
cur.execute("INSERT INTO users (name) VALUES (?)", ("홍길동",))

# 변경사항 저장
conn.commit()

# 데이터 조회
cur.execute("SELECT * FROM users")
rows = cur.fetchall()
print(rows)

# 연결 종료
conn.close()

SQLite는 단순하지만 강력한 기능을 갖추고 있으며, 개발자에게는 효율적인 실험 공간을, 사용자에게는 믿을 수 있는 저장 공간을 제공합니다.


아주 작은 데이터베이스를 원하신다면, SQLite는 가장 가볍고 든든한 선택입니다.

 

반응형

댓글