Files
2nd/10_Wiki/Topics/AI/Discriminated-Unions.md
T

1.7 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
P-REINFORCE-AI-DISCRIMINATED-UNIONS 10_Wiki/💡 Topics/AI 0.98
TypeScript
TypeSystem
Patterns
Safety
2026-04-20

Discriminated-Unions (구별된 유니온)

📌 한 줄 통찰 (The Karpathy Summary)

"이름표를 보고 타입을 가려내는 타입스크립트의 가장 우아한 분기 처리." 공통 속성(리터럴 타입)을 사용하여 여러 타입이 섞인 유니온에서 특정 타입을 완벽하게 추론해내는 패턴이다.

📖 구조화된 지식 (Synthesized Content)

  • The Schema:
    • 모든 타입이 동일한 이름의 속성(예: kind 또는 type)을 가지되, 그 값은 고유한 문자열 리터럴이어야 한다.
    • type Shape = { kind: 'circle'; radius: number } | { kind: 'rect'; width: number; height: number };
  • Type Guarding:
    • if 혹은 switch 문으로 kind 값을 체크하면, 스코프 내부에서 타입스크립트가 자동으로 타입을 좁혀준다(Narrowing).
  • Core Benefit:
    • 오타 방지 및 런타임 안정성 확보.
    • 모든 케이스를 처리했는지 검사하는 Exhaustiveness Checking 구현 가능.

⚠️ 모순 및 업데이트 (RL Update)

  • 구별된 유니온은 강력하지만, 데이터 소스가 외부(API 등)인 경우 수신 데이터에 실제로 해당 '이름표'가 있는지 보장할 수 없다. 따라서 Zod와 같은 런타임 스키마 검증 도구로 입구를 보호한 뒤 내부 로직에서 유니온을 사용하는 것이 모범 사례다.

🔗 지식 연결 (Graph)