포스트

Fastapi와 함께 쓰는 DB로 초기 개발할 때는SQLite로, 이후 Postgresql로 이전하는 것이 유리함.

fastapi에서 postgresql 말고 sqlite 쓰는게 개발에서 유리한가요? 개발 후에 postgresql로 바꾸는건 쉽나요?


FastAPI 개발 시 SQLite가 유리한 경우PostgreSQL로 변경하는 난이도를 정리해볼게.


  • 설치가 필요 없음 → 그냥 sqlite:///:memory: 또는 파일 DB (sqlite:///db.sqlite3) 로 바로 사용 가능
  • 간단한 설정 → DB 서버 실행 없이 바로 테스트 가능
  • 빠른 개발 속도 → 작은 프로젝트나 로컬 테스트 환경에서 부담 없이 사용 가능
  • 파일 기반 → 단일 파일(.sqlite3)로 DB가 관리되므로 백업/이동이 쉬움
  • FastAPI와 잘 호환됨 → SQLAlchemy, Tortoise-ORM 등 대부분의 ORM에서 기본 지원

  • ORM을 사용하면 쉽게 전환 가능
  • SQLAlchemy, Tortoise-ORM, Gino 등 ORM을 쓰면 DB 변경이 단순함
  • 예를 들어 SQLAlchemy에서는 DATABASE_URL만 바꾸면 됨:
  • DATABASE_URL = “sqlite:///./test.db” # SQLite DATABASE_URL = “postgresql://user:password@localhost/dbname” # PostgreSQL
  • 데이터 타입 차이 고려
  • SQLite는 동적 타입 시스템, PostgreSQL은 엄격한 타입 시스템을 가짐
  • 예를 들어, Boolean, JSON 등의 필드에서 미묘한 차이가 있음
  • ORM을 쓰면 대부분 자동 처리되지만, 데이터 이관(Migration) 시 주의해야 함
  • 성능 차이
  • SQLite는 동시 연결(Concurrency)이 약하므로, 트래픽이 증가하면 PostgreSQL로 바꿔야 함
  • 웹 서비스 운영 단계에서는 PostgreSQL이 필수적
  • Migration 필요 (Alembic 같은 툴 활용)
  • SQLite에서 개발 후 PostgreSQL로 옮길 때, 기존 데이터 마이그레이션이 필요
  • alembic을 사용해 마이그레이션을 하면 PostgreSQL로 쉽게 전환 가능

  • 초기 개발 & 테스트 → SQLite (간단하고 빠름)
  • 운영 & 확장 → PostgreSQL (성능과 동시성 필요)
  • ORM을 사용하면 전환이 쉬움, 하지만 데이터 타입과 마이그레이션에 주의해야 함

[20250408] Fastapi 서버 개발할 때 postgresql 대신 sqlite를 개발용으로 사용하기 안녕하세요, 지난 번에 이런 포스팅을 작성했던 적이 있습니다. [20250306] Fastapi와 함께 쓰는 DB로 … 안녕하세요, 지난 번에 이런 포스팅을 작성했던 적이 있습니다. [20250306] Fastapi와 함께 쓰는 DB로 …

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.