스킬 pydantic-models-py
📦

pydantic-models-py

안전

멀티모델 패턴으로 Pydantic 모델 구축

수동으로 보일러플레이트를 작성하지 않고 일관된 API 스키마를 정의합니다. 이 스킬은 요청 검증, 응답 및 데이터베이스 통합을 위한 확립된 패턴을 따르는 구조화된 Pydantic 모델을 생성합니다.

지원: Claude Codex Code(CC)
📊 71 적절함
1

스킬 ZIP 다운로드

2

Claude에서 업로드

설정 → 기능 → 스킬 → 스킬 업로드로 이동

3

토글을 켜고 사용 시작

테스트해 보기

"pydantic-models-py" 사용 중입니다. id, name, email, created_at 필드가 있는 User 엔티티

예상 결과:

적절한 Field 정의, 타입 주석 및 별칭 처리를 위한 Config 클래스가 포함된 UserBase, UserCreate, UserUpdate, UserResponse 및 UserInDB 모델 클래스 생성

"pydantic-models-py" 사용 중입니다. camelCase API 호환성이 필요한 Project 모델

예상 결과:

Python 내부에서 snake_case를 사용하면서 두 명명 규칙을 모두 수용하는 Field 별칭(workspaceId, createdAt)이 있는 모델

보안 감사

안전
v1 • 2/24/2026

All 21 static analysis findings are false positives. The scanner misidentified Markdown code block backticks as shell execution, and documentation references to HTTP/cryptography as actual code. SKILL.md is pure documentation with Python code examples for Pydantic model patterns. No executable code, network calls, or security risks detected.

1
스캔된 파일
64
분석된 줄 수
0
발견 사항
1
총 감사 수
보안 문제를 찾지 못했습니다
감사자: claude

품질 점수

38
아키텍처
100
유지보수성
87
콘텐츠
31
커뮤니티
100
보안
91
사양 준수

만들 수 있는 것

REST API 스키마 정의

일관된 검증 패턴으로 FastAPI 또는 Flask 엔드포인트를 위한 요청/응답 모델을 정의합니다.

데이터베이스 문서 모델링

Cosmos DB 또는 MongoDB 문서 저장을 위해 doc_type 필드가 포함된 InDB 모델 변형을 생성합니다.

프론트엔드-백엔드 컨트랙트 동기화

API 컨트랙트 일관성을 보장하기 위해 일치하는 Python 모델과 TypeScript 타입을 생성합니다.

이 프롬프트를 사용해 보세요

기본 모델 생성
User 엔티티에 대한 Pydantic 모델을 생성하세요. 필드: id (string), name (string, 필수), email (email 검증이 포함된 string), created_at (datetime). Base, Create, Update 및 Response 변형을 포함한 멀티모델 패턴을 사용하세요.
camelCase 별칭이 있는 모델
Project 엔티티에 대한 Pydantic 모델을 생성하세요. 모든 필드는 Field 별칭을 사용하여 snake_case와 camelCase를 모두 수용해야 합니다. workspace_id, project_name 및 is_active 필드를 포함하세요.
InDB 변형이 있는 데이터베이스 모델
doc_type 필드가 포함된 InDB 변형을 포함한 Document 엔티티에 대한 완전한 Pydantic 모델을 생성하세요. name에 min_length 검증과 업데이트를 위한 선택적 description 필드를 추가하세요.
복잡한 중첩 모델 패턴
중첩된 line_items 배열이 포함된 Order 엔티티에 대한 Pydantic 모델을 구축하세요. 각 라인 아이템은 product_id, quantity 및 price를 가집니다. 모든 필드에 검증 제약이 있는 전체 멀티모델 패턴을 생성하세요.

모범 사례

  • Create와 Update 모델을 항상 분리하세요 - Create는 모든 필드가 필수이고, Update는 PATCH 의미론을 위해 모든 필드를 선택적으로 만듭니다
  • 선택적 업데이트 필드에 대해 explicit default=None과 Field를 사용하여 null과 설정되지 않은 값을 구분하세요
  • Config 클래스에서 populate_by_name = True를 활성화하여 API 클라이언트로부터 snake_case와 camelCase를 모두 수용하세요

피하기

  • 요청 본문과 데이터베이스 문서에 동일한 모델 클래스를 재사용하지 마세요 - 분리가 데이터 유출을 방지합니다
  • 비즈니스 로직을 모델 클래스에 넣지 마세요 - 검증만 있는 순수 데이터 스키마로 유지하세요
  • Cosmos DB를 사용할 때 InDB 모델에서 doc_type을 생략하지 마세요 - 쿼리가 올바른 타입 필터링 없이 실패합니다

자주 묻는 질문

멀티모델 패턴이란 무엇이며 왜 사용해야 합니까?
이 패턴은 다양한 목적에 따라 별도의 모델 클래스를 생성합니다: Base (공유 필드), Create (POST용 필수 필드), Update (PATCH용 선택적 필드), Response (전체 출력), InDB (메타데이터가 포함된 데이터베이스 문서). 이 분리는 실수로 인한 데이터 노출을 방지하고 각 레이어에서 올바른 검증을 강제합니다.
camelCase 별칭은 Pydantic에서 어떻게 작동합니까?
각 필드에서 Field(alias='camelCaseName')을 사용하고 Config 클래스에서 populate_by_name = True를 설정하세요. 이를 통해 모델이 Python 코드 내부에서 snake_case를 사용하면서 API 클라이언트로부터 두 명명 규칙을 모두 수용할 수 있습니다.
모든 Update 필드를 선택적으로 만드는 이유는 무엇입니까?
PATCH 요청은 수정되는 필드만 포함해야 합니다. 모든 필드를 default=None으로 선택적으로 만들면 부분 업데이트를 허용하면서 '필드가 제공되지 않음'(None)과 '필드가 null로 설정됨'(명시적 null)을 구분할 수 있습니다.
doc_type 필드의 용도는 무엇입니까?
Cosmos DB와 같은 문서 데이터베이스에서 doc_type은 공유 컬렉션 내 엔티티 타입을 식별합니다. InDB 모델은 쿼리가 타입별로 필터링할 수 있도록 이 필드를 자동으로 추가합니다.
TypeScript 타입을 수동으로 만들어야 합니까?
네, 이 스킬은 일치하는 TypeScript 인터페이스를 생성하도록 안내합니다. Pydantic 모델에서 자동 TypeScript 생성을 위해 pydantic2ts 또는 datamodel-code-generator 같은 도구를 고려하세요.
SQLAlchemy 또는 다른 ORM과 함께 이 패턴을 사용할 수 있습니까?
네, Pydantic 모델은 ORM과 함께 작동합니다. 요청/응답 검증 및 직렬화에는 Pydantic을 사용하고, 데이터베이스 작업에는 ORM 모델을 사용하세요. SQLAlchemy 2.0과 같은 일부 ORM에는 네이티브 Pydantic 통합이 있습니다.

개발자 세부 정보

파일 구조

📄 SKILL.md