코딩재개발 RSS 태그 관리 글쓰기 방명록
2022-11-23 20:16:03

파이썬 웹 프레임워크 중 하나인 FastAPI를 사용하려다 보면 pydantic이라는 것도 저절로 접하게 됩니다. FastAPI의 공식 문서를 살펴보면, FastAPI는 Pydantic과 Starlette라는 두 거인의 어깨 위에 있다고 표현되어 있습니다[2]. 그만큼 중요한 친구라는 거겠죠. 

 

Fast API stands on the shoulders of giants:
- Starlette for the web parts.
- Pydantic for the data pars.

 

오늘은 이 중에서 Pydantic에 대해서 살펴보려고 합니다.

 

Pydantic이란

Pydantic의 공식 문서[1]를 보면, Pydantic에 대해 다음과 같이 설명합니다. 

 

Data validation and settings management using Python type annotations.
pydantic enforces type hints at runtime, and provides user friendly errors when data is invalid.
Define how data should be in pure, canonical Python; validate it with pydantic.

 

pydantic은 파이썬 타입 주석(type annotations)을 사용하여 데이터의 유효성을 검증해주는 파이썬 라이브러리입니다.

 

간단한 예제를 통해 pydantic의 역할을 이해해보겠습니다. 우선 pip install pydantic으로 pydantic을 설치해주세요. 그 다음에 다음과 같이 코드를 작성합니다.

 

from pydantic import BaseModel

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

user1 = User(name='john', age=15)
print(user1)

user2 = User(name='tom', age='ten')
print(user2)

 

User라는 클래스를 만드는데, name의 타입은 str로, age의 타입은 int로 정해주겠다는 뜻입니다. 이렇게 한 다음 데이터 타입을 맞게 해서 User 객체를 생성하면 에러 없이 제대로 생성되지만, 데이터 타입에 맞지 않게 해서 User 객체를 생성하면 에러가 납니다. 

 

 

위와 같이 User 객체의 age 값은 정수여야 한다고 에러 메시지를 던져줍니다. 따라서 사용자가 조금 더 정확한 데이터 타입의 데이터를 사용하도록 요구할 수 있습니다. 

 

참고자료

[1] https://pydantic-docs.helpmanual.io/   

[2] https://fastapi.tiangolo.com/   

 

글을 읽던 중에 궁금했던 부분은 질문해주세요.
칭찬, 지적, 의문, 격려, 감사표현 등을 남겨주세요.
최대한 답변 드리도록 노력하겠습니다.
욕설과 광고를 담은 댓글은 가차없이 삭제합니다.
비밀글