UUID / GUID 유일 무이한 식별 번호
2017.10.05 22:31
UUID / GUID
UUID (Universally Unique Identifier : 유일 무이한 식별 번호)
Open Software Foundation (OSF)에서 제정한 표준이다. 소프트웨어를 구현할 때에 사용하기 위한 목적이다.
몇 가지 정해진 알고리듬(각 프로그래밍 언어별로 UUID를 만들어 내는 라이브러리가 이미 있다.)에 의해서,
UUID를 만들어 낸다.
각 응용프로그램 내에서 만들어진 UUID는 유일무이하다고 가정하면 된다.
(엄격히 말하면, 중복이 되는 UUID가 생성 될 수도 있으나, 그 가능성은 대단히 희박하다.)
(예로, 데이터베이스에서 키값으로 UUID를 이용하면, 키값이 서로 중복될 염려가 없음)
UUID는 16-byte(128bit) 숫자이다. (32 hexadigit 숫자로 표시가 가능)
따라서 최대로 생성이 가능한 UUID 숫자의 갯수는 2128 = 25616 또는 약 3.4 × 1038 이다.
이 숫자가 얼마나 큰 것이냐 하면,
100억년 동안, 매 1 nano second마다, 10^12 승 개의 UUID를 만들어 내면,
최대로 생성 가능한 UUID 갯수를 모두 만들어 낼 수 있다.
UUID의 표준적인(canonical) 표시 방법은, 아래와 같이 32개의 hexadigit과 4개의 하이픈(-)로 표시를 하는 것이다.
4바이트-2바이트-2바이트-2바이트-6바이트 (예,550e8400-e29b-41d4-a716-446655440000 )
특정 응용 프로그램내에서 서로 다른 것들을 구별하기 위해서 UUID를 사용할 뿐만 아니라, 다음 처럼
서로 다른 응용 프로그램들이 특정 대상을 구별하기 위해서 UUID를 사용할 수도 있다.
예로, 마이크로소프트의 COM(Component Object Model)에서, 모든 컴포넌트들은 IUnknown interface를 구현해야 한다.
이 구현은, IUnknown을 나타내는 UUID를 생성함으로써 이루어진다.
IUnknown이 사용되는 모든 곳에서, 이것은 항상 00000000-0000-0000-C000-000000000046로 식별이 된다.
UUID를 생성하는 실제 구현 알고리즘은 다음과 같다.
version 1 (MAC address) : UUID를 생성시키는 컴퓨터의 MAC 어드레스와 시간 정보를 가지고 UUID를 만들어 낸다.
단점은, 어느 컴퓨터가 언제 UUID를 생성시켰는지의 정보가 남기 때문에, 보안에 문제가 있다.
version 3 (MD5 hash) : URL로 부터 MD5를 이용해서 만들어 내는 방법이다.
version 4 (Random) : Random Number를 이용하는 방법이다.
version 5 (SHA-1 hash) : SHA-1 hashing을 이용하는 방법이다.
각 프로그래밍 언어들마다 UUID를 생성하는 라이브러리 함수들이 있다.
Globally Unique Identifier (GUID)
UUID 표준에 따라, Microsoft에서 구현한 것을 GUID라고 한다. (발음은 "구이드" 라고 해야 한다. )
(그러나 마이크로소프트 이외의 많은 다른 회사들도, UUID 표준을 따라서 자체적으로 만들어 사용하는 독특한 식별 번호들을
GUID라고 부른다. 예로, 오라클의 DataBase에서도 GUID를 사용한다.)
종종 GUID 숫자의 전후에 { } 기호를 붙여서 표시한다. 예로, {3F2504E0-4F89-11D3-9A0C-0305E82C3301}
또는 GUID를 Base64로 표시할 때는 (적은 글자수로 표시하고 싶을 때)
128bit를 6비트씩 자르면, 21개의 글자 + 2bit 가 남는다.
따라서 4비트를 더해서, 마지막 2bit를 6비트로 만들어 주어, 전체가 22글자가 되도록 해준다.
따라서 GUID를 22글자로 표시할 수도 있고, 또는 추가로 ==을 붙여서 24글자로 표시를 할 수도 있다.
예로, 7QDBkvCA1+B9K/U0vrQx1A
또는 7QDBkvCA1+B9K/U0vrQx1A==
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.