더북(TheBook)

이 예시에서 Pydantic은 is_host 필드에 bool 자료형이 아닌 문자열이 들어왔을 때, email 필드가 이메일 형식이 아닐 때 예외를 발생시킵니다. 단지 데이터 클래스를 정의하며 자료형을 각주한(annotate) 것으로 자료형으로서 의도를 드러내고, 데이터 검증 로직을 다루죠.

데이터를 추상화하여 다룬다는 점에서 Pydantic은 ORM과 비슷하지만, 본질적인 목적과 용도가 다릅니다. Pydantic은 입력 데이터가 사용자가 기대하는 자료형과 형식을 갖추고 있는지 검증해서 필요하다면 자료형을 변환하여 일관된 데이터 구조를 보장하지만, ORM은 파이썬 클래스로 된 모델을 RDBMS 테이블에 매핑하여 데이터를 다루는 도구입니다. Pydantic보다 좀 더 데이터베이스 계층 쪽에 가까운 곳에 위치합니다.

그래서 이 Pydantic과 ORM은 서로 배타적이지 않아 함께 자주 사용합니다. 웹 API로 들어온 외부 데이터를 Pydantic으로 검증하여 데이터로 생성하고, 이 신뢰할 수 있는 데이터를 ORM 객체로 변환하여 데이터베이스 작업을 하는 데 사용합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.