Union vs Intersection

Union은 선택지, Intersection은 동시에 만족해야 할 요구다

A | B는 값이 둘 중 하나일 수 있다는 뜻이고, A & B는 한 값이 두 계약을 모두 만족해야 한다는 뜻이다.

Union A | B
가능한 값 범위가 넓어짐
사용 전 좁히기가 필요
Intersection A & B
요구 속성이 합쳐짐
객체 능력 조합에 적합
공통 멤버
union에서 바로 접근 가능
고유 멤버는 분기 후 접근
충돌
같은 키가 모순되면 never
설계 오류 신호
상황판단
상태가 하나만 선택됨Union
역할을 여러 개 합침Intersection
헷갈릴 때값을 “쓸 때 보이는 멤버”로 판단

핵심 집합 그림보다 호출부에서 어떤 멤버가 보이는지로 읽으면 덜 헷갈린다.