1. FastAPI 소개
FastAPI는적인 Python 웹 프레임워크입니다. FastAPI의 주요 특징은 빠른 속도와 자동 API 문서 생성입니다. FastAPI는 REST API 개발, 마이크로 서비스 아키텍처 등 다양한 용도로 사용할 수 있습니다.
FastAPI의은 다음과 같습니다.
- 빠른 속도: FastAPI는 다른 Python 웹 프레임워크보다 빠른 속도로 처리할 수 있습니다.
- 자동 API 문서 생성: FastAPI는 자동으로 API 문서를 생성해 줍니다.
- 마이크로 서비스 아키텍처: 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()
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"}]
'개발일기' 카테고리의 다른 글
| 2026년 백엔드 개발자 성공을 위한 5가지 필수 스킬 (0) | 2026.04.01 |
|---|---|
| Nuxt.js 3로 빠른 웹앱 개발하기 (0) | 2026.03.31 |
| Kubernetes 없이 배포하기 (0) | 2026.03.30 |
| Playwright로 E2E 테스트 자동화 (0) | 2026.03.28 |
| Supabase vs Firebase: 사이드 프로젝트 백엔드 비교 (0) | 2026.03.27 |