Pydantic은 「타입 힌트 기반의 데이터 검증」 라이브러리입니다.
외부에서 들어온 JSON·YAML·dict가 「내가 기대한 형태인지」 자동 검증.
FastAPI의 핵심 동력이고 단독으로도 매우 유용합니다.
기본.
from pydantic import BaseModel.
class User(BaseModel): name: str; age: int; email: str | None = None.
user = User(name="홍", age=30).
잘못된 타입(age="abc")이면 ValidationError 자동 발생.
고급 검증.
Field로 제약 추가.
age: int = Field(ge=0, le=150) — 0~150.
name: str = Field(min_length=1, max_length=100).
EmailStr·HttpUrl 같은 특수 타입도 제공.
직렬화.
user.model_dump() — dict로 변환.
user.model_dump_json() — JSON 문자열로.
User.model_validate(dict_data) — dict에서 검증과 함께 파싱.
JSON·DB 행·외부 API 응답을 안전하게 파싱하는 표준 도구.
v1과 v2가 호환되지 않습니다.
2023년 v2가 나오면서 .dict() → .model_dump() 같은 이름 변경.
v1 코드 마이그레이션이 약간 번거롭지만 v2는 Rust 기반으로 5~50배 빨라졌습니다.
한 줄 요약
Pydantic은 타입 힌트로 데이터 검증·직렬화하는 라이브러리.
Field로 제약 추가, model_dump로 dict/JSON 변환.
v2는 Rust 기반으로 매우 빠릅니다.
더 알아볼 것
- v1 → v2 마이그레이션
- pydantic-settings — 환경설정 검증
- dataclass와의 차이