pydantic이란

채채·2025년 6월 10일

FastAPI를 공부하다보니 pydantic에 대해 알아야해서 간단하게 공부함.

pydantic이란

"Pythonic한 방식으로 데이터를 검증하고 변환하는 파이썬의 라이브러리"

pydantic의 목적은?

"데이터를 자동으로 검사하고, 타입에 맞게 바꿔주는 것"

  • JSON이나 dict 같은 입력을 자동으로 검증
  • 문자열 "123"을 int로 자동 변환
  • 빠진 값, 잘못된 타입은 오류로 알려줌

특히 FastAPI는 요청 데이터를 모델처럼 쓰게 해주는데, 그 기반이 pydantic

pydantic의 핵심 기능

기능설명
타입 검증자동으로 자료형 검사 (str, int, bool, float 등)
타입 변환"123"int(123), "true"bool(True)
기본값 지원is_done: bool = False
필드 누락 검사빠진 필드는 오류로 처리
문서 자동화FastAPI가 pydantic 모델로 API 문서 자동 생성

유용한 고급 기능

기능예시
필드 설명 추가Field(..., description="설명")
정규식 제한constr(regex="^[a-z]+$")
값 범위 제한conint(gt=0, lt=100)
중첩 모델모델 안에 또 다른 모델 가능

pydantic 어디에 쓰면 좋을까?

환경pydantic 사용 가능?예시
FastAPI✅ 매우 밀접하게 사용됨요청/응답 모델
Django✅ 가능 (하지만 DRF가 기본)Form/Serializer 대체
Flask✅ 가능API 요청 검증
일반 Python✅ 가능JSON 파싱/검증/변환

Serializer가 있는 DRF만 써봐서 pydantic에 대해 몰랐음.

pydantic vs DRF Serializer 비교

항목pydantic (FastAPI)DRF Serializer (Django REST Framework)
검증 방식타입 기반 (BaseModel)필드 기반 (CharField, IntegerField)
자동 변환strint, strbool 자동수동으로 clean, to_internal_value 처리
모델 연결모델 없이도 사용, SQLAlchemy도 가능ModelSerializer로 ORM 연동
속도매우 빠름 (Rust로 컴파일됨)상대적으로 느림
추가 기능문서 자동화, 타입 힌트 기반폼 검증, HTML 폼 렌더링 등

장고 짱

profile
화이팅

0개의 댓글