파이썬 데이터 검증을 쉽게 해주는 Pydantic 라이브러리 사용법

2025. 3. 20. 08:38·프로그래밍/Python
목차
  1. ✅ Pydantic이란?
  2. ✅ 설치 방법
  3. ✅ 기본 사용법
  4. 1. 데이터 모델 정의
  5. 2. 유효한 데이터 입력
  6. 3. 잘못된 데이터 검증
  7. ✅ 주요 기능
  8. 1. 기본값 설정
  9. 2. 데이터 자동 변환
  10. 3. 필드 조건 설정 (유효성 제약)
  11. ✅ 정리

파이썬 데이터 검증을 쉽게 해주는 Pydantic 라이브러리 사용법

Python으로 API를 다루거나 JSON 데이터를 처리하다 보면, 입력값을 검증하고 타입을 체크하는 일이 매우 중요해집니다.
이럴 때 유용하게 사용할 수 있는 도구가 바로 Pydantic입니다.

✅ Pydantic이란?

Pydantic은 타입 힌트를 기반으로 데이터 유효성 검사를 자동으로 처리해주는 파이썬 라이브러리입니다.
마치 dataclass처럼 클래스를 정의하면, 자동으로 필드의 타입을 체크하고 잘못된 값이 들어올 경우 에러를 발생시켜 줍니다.

FastAPI와 같은 웹 프레임워크에서 요청/응답 데이터를 검증할 때도 많이 사용됩니다.

✅ 설치 방법

pip install pydantic

최신 버전을 설치하려면 다음 명령어를 사용할 수 있습니다.

pip install --upgrade pydantic

✅ 기본 사용법

1. 데이터 모델 정의

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int
    email: str

위 코드처럼 BaseModel을 상속받아 클래스 정의 시, 각 필드에 대한 자동 타입 검증이 적용됩니다.

2. 유효한 데이터 입력

user = User(name="김개발", age=30, email="dev@example.com")
print(user)

3. 잘못된 데이터 검증

try:
    user = User(name="김개발", age="스물다섯", email="잘못된 이메일")
except Exception as e:
    print(e)

출력 결과:

2 validation errors for User
age
  value is not a valid integer (type=type_error.integer)
email
  value is not a valid email address (type=value_error.email)

숫자가 아닌 나이, 이메일 형식 오류를 Pydantic이 자동으로 잡아주는 것을 확인할 수 있습니다.

✅ 주요 기능

1. 기본값 설정

class User(BaseModel):
    name: str
    age: int = 25  # 기본값 지정
    email: str

age를 생략하면 기본값 25가 자동으로 설정됩니다.

2. 데이터 자동 변환

class Product(BaseModel):
    name: str
    price: float
    in_stock: bool

product = Product(name="Laptop", price="1999.99", in_stock="True")
print(product)

출력:

name='Laptop' price=1999.99 in_stock=True

문자열로 들어간 숫자와 불리언 값이 자동으로 변환된 것을 확인할 수 있습니다.

3. 필드 조건 설정 (유효성 제약)

from pydantic import BaseModel, Field

class Person(BaseModel):
    name: str = Field(..., min_length=2, max_length=10)
    age: int = Field(..., ge=18, le=99)

person = Person(name="홍길동", age=25)
print(person)

min_length, max_length, ge, le 등 다양한 제약 조건을 쉽게 설정할 수 있습니다.

✅ 정리

  • Pydantic은 Python에서 타입 힌트를 활용하여 데이터 검증을 간단하게 구현할 수 있도록 도와주는 라이브러리입니다.
  • 자동 타입 캐스팅, 유효성 검사, 기본값 지정, 조건 필터링 등 다양한 기능을 갖추고 있어 JSON 기반 데이터 처리나 API 응답 검증에 매우 적합합니다.
  • 코드를 더 안전하고, 명확하고, 유지보수하기 쉬운 구조로 만들어줍니다.

데이터 입력이 많은 애플리케이션을 개발할 때, 특히 외부에서 입력되는 JSON 또는 사용자 요청 값을 신뢰할 수 없는 경우 Pydantic을 사용하여 안정성을 확보하는 것을 추천합니다.


※ 본 포스트는 Python 3.12 환경을 기준으로 작성되었습니다.

반응형
저작자표시 비영리 (새창열림)

'프로그래밍 > Python' 카테고리의 다른 글

FastAPI로 빠르고 간단한 파이썬 API 서버 만들기 - 설치부터 기본 예제까지  (0) 2025.03.20
파이썬 로그 관리, loguru로 더 쉽게! 설정부터 파일 저장까지 정리  (0) 2025.03.20
파이썬으로 네이버 주식 데이터 스크래핑하는 방법 (BeautifulSoup 사용)  (0) 2025.03.19
[Python] Pillow 라이브러리로 이미지 처리하는 5가지 방법  (0) 2025.03.19
파이썬으로 PDF 파일 처리하기: PyPDF2, pdfplumber 사용법 정리  (0) 2025.03.18
  1. ✅ Pydantic이란?
  2. ✅ 설치 방법
  3. ✅ 기본 사용법
  4. 1. 데이터 모델 정의
  5. 2. 유효한 데이터 입력
  6. 3. 잘못된 데이터 검증
  7. ✅ 주요 기능
  8. 1. 기본값 설정
  9. 2. 데이터 자동 변환
  10. 3. 필드 조건 설정 (유효성 제약)
  11. ✅ 정리
'프로그래밍/Python' 카테고리의 다른 글
  • FastAPI로 빠르고 간단한 파이썬 API 서버 만들기 - 설치부터 기본 예제까지
  • 파이썬 로그 관리, loguru로 더 쉽게! 설정부터 파일 저장까지 정리
  • 파이썬으로 네이버 주식 데이터 스크래핑하는 방법 (BeautifulSoup 사용)
  • [Python] Pillow 라이브러리로 이미지 처리하는 5가지 방법
큐레이트
큐레이트
저의 일상을 기록하는 블로그입니다.
  • 큐레이트
    큐레이트의 기록
    큐레이트
  • 전체
    오늘
    어제
    • 분류 전체보기 (196) N
      • 국내여행 (37)
        • 애견여행 (33)
        • 맛집여행 (2)
      • 프로그래밍 (88) N
        • C# (24)
        • Python (27) N
        • Flutter (5)
        • .NET (4)
        • ASP (7)
        • Next.js (3)
        • Html (5)
        • Tomcat (2)
        • typescript (3)
        • etc (8)
      • 일상생활 (71)
        • 다이어트일지 (70)
        • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 복이랑스마트스토어
    • 복이랑블로그
  • 공지사항

    • 블로그 소개
  • 인기 글

  • 태그

    Flutter
    오운완
    Python
    식단
    다이어트 일지
    파이썬
    iis
    다이어트일지
    운동일지
    체중기록
    국내여행
    헬스
    제주도애견동반여행
    티스토리챌린지
    애견동반여행
    식단관리
    HTML
    다이어트
    FastAPI
    자동매매
    자동화
    웹개발
    C#
    애견동반
    애견여행
    DevExpress
    제주도
    오블완
    일상생활
    pt
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
큐레이트
파이썬 데이터 검증을 쉽게 해주는 Pydantic 라이브러리 사용법

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.