- Published on
FastAPI와 함께 사용하면 좋은 라이브러리 추천
- Authors
- Name
- devnmin
🚀 FastAPI와 함께 사용하면 좋은 라이브러리 추천
FastAPI는 현대적인 Python 웹 프레임워크로, 비동기(Async) 지원, 자동 문서화(OpenAPI, Swagger), 타입 검증 등의 기능을 제공합니다. 이를 더욱 강화하고 생산성을 높이기 위해 함께 사용하면 좋은 라이브러리를 정리해 보았습니다.
📌 1. 데이터베이스 관련 라이브러리
1️⃣ SQLAlchemy & SQLModel
SQLAlchemy: Python의 강력한 ORM 라이브러리로, 데이터베이스 작업을 쉽게 할 수 있도록 도와줍니다.
SQLModel: SQLAlchemy와 Pydantic을 결합하여 더 직관적인 데이터 모델을 제공합니다.
설치 방법:
pip install sqlalchemy sqlmodel
사용 예시:
from sqlmodel import SQLModel, Field class User(SQLModel, table=True): id: int = Field(default=None, primary_key=True) name: str
2️⃣ Tortoise-ORM
비동기(Async) ORM을 지원하는 가벼운 라이브러리로, FastAPI와 잘 어울립니다.
설치 방법:
pip install tortoise-orm
사용 예시:
from tortoise import fields from tortoise.models import Model class User(Model): id = fields.IntField(pk=True) name = fields.CharField(max_length=50)
📌 2. 인증(Authentication) 및 보안(Security)
1️⃣ FastAPI Users
FastAPI에서 사용자 인증 및 관리를 쉽게 구현할 수 있도록 도와주는 라이브러리입니다.
설치 방법:
pip install fastapi-users
기능:
- JWT 기반 인증 지원
- OAuth, Google 로그인 연동 가능
- 사용자 관리 API 자동 생성
2️⃣ PyJWT
JWT(JSON Web Token)를 다룰 수 있는 라이브러리로, FastAPI에서 인증 시스템을 구현할 때 유용합니다.
설치 방법:
pip install PyJWT
사용 예시:
import jwt from datetime import datetime, timedelta SECRET_KEY = "your_secret_key" def create_token(data: dict): return jwt.encode({**data, "exp": datetime.utcnow() + timedelta(hours=1)}, SECRET_KEY, algorithm="HS256")
📌 3. 비동기 작업(Background Tasks)
1️⃣ Celery
백그라운드 작업을 처리하는 강력한 비동기 작업 큐입니다.
FastAPI에서 무거운 연산을 처리할 때 사용하면 좋습니다.
설치 방법:
pip install celery
사용 예시:
from celery import Celery celery_app = Celery("tasks", broker="redis://localhost:6379/0") @celery_app.task def add(x, y): return x + y
2️⃣ Dramatiq
Celery보다 가벼운 대안으로, FastAPI에서 간단한 백그라운드 작업을 수행할 때 적합합니다.
설치 방법:
pip install dramatiq
사용 예시:
import dramatiq @dramatiq.actor def send_email(to: str, subject: str, body: str): print(f"Sending email to {to}...")
📌 4. 테스트 및 디버깅
1️⃣ pytest & httpx
FastAPI 애플리케이션을 테스트할 때 유용한 라이브러리입니다.
설치 방법:
pip install pytest httpx
사용 예시:
from fastapi.testclient import TestClient from my_app import app client = TestClient(app) def test_read_main(): response = client.get("/") assert response.status_code == 200
2️⃣ loguru
더 나은 로깅을 제공하는 라이브러리로, FastAPI의 로깅을 쉽게 설정할 수 있습니다.
설치 방법:
pip install loguru
사용 예시:
from loguru import logger logger.info("This is an info log") logger.error("This is an error log")
📌 5. API 문서화 및 스키마 검증
1️⃣ Pydantic
FastAPI의 핵심 라이브러리로, 데이터 검증과 자동 문서화를 제공합니다.
설치 방법:
pip install pydantic
사용 예시:
from pydantic import BaseModel class User(BaseModel): id: int name: str
2️⃣ OpenAPI Generator
- FastAPI의 자동 문서를 활용해 OpenAPI 스펙을 생성하고 관리할 수 있습니다.
- 설치 방법:
pip install openapi-generator-cli
📌 6. 캐싱 및 성능 최적화
1️⃣ Redis & aioredis
FastAPI에서 캐싱 및 세션 저장소로 활용할 수 있는 Redis 라이브러리입니다.
설치 방법:
pip install aioredis
사용 예시:
import aioredis async def get_redis(): redis = await aioredis.create_redis_pool("redis://localhost") return redis
2️⃣ uvicorn
FastAPI 서버를 실행할 때 가장 많이 사용되는 ASGI 서버입니다.
설치 방법:
pip install uvicorn
실행 명령어:
uvicorn main:app --reload
🎯 결론
FastAPI는 다양한 라이브러리와 함께 사용할 때 더욱 강력한 성능을 발휘합니다. 위에서 소개한 라이브러리들을 활용하면 데이터베이스 관리, 인증, 비동기 작업, 캐싱, 테스트 및 로깅 등의 기능을 더욱 쉽게 구현할 수 있습니다.
✅ 추천 라이브러리 정리:
- 데이터베이스: SQLAlchemy, SQLModel, Tortoise-ORM
- 인증 및 보안: FastAPI Users, PyJWT
- 비동기 작업: Celery, Dramatiq
- 테스트 및 디버깅: pytest, loguru
- API 문서화: Pydantic, OpenAPI Generator
- 캐싱 및 성능 최적화: Redis, uvicorn
이제 FastAPI 프로젝트에서 필요한 라이브러리를 선택하여 더욱 강력한 API 서버를 구축해 보세요! 🚀