1. 태그된 유니온? 이펙티브 타입스크립트 책을 공부하면서, item 32 유니온의 인터페이스보다는 인터페이스의 유니온을 사용하기 파트에서 볼 수 있습니다. 아래와 같은 인터페이스가 있습니다. interface Layer { layout: FillLayout | LineLayout | PointLayout; paint: FillPaint | LinePaint | PointPaint; } layout 이 LineLayout 이면서 paint 속성이 FillPaint 타입인 것은 다소 잘못된 설계 방식을 의미합니다. 이러한 조합을 라이브러리에서 허용한다면, 분명 오류가 발생할 여지를 제공하는 것이며, 이는 인터페이스를 다루는데 있어 많은 어려움을 야기시킵니다. 이를 개선하기 위해선 아래와 같이 각각 타입의 ..