기술나눔

FastAPI 자체는 고성능 웹 프레임워크입니다.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

FastAPI 자체는 고성능 웹 프레임워크로, 데이터베이스 작업을 직접적으로 지원하지는 않지만, 다양한 데이터베이스 라이브러리를 통합하여 다양한 데이터베이스와 상호 작용할 수 있습니다. FastAPI는 주로 선택한 데이터베이스 라이브러리(예: ORM 라이브러리)와 해당 데이터베이스 드라이버에 따라 달라지는 거의 모든 관계형 및 비관계형 데이터베이스를 지원합니다. 다음은 FastAPI의 일반적으로 지원되는 데이터베이스 및 관련 라이브러리입니다.

관계형 데이터베이스

  • 포스트그레스큐엘
    • SQLAlchemy 및 Tortoise ORM과 같은 ORM 라이브러리를 통해 FastAPI와 통합될 수 있습니다.
    • 비동기 데이터베이스 액세스의 경우 asyncpg를 PostgreSQL용 비동기 드라이버로 사용할 수 있습니다.
  • MySQL
    • SQLAlchemy를 ORM 라이브러리로 사용할 수도 있지만 pymysql 또는 mysqlclient와 같은 라이브러리를 통해 MySQL 데이터베이스에 연결해야 합니다.
  • SQLite
    • 별도의 서버 프로세스를 실행할 필요가 없는 경량의 파일 기반 데이터베이스이므로 소규모 프로젝트 및 프로토타입 개발에 이상적입니다.
    • SQLAlchemy 등의 ORM 라이브러리를 직접 사용하여 작업할 수 있습니다.
  • 신탁
    • FastAPI는 SQLAlchemy와 같은 ORM 라이브러리를 통해 Oracle 데이터베이스와 상호 작용할 수 있습니다.
    • cx_Oracle과 같은 해당 Oracle 데이터베이스 드라이버를 설치해야 합니다.
  • 마이크로소프트 SQL 서버
    • SQLAlchemy와 같은 ORM 라이브러리를 사용하여 작동할 수도 있지만 SQL Server 데이터베이스에 연결하려면 pyodbc 또는 pymssql과 같은 라이브러리를 설치해야 합니다.

비관계형 데이터베이스

  • 몽고디비(MongoDB)
    • FastAPI는 MongoEngine 및 Motor와 같은 라이브러리를 통해 MongoDB와 상호 작용할 수 있습니다.
    • Motor는 FastAPI의 비동기 기능에 잘 맞는 비동기 MongoDB Python 드라이버입니다.
  • 레디스
    • Redis는 일반적으로 메모리 내 데이터 구조 저장소로 간주되지만 캐싱 및 메시징과 같은 시나리오에서도 사용할 수 있습니다.
    • FastAPI는 aioredis와 같은 라이브러리를 통해 Redis와 비동기적으로 상호 작용할 수 있습니다.

데이터베이스 라이브러리 선택

  • SQL알케미
    • 모델 정의, 관계 매핑, 세션 관리 등과 같은 풍부한 기능을 제공하는 매우 인기 있는 ORM 라이브러리입니다.
    • 여러 데이터베이스 백엔드를 지원하고 FastAPI와 원활하게 통합됩니다.
  • 거북이 ORM
    • Python용으로 특별히 설계된 비동기식 ORM 라이브러리로 Django ORM과 유사한 사용 경험을 제공합니다.
    • FastAPI의 비동기 기능과 완벽하게 일치하며 높은 동시 처리가 필요한 시나리오에 적합합니다.
  • 피단틱
    • 데이터베이스 라이브러리는 아니지만 데이터 검증 및 직렬화를 위해 FastAPI에서 중요한 역할을 합니다.
    • SQLAlchemy와 같은 ORM 라이브러리와 함께 사용되어 데이터 처리의 효율성과 보안을 더욱 향상시킵니다.

요약하면 FastAPI는 선택한 데이터베이스 라이브러리와 해당 데이터베이스 드라이버에 따라 다양한 데이터베이스를 지원합니다. 선택할 때는 프로젝트의 구체적인 요구 사항, 데이터베이스의 성능 특성, 개발 팀의 친숙도 등의 요소를 고려해야 합니다.