GUID와 UUID간에 차이점이 있습니까?


865

나는이 두 약어가 던져지는 것을 보았고 GUID와 UUID 사이에 차이점이 있는지 궁금합니다.


183
"GUID"라고 말할 수 있고 "UUID"라고 말할 수 없습니다.
Hardwareguy

48
UUID을 "you-wid"로 발음
Matt Greer

106
나는 "당신이 당신에게 나"라고 말하지만, 나는 원어민이 아닙니다 ...
Wilt

20
UUID 사양 ( RFC-4122 )은 다음과 같이 요약합니다. 이 사양은 GUID (Globally Unique IDentifier)라고도하는 UUID (Universally Unique IDentifier)에 대한 Uniform Resource Name 네임 스페이스를 정의합니다.
Tom

88
UUID는 보편적으로 고유하며 (universe-scope) GUID는 전역 적으로 고유합니다 (globe-scope). 둘 다 고유하지도 않습니다. 즉 MUID가 아닙니다. 원칙적으로 GUID를 행성 간 사용해서는 안된다는 의미입니다. 그 외에는 거의 교환이 가능합니다.
rsp

답변:


816

대답은 간단 하다 : 차이는 , 그들은 같은 일을하지 않습니다. 고유 값으로 사용되는 16 바이트 (128 비트) 값으로 취급하십시오. Microsoft 말하기에서는 GUID라고하지만 Microsoft 말하기를 사용하지 않을 때는 UUID라고합니다.

UUID 사양의 저자와 Microsoft조차도 동의어라고 주장합니다.

  • IETF RFC 4122 소개부터 " UUID (Universally Unique IDentifier) ​​URN 네임 스페이스 ": "UID (Universally Unique IDentifier)에 대한 통일 리소스 이름 네임 스페이스 (GUI) (Globally Unique IDentifier)라고도 함)

  • 로부터 ITU-T 권고 X.667, ISO / IEC 9834-8 : 2004 국제 표준 : "UUID를도 전역 고유 식별자 (GUID)로 알려져 있지만,이 용어는이 표준에서 사용되지 않습니다."

  • 또한 Microsoft 는 UUID RFC에 의해 GUID가 지정되어 있다고 주장 합니다. "Microsoft Windows 프로그래밍 및 Windows 운영 체제에서 [RFC4122]에 지정된 GUID (Globally Unique Identifier)는 ... UUID (Universally Unique Identifier)라는 용어입니다. )는 Windows 프로토콜 사양에서 GUID와 동의어로 사용되기도합니다. "

그러나 정답 은 "UUID"라고 말할 때 질문의 의미에 따라 다릅니다.

첫 번째 부분은 "UUID"라고 말할 때 질문자가 생각하는 것에 달려 있습니다.

Microsoft의 주장은 모든 UUID가 GUID임을 암시합니다. 그러나 모든 GUID는 실제 UUID입니까? 즉, 모든 UUID 세트가 모든 GUID 세트의 적절한 서브 세트입니까, 아니면 정확히 동일한 세트입니까?

RFC 4122의 세부 사항을 살펴보면 UUID의 4 가지 "변형"이 있습니다. 이는 UUID 스펙 작성시 해당 스펙이 결합되기 전에 이러한 16 바이트 ID가 사용 되었기 때문입니다. RFC 4122 의 섹션 4.1.1 에서 UUID 의 네 가지 변형 은 다음과 같습니다.

  1. 예약, 네트워크 컴퓨팅 시스템 이전 버전과의 호환성
  2. 변형 RFC 4122에 지정된는 (이 중 "버전"이라고 다섯 하위 변종이 있습니다)
  3. 예약, Microsoft Corporation 이전 버전과의 호환성
  4. 향후 정의를 위해 예약되어 있습니다.

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의 정의로 사용되는 사양에 따라 다릅니다.

혼동 스럽다고 생각되면 ITU-T X.667 ISO / IEC 9834-8 : 2004읽고 RFC 4122 와 완벽하게 기술적으로 호환되도록해야합니다 . 이 표준은 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 사양에 따라 다릅니다. 없다 : 우리가 분명히 모든 UUID를 얘기하고 2 UUID를 단지 변형되지 않는 가정 에는 차이 GUID 및 IETF의 UUID를 사이,하지만 네 차이 GUID 사이 부합하는 ITU를-T / ISO / IEC의 UUID를!

이진 인코딩은 다를 수 있습니다

(사람이 읽을 수있는 텍스트 형식과 달리) 바이너리로 인코딩 될 때, GUID 다음과 같이 4 개의 다른 필드를 갖는 구조 로 저장 될 수있다 . 이 형식은 처음 3 개 필드의 바이트 순서에서만 UUID 표준 과 다릅니다 .

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

35
선택된 답변보다 더 유익한 정보. 그러나 선택한 답변은 질문에 대한 가장 간단한 답변이라고 생각합니다.
새로운 Alexandria

3
답변에 포함 된 이진 인코딩 테이블은 매우 유용합니다. Tnx
Luciano

2
'엔디안'은 매우 중요합니다. id를 바이트로 저장하면 GUID와 UUID에서 다른 결과를 얻을 수 있습니다.
Calabacin

그리고 존재가 단지 665 개의 공감대에 갇혀 있다고 상상해보십시오! 어떻게 이것을 공표 할 수 없습니까?
Haakon Løtveit

655

GUID는 Microsoft의 UUID 표준 구현입니다.

위키 백과 당 :

GUID라는 용어는 일반적으로 UUID ( Universally Unique Identifier ) 표준 의 Microsoft 구현을 나타냅니다 .

동일한 Wikipedia 기사에서 인용 한 업데이트 :

RFC 4122 자체는 UUID가 "GUID라고도합니다"라고 명시하고 있습니다. 이 모든 것이 "GUID"는 원래 Microsoft에서 사용하는 변형 된 UUID를 지칭하지만 UUID의 대체 이름이되었습니다.


39
(G는 Globally의 약자)
ted.strauss

487
마이크로 소프트처럼 모든 곳 (우주)에서 작동하고 아주 작은 부분 집합 (지구)에서 작동하도록하기 위해 :)
Gus

33
Microsoft의 GUID 이진 표현에서 표준 UUID로 변환하려면 "이진 인코딩"섹션에 설명 된대로 처음 세 (4 개) 데이터 필드의 엔디안을 뒤집어 야합니다. en.wikipedia.org/ wiki / Globally_unique_identifier
양식

87
우주 비행사가 ISS에 Windows를 설치할 수없는 이유입니다.
intuited

10
@bdukes는 Wikipedia가 당신이 그들의 진술로 언급 한 것을 바꿨다. 이제 읽습니다The term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
Khadim Ali

13

실제로는 아닙니다. GUID는 Microsoft 중심이지만 UUID는 더 광범위하게 사용됩니다 (예 : urn : uuid : URN 체계 및 CORBA).


1
Microsoft 중심의 정의와 효과는 무엇입니까?
Karl Richter


0

Microsoft의 GUID텍스트 표현은 두 개의 중괄호로 둘러싸인 UUID의 형태 일 수 있습니다 {}.


6
이것은 GUID의 텍스트 표현만을위한 것입니다. 실제 구조는 다릅니다.
익명

-2

SQL Server의 GUID와 PostgreSQL의 UUID의 한 가지 차이점은 소문자입니다. PostgreSQL의 출력은 낮지 만 SQL Server의 출력은 위쪽입니다.

16 진수 값 "a"~ "f"는 소문자로 출력되며 입력시 대소 문자를 구분하지 않습니다. - rfc4122 번호 섹션-3

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.