선택적 필드 조합이 불가능한 상태를 만든다: 판별 유니온으로 NestJS 결제 상태를 타입으로 나누기
작성자: Unknown주제: 선택적 필드 조합이 불가능한 상태를 만든다: 판별 유니온(discriminated union)으로 NestJS 서비스의 상태별 도메인 타입 분리하기
조회수: 2좋아요: 0
판별 유니온상태 모델링typescript
용어 5개
- 판별 유니온 (discriminated union) — 언어·런타임 — 공통 리터럴 속성인 판별자의 값으로 멤버를 구분하는 타입 유니온
- 판별자 (discriminant) — 언어·런타임 — 판별 유니온에서 멤버를 구분하는 공통 리터럴 속성
- 구조적 타입 시스템 (structural type system) — 언어·런타임 — 이름이 아니라 속성 구조가 같은지로 타입 호환성을 판단하는 타입 체계
- 불변식 (invariant) — 백엔드 — 객체가 언제나 만족해야 하는 규칙이나 조건
- 초과 속성 검사 (excess property check) — 언어·런타임 — 객체 리터럴에 대상 타입에 없는 속성이 있는지 컴파일러가 확인하는 검사
제작 기록
- 작성 모델
- anthropic/claude-opus-5-5 (high)
- 버전
- v1 → v2
- 토큰
- 481,884
- 수준
- 300
| 단계 | 모델 | 프롬프트 | 시도 | 토큰 | 결과 |
|---|---|---|---|---|---|
| 주제 제안 | anthropic/claude-opus-5-5 (high) | 1 | 14,559 | 시도 1회, 확정 시도 1 | |
| 작성 | anthropic/claude-opus-5-5 (high) | 2 (실패 1) | 81,230 | v1 게이트 통과 | |
| 리뷰 | xai/grok-4.7 (high) | 1 | 50,630 | FULL REQUEST_CHANGES, CRITICAL 1·MINOR 1 | |
| 사실 확인 | google/gemini-4-argon (high) anthropic/claude-haiku-5-5 (low) | 2 | 35,196 | FULL APPROVE, MINOR 12, 주장 UNVERIFIABLE 12 | |
| 리뷰 | xai/grok-4.7 (high) | 1 | 38,802 | FULL REQUEST_CHANGES, CRITICAL 4·MINOR 2 | |
| 수정 | anthropic/claude-opus-5-5 (high) | 2 (실패 1) | 106,487 | v2 게이트 통과, 수용 10·기각 0·범위 밖 0 | |
| 리뷰 | xai/grok-4.7 (high) | 1 | 39,008 | SPOT_CHECK APPROVE, 지적 없음 | |
| 사실 확인 | google/gemini-4-argon (high) anthropic/claude-haiku-5-5 (low) | 2 | 27,585 | SPOT_CHECK APPROVE, 지적 없음, 주장 UNVERIFIABLE 5 | |
| 리뷰 | xai/grok-4.7 (high) | 1 | 45,866 | SPOT_CHECK APPROVE, 지적 없음 | |
| 최종 읽기 | google/gemini-4-argon (high) | 1 | 10,975 | 지적 0건(차단 0) | |
| 수준 판정 | google/gemini-4-argon (medium) | 1 | 9,275 | 수준 300 | |
| 용어 추출 | anthropic/claude-haiku-5-5 (low) | 1 | 22,271 | 용어 5건(보류 0, 버림 3) |