이번엔 UUID가 뭔지, 어떤 원리도 만들어지는지 공부해보았습니다.
UUID
UUID는 Universally Unique IDentifier 의 약자로 범용 고유 식별자입니다.
- UUID는 전 세계에 중복 없는 고유한 값으로, 그 고유성이 중앙 서버나, 생성 당사자 간의 조정에 의존하지 않습니다.
- UUID가 복제될 확률은 무시할 수 있을 정도의, 0에 가까운 것으로 간주됩니다.
- UUID는 앱 삭제시 기존 값이 초기화되어 재생성됩니다.
- 재설치에도 같은 값이 필요하다면 KeyChain 등에 저장해야합니다.
- UUID에는 총 4가지 버전이 존재하는데, Apple에서는 version4(Random)을 제공합니다.
- 128비트(16 옥텟)의 수입니다.
- 16진수로 표현됩니다.
- 총 36개의 문자(32개의 문자 + 4개의 하이픈)를 포함해, 8-4-4-4-12 형태로 구성되어있습니다.
- Ex.
550e8400-e29b-41d4-a716-446655440000
Version
- Version 1
생성된 장치의 MAC 주소와 1582년 10월 15일부터 100나노초 단위로 측정된 현재 타임스탬프를 기반으로 합니다.
- Version 2
DCE 보안의 방식으로 생성되며, 자세한 내용을 RFC에서 제공하지 않는다.
- Version 3, 5
무작위가 아닌 입력 문자열과 네임 스페이스로 구성되며,
3은 MD5 해시를 기반으로, 5는 SHA-1 해시를 기반으소 생성됩니다.
- Version 4
- 무작위로 생성됩니다.
- 경우의 수는 2^122로 복제될 확률은 거의 희박합니다.
Swift에서 UUID 생성하는 방법
print(UUID.init())
print(UUID().uuidString)