질문 : GUID와 UUID간에 차이점이 있습니까?
이 두 가지 약어가 던져져 있는데 GUID와 UUID 사이에 차이점이 있는지 궁금합니다.
답변
간단한 대답 은 다음과 같습니다. ** 차이가 없으며 동일합니다.
2020-08-20 업데이트 : GUID (Microsoft에서 사용됨) 및 UUID (RFC4122에서 정의 됨)는 비슷해 보이고 비슷한 용도로 사용되지만 미묘하지만 때때로 중요한 차이점이 있습니다. 특히 일부 Microsoft GUID 문서 에서는 GUID가 모든 위치에 16 진수를 포함 할 수 있지만 RFC4122는 version
및 variant
필드에 대한 특정 값을 요구합니다. 또한 [동일한 링크 당] GUID는 모두 대문자 여야 하지만 UUID는 "소문자로 출력되며 입력시 대소 문자를 구분하지 않습니다". 이로 인해 코드 라이브러리 (예 : this )간에 비 호환성이 발생할 수 있습니다.
(원래 답변은 다음과 같습니다)
고유 한 값으로 사용되는 16 바이트 (128 비트) 값으로 처리하십시오. Microsoft-speak에서는 GUID라고하지만 Microsoft-speak를 사용하지 않을 때는 UUID라고합니다.
UUID 사양과 Microsoft의 작성자조차도 동의어라고 주장합니다.
- IETF RFC 4122 소개에서 " UUID (Universally Unique IDentifier) URN 네임 스페이스 ": "GUID (Globally Unique IDentifier)라고도하는 UUID (Universally Unique IDentifier)를위한 Uniform Resource Name 네임 스페이스").
- ITU-T 권고 X.667, ISO / IEC 9834-8 : 2004 국제 표준에서 : "UUID는 GUID (Globally Unique Identifier)라고도하지만이 용어는이 권고에서 사용되지 않습니다."
- Microsoft 는 GUID가 UUID RFC에 의해 지정되었다고 주장 합니다. "Microsoft Windows 프로그래밍 및 Windows 운영 체제에서 [RFC4122]에 지정된 GUID (Globally Unique Identifier)는 ... UUID라는 용어 )는 Windows 프로토콜 사양에서 GUID의 동의어로 사용되기도합니다. "
그러나 정답 은 질문이 "UUID"라고 말할 때 의미하는 바에 따라 다릅니다.
첫 번째 부분은 질문자가 "UUID"를 말할 때 생각하는 것에 달려 있습니다.
Microsoft의 주장은 모든 UUID가 GUID임을 의미합니다. 그러나 모든 GUID가 실제 UUID입니까? 즉, 모든 UUID 집합이 모든 GUID 집합의 적절한 하위 집합입니까, 아니면 정확히 동일한 집합입니까?
RFC 4122의 세부 사항을 살펴보면 UUID의 4 가지 "변형"이 있습니다. 이는 대부분 UUID 사양을 만들 때 해당 사양이 통합되기 전에 이러한 16 바이트 식별자가 사용 되었기 때문입니다. RFC 4122 의 섹션 4.1.1에서 UUID의 네 가지 변형 은 다음과 같습니다.
- 예약형 네트워크 컴퓨팅 시스템의 이전 버전 호환성
- RFC 4122에 명시된 변종 (그 중 "versions"라고 불리는 5개의 하위 변수가 있다)
- 예약, Microsoft Corporation 이전 버전과의 호환성
- 미래 정의를 위해 예약됨.
RFC 4122에 따르면 모든 UUID 변형 은 "실제 UUID"이고 모든 GUID는 실제 UUID입니다. "GUID와 UUID 사이에 차이가 있습니까?"라는 문자적인 질문에 대한 대답은 RFC 4122 UUID에 대해 확실히 아니오입니다. 차이는 없습니다 (그러나 아래 두 번째 부분에 따라 다름).
그러나 모든 GUID가 변형 2 UUID는 아닙니다 (예 : Microsoft COM에는 변형 3 UUID 인 GUID가 있음). 질문이 "GUID와 변형 2 UUID간에 차이가 있습니까?"인 경우 대답은 예입니다. 다를 수 있습니다. 질문을하는 사람은 아마도 변형 에 대해 모르고 "UUID"라는 단어를 말할 때 변형 2 UUID 만 생각할 수 있습니다 (예 : MAC 주소 + 시간 및 UUID의 난수 알고리즘 형태를 모호하게 알고 있습니다. 두 버전 모두 변형 2). 어떤 경우에 대답은 예 입니다.
그래서 대답은 부분적으로 질문하는 사람이 "UUID"라는 단어를 말할 때 생각하는 것에 달려 있습니다. 변형 2 UUID (그들이 알고있는 유일한 변형이기 때문에) 또는 모든 UUID를 의미합니까?
두 번째 부분은 UUID의 정의로 사용되는 사양에 따라 다릅니다.
혼란 스럽다고 생각되면 RFC 4122 와 완벽하게 기술적으로 호환되고 정렬되어야 하는 ITU-T X.667 ISO / IEC 9834-8 : 2004 를 읽어보십시오. 11.2 절에는 "이 권고 | 국제 표준을 준수하는 모든 UUID는 옥텟 7의 비트 7이 1로 설정되고 옥텟 7의 비트 6이 0으로 설정된 변형 비트가 있어야합니다"라는 추가 문장이 있습니다. 즉, 변형 2 UUID 만 해당 표준을 준수합니다 (두 비트 값은 변형 2를 의미 함). 이것이 사실이면 모든 GUID가 ITU-T / ISO / IEC UUID를 준수하는 것은 아닙니다. 준수 ITU-T / ISO / IEC UUID는 변형 2 값만 될 수 있기 때문입니다.
따라서 실제 답변은 질문이 묻는 UUID 사양에 따라 다릅니다. GUID 및 IETF의 UUID를 사이에 차이가 없지만, 예 GUID 및 ITU를-T 준수 / ISO / IEC의 UUID가 차이 : 우리가 분명히 모든 UUID를 얘기하고 2 UUID를 단지 변형되지 않은 가정!
바이너리 인코딩은 다를 수 있습니다.
바이너리로 인코딩 된 경우 (사람이 읽을 수있는 텍스트 형식과 반대) GUID는 다음과 같이 4 개의 다른 필드가있는 구조에 저장 될 수 있습니다. 이 형식은 처음 3 개 필드의 바이트 순서 만 [UUID 표준] 8과 다릅니다.
Bits Bytes Name Endianness Endianness
(GUID) RFC 4122
32 4 Data1 Native Big
16 2 Data2 Native Big
16 2 Data3 Native Big
64 8 Data4 Big Big
출처 : https://stackoverflow.com/questions/246930/is-there-any-difference-between-a-guid-and-a-uuid
'개발관련 > other' 카테고리의 다른 글
Subversion에서 파일을 무시하는 방법 (0) | 2021.10.05 |
---|---|
AngularJS : $ scope. $ apply () 호출시 $digest already in progress 오류 해결방법 (0) | 2021.10.01 |
Angular / RxJs`Subscription` 구독 취소 시기 (0) | 2021.09.30 |
오래되고 사용되지 않는 Docker 이미지를 제거하는 방법 (0) | 2021.09.29 |
Haskell은 현실 세계에서 무엇에 사용되는가? (0) | 2021.09.28 |