contents
<aside> 🔑 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규약
</aside>
중앙에서 관리되지 않는 분산 환경이라면 개별 시스템이 id를 발급하더라도 유일성이 보장되어야만 하기 때문에 범용고유식별자 UUID가 탄생했다.
128비트의 숫자, 32자리의 16진수로 표현된다. → 340,282,366,920,938,463,463,374,607,431,768,211,456개의 사용 가능한 UUID 값
8자리 - 4자리 - 4자리 - 4자리 - 12자리 패턴
이름 | 길이(바이트) | 길이(16진수 숫자) | 내용 |
---|---|---|---|
time_low | 4 | 8 | 시간의 low 32비트를 부여하는 정수 |
time_mid | 2 | 4 | 시간의 middle 비트를 부여하는 정수 |
time_hi_and_version | 2 | 4 | 최상위 비트에서 4비트 “version”, 그리고 시간의 high 12비트 |
clock_seq_hi_and_resclock_seq_low | 2 | 4 | 최상위 비트에서 1-3비트, 그리고 13-15비트 클럭 시퀀스 |
node | 6 | 12 | 48비트 노드 id |
2345678–1234–1234–1234–1234567890ab
UUID버전은 1, 3, 4, 5가 있다. 이중 가장 많이 사용되는 건 1, 4버전이다.
고유성을 완벽하게 보장할 수는 없지만 실제 사용 상에서 중복될 가능성이 거의 없다고 인정되기 때문에 많이 사용되고 있습니다.
Apple에서 사용하는 UUID는 RFC 4122의 버전4 방식으로 생성됩니다.
UIDevice.current.identifierForVendor!.uuidString
UUID().uuidString