1.7 KiB
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 |
|
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)
- Related: Exhaustiveness-Checking , Type-Guards
- Context: Redux-Reducers-Design