범용 고유 식별자
범용 고유 식별자(汎用固有識別子, {{#invoke:Langname|link|code=en}}{{#if:|·{{#invoke:Langname|link|code={{{l2}}}}}}}{{#if:|·{{#invoke:Langname|link|code={{{l3}}}}}}}{{#if:|·{{#invoke:Langname|link|code={{{l4}}}}}}}: universally unique identifier{{#if:| {{#if:Template:Lang/도움말 고리|[[[Template:Lang/도움말 고리|*]]]}}|}}Template:일반 기타, UUID)는 소프트웨어 구축에 쓰이는 식별자 표준으로, 개방 소프트웨어 재단(OSF)이 분산 컴퓨팅 환경(DCE)의 일부로 표준화하였다.
개요
네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위해서는 각각의 고유한 이름이 필요하다. 이 이름은 고유성(유일성)이 매우 중요하다. 같은 이름을 갖는 개체가 존재한다면 구별이 불가능해 지기 때문이다. 고유성을 완벽하게 보장하려면 중앙관리시스템이 있어서 일련번호를 부여해 주면 간단하지만 동시다발적이고 독립적으로 개발되고 있는 시스템들의 경우 중앙관리시스템은 불가능하다. 개발주체가 스스로 이름을 짓도록 하되 고유성을 충족할 수 있는 방법이 필요하다. 이를 위하여 탄생한 것이 범용고유식별자(UUID)이며 국제기구에서 표준으로 정하고 있다.
UUID 표준에 따라 이름을 부여하면 고유성을 완벽하게 보장할 수는 없지만 실제 사용상에서 중복될 가능성이 거의 없다고 인정되기 때문에 많이 사용되고 있다.
정의
UUID는 16 옥텟 (128비트)의 수이다. 표준 형식에서 UUID는 32개의 십육진수로 표현되며 총 36개 문자(32개 문자와 4개의 하이픈)로 된 8-4-4-4-12라는 5개의 그룹을 하이픈으로 구분한다. 이를테면 다음과 같다.
- 550e8400-e29b-41d4-a716-446655440000
340,282,366,920,938,463,463,374,607,431,768,211,456개의 사용 가능한 UUID가 있다.
버전
- 버전 1 (MAC 주소)
- 버전 2 (DCE 보안)
- 버전 3 (MD5 해시)
- 버전 4 (랜덤)
- 버전 5 (SHA-1 해시)
이 식별자를 사용하는 언어 / 시스템
- 액션스크립트
- 아파치 Solr
- C
- C++
- Caché 오브젝트스크립트
- CakePHP
- 코코아/카본 (OS X)
- 코드기어 라드 스튜디오 (델파이/C++빌더)
- 코드퓨전
- 커먼 리스프
- CouchDB
- D
- 에펠
- Erlang
- 파이어버드 서버
- 프리 파스칼 & 라자루스 IDE
- 해스켈
- Haxe
- 자바
- 자바스크립트
- KohanaPHP
- Lasso
- 루아
- OS X
- MySQL
- 닷넷 프레임워크
- OCaml
- 오라클 데이터베이스
- 펄
- PHP
- PostgreSQL
- 프로그레스 오픈에지 ABL
- 파이썬
- 레볼루션/RunRev
- 루비
- SAP 비즈니스오브젝트 데이터 서비스
- SQL 서버
- Tcl
- 유닉스
- Openstack
역사
DCE UUID의 초기 디자인은 네트워크 컴퓨팅 시스템에 정의된 UUID에 기반을 두며<ref>Template:서적 인용</ref> 이 디자인은 아폴로 컴퓨터의 운영 체제인 도메인/OS가 정의하여 사용한 (64비트) 고유 식별자의 영향을 받아 만들어졌다.
참조
<references />
바깥 고리
- International Standard "X.667 : … Generation … of Universally Unique Identifiers (UUIDs)…" (ITU-T Rec. X.667 as of 2008-08, freely available)
- International Standard "Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1 Object Identifier components" (ITU-T Rec. X.667 | ISO/IEC 9834-8, freely available)
- A Universally Unique IDentifier (UUID) URN Namespace (IETF RFC 4122)
- Extract the time from a version 1 UUID / GUID
- Global UUID registration function at ITU-T