| r23 | ||
|---|---|---|
| r1 (삭제된 사용자) | 1 | [[분류:식별 번호]][[분류:컴퓨터 공학]] |
| 2 | [목차] | |
| 3 | [clearfix] | |
| 4 | == 개요 == | |
| 5 | {{{+2 '''U'''niversally '''U'''nique '''Id'''entifier, UUID}}} | |
| 6 | ||
| 7 | 다양한 분야에서 활용되는 고유 식별자 표준이다. | |
| 8 | ||
| 9 | == 구성 == | |
| r16 | 10 | ||<bgcolor=#fff,#2d2f34><tablealign=center> a6446790-d3a6-'''4'''583-8f68-0f766f5f3800 || |
| r1 (삭제된 사용자) | 11 | || UUID 버전 4 예시 || |
| 12 | 128비트 형식으로 [[16진수]] 32개와 4개의 하이픈(-)을 조합한 8-4-4-4-12의 패턴으로 구성되어 있다. 중간에 있는 '''볼드체'''는 UUID 버전을 의미한다. | |
| 13 | ||
| 14 | == 버전 == | |
| 15 | 버전 1부터 8까지 존재하며 버전 별로 생성 방식이 다르다. 가장 흔히 쓰이는 버전 4는 무작위 생성 방식을 가지고 있다. | |
| 16 | * '''버전 1''': [[MAC 주소]]와 타임스탬프를 사용해 고유성을 보장하는 UUID로, 생성 시점과 장치 정보를 포함한다. | |
| 17 | * '''버전 2''': DCE 보안 목적의 UUID로, 실제로는 거의 사용되지 않으며 대부분의 구현체에서 생략된다. | |
| r2 (삭제된 사용자) | 18 | * '''버전 3''': 128비트의 [[MD5]] 해시 함수를 사용해 네임스페이스와 이름으로부터 결정론적으로 UUID를 생성한다. |
| r4 | 19 | * '''버전 4''': 완전히 무작위로 생성되는 UUID로, 122비트를 랜덤하게 채워 매우 높은 고유성을 제공한다. [[the seed]]에서 채용한 버전의 UUID이다. |
| r2 (삭제된 사용자) | 20 | * '''버전 5''': 160비트의 [[SHA-1]] 해시 함수를 사용해 '''버전 3'''과 유사하게 작동하지만, 더 안전한 해시 알고리즘을 채택한다. |
| r1 (삭제된 사용자) | 21 | * '''버전 6''': '''버전 1'''과 구조는 동일하나, 타임스탬프 비트 순서를 개선해 정렬과 색인이 용이하다. |
| 22 | * '''버전 7''': 밀리초 정밀도 타임스탬프와 랜덤 데이터를 결합해 분산 시스템의 키 생성에 최적화된 UUID이다. | |
| 23 | * '''버전 8''': 커스터마이징할 수 있는 UUID로, 최소한의 버전/변형 제약만 존재한다. | |
| r18 | 24 | === 상세 === |
| r20 | 25 | v1과 v6은 그레고리력의 1582년 10월 15일 자정을 기준으로 하여 100나노초를 1틱으로 계산하고 그 값을 60비트로 치환하는 방식을 사용하나, v7은 유닉스 시간을 기반으로 하여 1970년 1월 1일 자정을 기준으로 하고 그 값을 48비트로 치환하는 방식을 사용한다. |
| r1 (삭제된 사용자) | 26 | |
| r18 | 27 | RFC 4122가 최초 발표되었을 당시에는 v1~5만 있었으나, 9562가 발표된 이후에는 v6~8이 추가되었다. |
| 28 | ||
| r19 | 29 | 구분자에 해당하는 UUID의 17번째 인수는 일반적인 경우 RFC 4122에서 언급된 대로 8, 9, a, b만 사용되나, 네트워크 장비들을 위한 하위 호환에 0~7, c와 d는 Microsoft를 위한 하위 호환이며 f는 후속 규격인 RFC 9562에서 적용된 Max UUID를 위해 사용되었고, e는 아직 정의되지 않았다. |
| 30 | ||
| r1 (삭제된 사용자) | 31 | == 기타 == |
| r17 | 32 | * 00000000-0000-0000-0000-000000000000으로 구성된 Nil/Empty UUID 포맷이 존재한다. 역으로 2진수 기준 모든 비트가 1로 설정된 ffffffff-ffff-ffff-ffff-ffffffffffff로 구성된 Max UUID도 있으나, 후자는 RFC 4122의 대체판인 RFC 9562가 발표됨과 동시에 추가되었다. [[https://www.rfc-editor.org/rfc/rfc9562.html#name-max-uuid|RFC Editor의 RFC 9562 문서 (영문 주의)]] |
| r14 | 33 | * UUIDv4의 17번째 인수는 8, 9, a, b만 존재할 수 있다. 다시 말해 17번째 인수의 2비트는 [[2진수]] 기준 10으로 고정되어 124비트가 아닌 122비트만 사용되는 것이다. 따라서 '44444444-4444-4444-4444-444444444444' 이런 형식의 UUIDv4는 존재할 수 없다. --설령 가능하다고 해도 [[4자 금기]] 때문에 쓰지 않을지도?-- |
| r1 (삭제된 사용자) | 34 | |
| 35 | == [[the seed]]에서 == | |
| 36 | [[the seed]]에서는 계정 변경/삭제 기능이 생긴 후 도입되었으며, 계정 사용자는 계정 생성 즉시, IP 사용자는 최초 활동 즉시 자동 할당된다. IP 사용자의 경우 사람 모양 클릭 시 기여 내역이 없다면 문서/토론 기여 목록 탭이 뜨지 않지만, UUID 할당 이후 해당 페이지로 연결되는 탭이 보인다. | |
| 37 | ||
| r21 | 38 | 여담으로 [[아이피]]로 어떤 문서를 편집한 후 1시간 내에 이 기여를 로그인한 사용자로 이전한다 해도 해당 [[IP]]에 할당된 UUID는 그대로 유지된다. |
| r1 (삭제된 사용자) | 39 | |
| r22 | 40 | [[문서]]를 편집할 때마다 생성되는 각 리비전에도 UUID가 부여되며, 각 리비전의 문서 링크도 기존 리비전 넘버에서 UUID로 바뀌었다. [[더시드위키]], [[알파위키]], [[위브위키]]에서는 기존 리비전 형식의 링크를 입력해도 최신 판의 문서만 열람 가능하나 [[나무위키]]에서는 넘겨주기 처리가 되도록 커스텀 패치가 된 것으로 추정된다. [[https://feedback.theseed.io/posts/1236|관련 the seed 포럼 글]] |
| r8 | 41 | |
| r9 | 42 | == 여담 == |
| r23 | 43 | 가끔씩 [[the seed]] 계열 위키들의 운영진들이 문서를 휴지통화할 때 UUID 4나 7을 표제어로 하여 처리할 때가 있다. |
| r10 | 44 | > ([redacted]에서 휴지통:0199866b-e0b3-7b24-a5c8-53ee9117a6da으로 문서 이동) |
| r11 | 45 | > ---- |
| 46 | > UUID 7 기반 휴지통화 예시 | |
| 47 | ---- | |
| 48 | > (SK하이닉스에서 휴지통:bd1b1573-cf5f-4371-9987-8f7403058688으로 문서 이동) | |
| 49 | > ---- | |
| 50 | > UUID 4 기반 휴지통화 예시 | |
| r9 | 51 | |
| r1 (삭제된 사용자) | 52 | [각주] |
| 53 | [include(틀:문서 가져옴/나무위키, title=UUID, version=37)] |