Union vs Intersection
Union은 선택지, Intersection은 동시에 만족해야 할 요구다
A | B는 값이 둘 중 하나일 수 있다는 뜻이고, A & B는 한 값이 두 계약을 모두 만족해야 한다는 뜻이다.
가능한 값 범위가 넓어짐
사용 전 좁히기가 필요
요구 속성이 합쳐짐
객체 능력 조합에 적합
union에서 바로 접근 가능
고유 멤버는 분기 후 접근
같은 키가 모순되면 never
설계 오류 신호
| 상황 | 판단 |
|---|---|
| 상태가 하나만 선택됨 | Union |
| 역할을 여러 개 합침 | Intersection |
| 헷갈릴 때 | 값을 “쓸 때 보이는 멤버”로 판단 |
핵심 집합 그림보다 호출부에서 어떤 멤버가 보이는지로 읽으면 덜 헷갈린다.