Pydantic: Python에서 데이터 유효성 검사 단순화 I

2024. 4. 24. 20:12python/intermediate

Pydantic은 코드베이스의 견고성과 신뢰성을 향상시키도록 설계된 Python용 강력한 데이터 검증 및 설정 관리 라이브러리입니다. 변수가 정수인지 확인하는 것과 같은 기본 작업부터 고도로 중첩된 사전 키와 값이 올바른 데이터 유형인지 확인하는 것과 같은 보다 복잡한 작업에 이르기까지 Pydantic은 최소한의 상용구 코드로 거의 모든 데이터 검증 시나리오를 처리할 수 있습니다.

이 튜토리얼에서는 다음 방법을 배웁니다.

  • Pydantic의 BaseModel을 사용하여 데이터 스키마 작업
  • 복잡한 사용 사례를 위한 맞춤형 유효성 검사기 작성
  • Pydantic @validate_call로 함수 인수의 유효성을 검사
  • pydantic-settings으로 설정을 관리하고 환경 애플리케이션을 구성

이 튜토리얼 전반에 걸쳐 Pydantic의 기능에 대한 실습 예제를 얻을 수 있으며 마지막에는 자신만의 검증 사용 사례를 위한 탄탄한 기반을 갖게 될 것입니다. 이 튜토리얼을 시작하기 전에 Python과 객체 지향 프로그래밍에 대한 중간 수준의 이해를 갖추는 것이 좋습니다.

코드 받기: Pydantic이 Python에서 데이터 검증을 단순화하는 데 어떻게 도움이 되는지 알아보는 데 사용할 무료 샘플 코드를 다운로드하려면 https://realpython.com/bonus/pydantic-simplifying-data-validation-in-python/를 클릭하세요.

 

Python의 Pydantic 라이브러리

 

Python의 주요 매력 중 하나는 동적으로 유형이 지정되는 언어라는 것입니다. 동적 유형 지정이란 변수 유형이 컴파일 타임에 명시적으로 선언되는 정적으로 유형이 지정된 언어와 달리 런타임에 결정된다는 의미입니다. 동적 유형 지정은 신속한 개발과 사용 용이성에 적합하지만 실제 애플리케이션을 위해서는 보다 강력한 유형 검사와 데이터 검증이 필요한 경우가 많습니다. 이것이 Python의 Pydantic 라이브러리가 다루는 부분입니다.

Pydantic은 빠르게 인기를 얻었으며 현재 가장 널리 사용되는 Python용 데이터 검증 라이브러리입니다. 첫 번째 섹션에서는 Pydantic의 개요와 라이브러리의 강력한 기능을 미리 살펴보겠습니다. 또한 이 튜토리얼에 필요한 추가 종속성과 함께 Pydantic을 설치하는 방법도 배우게 됩니다.

 

Pydantic에 익숙해지기

 

Pydantic은 유형 힌트를 활용하여 데이터 스키마를 쉽게 검증하고 직렬화하는 데 도움이 되는 강력한 Python 라이브러리입니다. 이렇게 하면 코드가 더욱 강력해지고, 읽기 쉽고, 간결해지고, 디버그하기 쉬워집니다. Pydantic은 또한 널리 사용되는 많은 정적 타이핑 도구 및 IDE와 잘 통합되어 코드를 실행하기 전에 스키마 문제를 포착할 수 있습니다.

Pydantic의 특징 중 일부는 다음과 같습니다:

  • 사용자 정의 : Pydantic으로 검증할 수 있는 데이터 종류에는 거의 제한이 없습니다. 원시 Python 유형부터 고도로 중첩된 데이터 구조에 이르기까지 Pydantic을 사용하면 거의 모든 Python 객체를 검증하고 직렬화할 수 있습니다.
  • 유연성 : Pydantic을 사용하면 데이터를 검증할 때 얼마나 엄격하게 또는 느슨하게 할지 제어할 수 있습니다. 어떤 경우에는 들어오는 데이터를 올바른 유형으로 강제 변환하고 싶을 수도 있습니다. 예를 들어 부동 소수점으로 의도되었지만 정수로 수신되는 데이터를 허용할 수 있습니다. 다른 경우에는 수신 중인 데이터 유형을 엄격하게 적용해야 할 수도 있습니다. Pydantic을 사용하면 둘 중 하나를 수행할 수 있습니다.
  • 직렬화 : Pydantic 객체를 사전 및 JSON 문자열로 직렬화 및 역직렬화할 수 있습니다. 이는 Pydantic 객체를 JSON으로 또는 JSON에서 원활하게 변환할 수 있음을 의미합니다. 이 기능을 통해 자체 문서화 API가 가능해졌으며 JSON 스키마를 지원하는 거의 모든 도구와의 통합이 가능해졌습니다.
  • 성능 : Rust로 작성된 핵심 검증 로직 덕분에 Pydantic은 매우 빠릅니다. 이러한 성능 이점은 특히 많은 수의 요청으로 확장해야 하는 REST API와 같은 처리량이 높은 애플리케이션에서 신속하고 안정적인 데이터 처리를 제공합니다.
  • 생태계 및 산업 채택 : Pydantic은 FastAPI, LangChain 및 Polars와 같은 많은 인기 Python 라이브러리의 종속성입니다. 또한 대부분의 대규모 기술 회사 와 기타 여러 산업 분야에서 사용됩니다. 이는 Pydantic의 커뮤니티 지원, 신뢰성 및 탄력성에 대한 증거입니다.

이는 Pydantic을 매력적인 데이터 검증 라이브러리로 만드는 몇 가지 주요 기능이며, 이 튜토리얼 전체에서 이러한 기능이 실제로 작동하는 것을 보게 될 것입니다. 다음에는 다양한 종속성과 함께 Pydantic을 설치하는 방법에 대한 개요를 살펴보겠습니다.

 

Pydantic 설치

 

Pydantic은 PyPI에서 사용할 수 있으며 pip를 사용하여 설치할 수 있습니다. 터미널이나 명령 프롬프트를 열고 새 가상 환경을 만든 후 다음 명령을 실행하여 Pydantic을 설치하십시오.

 
[ ]:
 
 
!python -m pip install pydantic
 
 

이 명령은 PyPI의 최신 버전의 Pydantic을 컴퓨터에 설치합니다. 설치가 성공했는지 확인하려면 Python REPL을 시작 하고 Pydantic을 가져옵니다.

 
[ ]:
 
 
import pydantic
 
 

가져오기가 오류 없이 실행되면 Pydantic이 성공적으로 설치된 것이며 이제 시스템에 Pydantic 코어가 설치된 것입니다.

 

선택적 종속성 추가

 

Pydantic을 사용하여 선택적 종속성을 설치할 수도 있습니다. 예를 들어, 이 튜토리얼에서는 이메일 검증 작업을 수행하게 되며 설치에 다음 종속성을 포함할 수 있습니다.

 
[ ]:
 
 
!python -m pip install "pydantic[email]"
 
 

Pydantic에는 설정 관리를 위한 별도의 패키지가 있으며, 이 패키지도 이 튜토리얼에서 다룰 것입니다. 이를 설치하려면 다음 명령을 실행하십시오.

 
[ ]:
 
 
!python -m pip install pydantic-settings
 
 

이로써 이 튜토리얼에 필요한 모든 종속성을 설치했으며, Pydantic 탐색을 시작할 준비가 되었습니다. 데이터 스키마를 정의하는 Pydantic의 주요 방법인 모델을 다루는 것부터 시작하겠습니다.

 

<출처 : https://realpython.com/python-pydantic/#pythons-pydantic-library>