정수 ID에 단일 케이스 유니온 대신 측정 단위를 써 보고 있는데, 더 퍼지기 전에 다른 의견을 듣고 싶어요. CustomerId of int는 [<Struct>]를 붙이지 않으면 할당이 생기고, 쓸 때마다 생성자나 매치를 거쳐야 해요. [<Measure>] type customerId로 하면 ID는 int<customerId>가 되고, 단위는 실행 시점에 지워지며, 고객 ID 자리에 int<orderId>를 넘기면 컴파일이 안 돼요.
지금까지 찾은 비용은 작지만 분명히 있어요. 단위는 숫자 타입에만 붙어서 문자열 ID는 여전히 유니온이 필요해요. 그냥 숫자로 되돌리려면 int id라고 쓰는데, 읽기엔 괜찮아요. 그리고 리플렉션 기반 JSON 직렬화기는 그냥 int로 보기 때문에 들어올 때 단위를 손으로 다시 붙여야 하고, 바로 그 자리에서 뒤바뀜이 끼어들 수 있어요.
내부 ID는 단위로, 바깥에서 값이 들어오는 가장자리는 유니온으로 나누면 어떨까요? 다음에 읽을 사람에게 그 구분을 설명할 만한 가치가 있는지는 아직 잘 모르겠어요.