[Python] Pydantic

Roberto Park·2025년 2월 28일

[Python Library]

목록 보기
2/3
post-thumbnail

개요

Pydantic은 데이터 검증을 위한 Python 라이브러리로, FastAPI, SQLAlchemy, 데이터 직렬화 등 다양한 데이터 처리와 API 개발에서 유용하게 활용된다.

데이터 엔지니어링을 하다 보면 데이터를 이동시키는 일이 잦다. 예를 들어, ETL/ELT 과정에서 로컬, 데이터베이스(DB), 데이터 웨어하우스(DW) 간 데이터를 주고받는 과정에서 데이터 타입이 깨지는 문제가 자주 발생할 수 있다. 이를 미리 인식하지 못하면, 나중에 문제를 발견했을 때 디버깅에 많은 시간을 허비하게 된다. 따라서 데이터를 읽고 작업을 수행하기 전에 데이터 검증을 습관화하는 것이 중요하다.

설치

# 전체 pydantic 라이브러리
pip install pydantic 

# 아래 import에서 EmailStr을 호출하기 위함
pip install email-validator

사용방법

from pydantic import BaseModel, Field, EmailStr, 


class User(BaseModel):
	id: int
    name: str = Field(min=3)
    age: int = Field(gt=18)
    height: int = Field(gt=150, lt=200)
    username: str = Field(min_length=5)
    email: EmailStr
    
    @field_validator("username")
    def validate_username(cls, value):
    	if not re.match("^[a-zA-Z0-9_]+$", value):
        	raise ValueError("Username에 알파벳 또는 숫자만 입력할 수 있습니다.")
        if value in usenames:
        	raise ValueError("Username must be unique")
        
        usernames.append(value)
        
        return value

파이썬에서 SQLAlchemy와 같은 ORM을 사용해본적이 있다면 Pydantic이 얼마나 편한지 알 것이다.

모든 데이터 검증 방법은 Pydantic의 BaseModel을 사용하여 클래스를 만든다. 클래스 내에서는 각 변수와 데이터 타입 및 constraint를 설정한다.

@field_validator("<변수명>")은 나만의 검증 방법을 새로 구현하고 싶을 때 사용하면 된다.

profile
DataOps Generalist. 딱, 한입에 먹을 수 있게. 필요한 내용만 적는 블로그.

0개의 댓글