반응형
파이썬 라이브러리에서 Pydentic이란?
Pydantic은 데이터 유효성 검사(validation)와 설정 관리(settings management)를 위한 Python 라이브러리입니다. Pydantic은 Python 3.6 이상의 타입 힌트(type hints)를 사용하여 데이터의 형태와 제약조건을 명시적으로 선언할 수 있게 해 주며, 데이터의 변환(conversion), 유효성 검사, 문서화(documentation)를 간소화합니다.
Pydantic의 주요 특징
- 강력한 타입 힌트 기반의 유효성 검사: Pydantic은 Python의 타입 힌트를 활용하여 데이터 모델의 각 필드에 대한 타입과 제약조건을 정의합니다. 데이터가 모델에 로드될 때, Pydantic은 이 정의에 따라 자동으로 유효성을 검사하고 타입을 적절히 변환합니다.
- 데이터 변환: Pydantic은 제공된 데이터를 모델의 필드 타입에 맞게 변환합니다. 예를 들어, 문자열로 된 날짜는
datetime
객체로, JSON 형태의 문자열은 파이썬의 딕셔너리나 모델로 변환될 수 있습니다. - 에러 핸들링: 유효하지 않은 데이터에 대해 세부적인 에러 메시지를 생성합니다. 이는 디버깅과 오류 해결에 유용합니다.
- ORM 모드: Pydantic은 ORM(Object-Relational Mapper) 객체와 호환되도록 설계되어 있어, ORM에서 사용하는 객체를 Pydantic 모델로 직접 변환할 수 있습니다.
- 데이터 시리얼라이제이션: Pydantic 모델은 JSON이나 다른 형태로 쉽게 시리얼라이즈할 수 있습니다.
- 프로젝트 설정 관리: 환경변수나 다른 외부 설정 소스로부터 설정 값을 로드하고 관리하는 데에도 Pydantic을 사용할 수 있습니다.
- 에디터 지원: 많은 코드 에디터와 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 문서 생성을 자동화합니다.
반응형
'Linuxpia > 웹 프로그램' 카테고리의 다른 글
[FastAPI] FastAPI 요청에 대한 응답은 JSON으로 변환, JSON이란? (36) | 2024.03.05 |
---|---|
[FastAPI] FastAPI에 적용된 어노테이션(Annotation)이란? (139) | 2024.03.04 |
[FastAPI] 비동기 처리가 가능한 async 키워드 (128) | 2024.03.02 |
[FastAPI] API란 무엇인가요? (109) | 2024.03.01 |
[FastAPI] ASGI란 어떤 것인가요? (143) | 2024.02.29 |