Linuxpia/웹 프로그램

[FastAPI] 파이썬 라이브러리에서 Pydentic이란?

Linuxpia4U 2024. 3. 3. 03:47
반응형

파이썬 라이브러리에서 Pydentic이란?

Pydantic은 데이터 유효성 검사(validation)와 설정 관리(settings management)를 위한 Python 라이브러리입니다. Pydantic은 Python 3.6 이상의 타입 힌트(type hints)를 사용하여 데이터의 형태와 제약조건을 명시적으로 선언할 수 있게 해 주며, 데이터의 변환(conversion), 유효성 검사, 문서화(documentation)를 간소화합니다.

Pydantic의 주요 특징

  1. 강력한 타입 힌트 기반의 유효성 검사: Pydantic은 Python의 타입 힌트를 활용하여 데이터 모델의 각 필드에 대한 타입과 제약조건을 정의합니다. 데이터가 모델에 로드될 때, Pydantic은 이 정의에 따라 자동으로 유효성을 검사하고 타입을 적절히 변환합니다.
  2. 데이터 변환: Pydantic은 제공된 데이터를 모델의 필드 타입에 맞게 변환합니다. 예를 들어, 문자열로 된 날짜는 datetime 객체로, JSON 형태의 문자열은 파이썬의 딕셔너리나 모델로 변환될 수 있습니다.
  3. 에러 핸들링: 유효하지 않은 데이터에 대해 세부적인 에러 메시지를 생성합니다. 이는 디버깅과 오류 해결에 유용합니다.
  4. ORM 모드: Pydantic은 ORM(Object-Relational Mapper) 객체와 호환되도록 설계되어 있어, ORM에서 사용하는 객체를 Pydantic 모델로 직접 변환할 수 있습니다.
  5. 데이터 시리얼라이제이션: Pydantic 모델은 JSON이나 다른 형태로 쉽게 시리얼라이즈할 수 있습니다.
  6. 프로젝트 설정 관리: 환경변수나 다른 외부 설정 소스로부터 설정 값을 로드하고 관리하는 데에도 Pydantic을 사용할 수 있습니다.
  7. 에디터 지원: 많은 코드 에디터와 IDE가 Pydantic의 타입 힌트를 인식하여 자동 완성과 코드 분석 기능을 제공합니다.

Pydantic 모델의 기본 구조는 BaseModel 클래스를 상속하여 필드를 클래스 변수로 선언

from pydantic import BaseModel

class User(BaseModel):
    id: int
    name: str
    signup_ts: datetime = None
    friends: List[int] = []

위의 예제에서 User 클래스는 Pydantic의 BaseModel을 상속받아, id, name, signup_ts, friends 필드를 가진 사용자 모델을 정의합니다. 각 필드는 타입 힌트를 사용하여 그 타입이 명시되어 있으며, 필요한 경우 기본값도 제공할 수 있습니다.

정리

Pydantic은 FastAPI와 같은 비동기 프레임워크에서 요청 및 응답 데이터의 유효성 검사를 위해 널리 사용됩니다. FastAPI는 Pydantic 모델을 직접적으로 지원하여, 엔드포인트에 대한 입력 데이터 유효성 검사와 API 문서 생성을 자동화합니다.

반응형