본문 바로가기
개발일기

FastAPI로 빠른 REST API 개발

by 김엉배 2026. 3. 30.
728x90
반응형

1. FastAPI 소개

FastAPI는적인 Python 웹 프레임워크입니다. FastAPI의 주요 특징은 빠른 속도와 자동 API 문서 생성입니다. FastAPI는 REST API 개발, 마이크로 서비스 아키텍처 등 다양한 용도로 사용할 수 있습니다.

FastAPI의은 다음과 같습니다.

  • 빠른 속도: FastAPI는 다른 Python 웹 프레임워크보다 빠른 속도로 처리할 수 있습니다.
  • 자동 API 문서 생성: FastAPI는 자동으로 API 문서를 생성해 줍니다.
  • 마이크로 서비스 아키텍처: FastAPI는 마이크로 서비스 아키텍처에서 사용할 수 있습니다.
FastAPI 로고

2. FastAPI 설치와 설정

FastAPI를 설치하기 위해서는 pip 또는 conda를 사용할 수 있습니다. 다음은 pip를 사용한 설치 방법입니다.

pip install fastapi

FastAPI 프로젝트 구조는 다음과 같습니다.

  • main.py: FastAPI 애플리케이션의 진입점입니다.
  • models.py: 데이터 모델을 정의하는 파일입니다.
  • routes.py: API 루트를 정의하는 파일입니다.

FastAPI 설정 방법은 다음과 같습니다.

from fastapi import FastAPI

app = FastAPI()
FastAPI 프로젝트 구조

3. FastAPI로 REST API 개발하기

REST API는 Representational State of Resource의 약자입니다. REST API는 자원에 대한 상태를 표현하는 방법입니다.

FastAPI로 REST API를 개발하기 위해서는 endpoint, method, parameter를 정의해야 합니다.

from fastapi import FastAPI

app = FastAPI()

@app.get("/users/")
def read_users():
    return [{"username": "john"}, {"username": "jane"}]

FastAPI로 REST API를 개발할 때 request, response, error handling을 정의해야 합니다.

from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.get("/users/{user_id}")
def read_user(user_id: int):
    if user_id < 1:
        raise HTTPException(status_code=404, detail="User not found")
    return {"username": "john"}

4. FastAPI로 데이터베이스 연동하기

FastAPI로 데이터베이스 연동하기 위해서는 SQLAlchemy 또는 Pydantic을 사용할 수 있습니다.

SQLAlchemy는 Python의 SQL toolkit입니다. SQLAlchemy를 사용하여 데이터베이스 연동을 할 수 있습니다.

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

engine = create_engine("sqlite:///example.db")
Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    username = Column(String)

Base.metadata.create_all(engine)

Pydantic은 Python의 데이터 유효성 검사 라이브러리입니다. Pydantic을 사용하여 데이터 유효성 검사를 할 수 있습니다.

from pydantic import BaseModel

class User(BaseModel):
    username: str
    email: str

5. FastAPI로 보안 구현하기

FastAPI로 보안 구현하기 위해서는 OAuth, JWT를 사용할 수 있습니다.

OAuth는 Open Authorization의 약자입니다. OAuth는 사용자에게 권한을 부여하는 방법입니다.

from fastapi import FastAPI, Depends
from fastapi.security import OAuth2PasswordBearer

app = FastAPI()

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

@app.get("/users/")
def read_users(token: str = Depends(oauth2_scheme)):
    return [{"username": "john"}, {"username": "jane"}]

JWT는 JSON Web Token의 약자입니다. JWT는 사용자에게 토큰을 발급하는 방법입니다.

from fastapi import FastAPI, Depends
from fastapi.security import HTTPBearer

app = FastAPI()

security = HTTPBearer()

@app.get("/users/")
def read_users(token: str = Depends(security)):
    return [{"username": "john"}, {"username": "jane"}]
FastAPI 보안 구현하기
728x90
반응형