•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

UUID(r25 Blame)

r25
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 예시 ||
12128비트 형식으로 [[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
25v1과 v6은 그레고리력의 1582년 10월 15일 자정을 기준으로 하여 100나노초를 1틱으로 계산하고 그 값을 60비트로 치환하는 방식을 사용하나, v7은 유닉스 시간을 기반으로 하여 1970년 1월 1일 자정을 기준으로 하고 그 값을 48비트로 치환하는 방식을 사용한다.
r1
(삭제된 사용자)
26
r18
27RFC 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
r24
40[[문서]]를 편집할 때마다 생성되는 각 리비전에도 UUID가 부여되며, 각 리비전의 문서 링크도 기존 리비전 넘버에서 UUID로 바뀌었다. [[더시드위키]], [[알파위키]], [[위브위키]]에서는 기존 리비전 형식의 링크를 입력해도 최신 판의 문서만 열람 가능하나 [[나무위키]]에 한해서는 넘겨주기 처리가 되도록 커스텀 패치가 된 것으로 추정된다. [[https://feedback.theseed.io/posts/1236|관련 the seed 포럼 글]]
r8
41
r9
42== 여담 ==
r25
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)]