나는 GUID를 그냥 Guid.NewGuid()가 만들어주는 랜덤 문자열이라고 생각했다. 그런데 직접 만들어보니 이건 그냥 랜덤이 아니었다.
GUID는 16바이트. 그 안에 시간, 버전, 규격 표시(Variant), 랜덤 값이 정해진 자리에 들어간다.
마음대로 섞인 게 아니다. 구조가 있다.
표준은 RFC 4122 에 정의되어 있다. 읽을 땐 단순해 보였는데 직접 구현하니 비트 하나, 방향 하나까지 신경 써야 했다.
특히 .NET의 Guid는 앞부분 바이트를 다르게 해석해서 엔디언 때문에 한참을 헤맸다. 예전엔 그냥 긴 문자열이었다.
지금은 “16바이트 설계도”로 보인다. 직접 열어보니 비로소 이해됐다....
16바이트의 블랙박스, GUID를 열어보다에 대한 요약내용입니다.
자세한 내용은 아래에 원문링크를 확인해주시기 바랍니다.