본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
요즘 화제
임의의 문서로
sitesupport
사용자 모임
사랑방
사용자 모임
관리 요청
편집 안내
소개
도움말
정책과 지침
질문방
한울위키
검색
검색
보이기
로그인
개인 도구
로그인
전역 고유 식별자 문서 원본 보기
문서
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
보이기
사이드바로 이동
숨기기
←
전역 고유 식별자
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
일반 사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
'''전역 고유 식별자'''(全域固有識別子, {{llang|en|Globally Unique Identifier, GUID}})는 [[응용 소프트웨어]]에서 사용되는 [[유사난수]]이다. GUID는 생성할 때 항상 유일한 값이 만들어진다는 보장은 없지만, 사용할 수 있는 모든 값의 수가 2<sup>128</sup> = 3.4028×10<sup>38</sup>개로 매우 크기 때문에, 적절한 [[알고리즘]]이 있다면 같은 숫자를 두 번 생성할 가능성은 매우 적다. GUID는 [[오라클 DBMS|오라클]] [[데이터베이스]] 등 많은 곳에서 쓰이지만, 가장 눈에 띄는 구현은 아마도 [[마이크로소프트]]의 구현일 것이다. 표준으로는 [[오픈 소프트웨어 파운데이션]](Open Software Foundation, OSF)이 지정한 [[범용 고유 식별자]](Universally Unique Identifier, UUID)가 있다. GUID는 '그위드'라 발음하는데, 이는 특히 마이크로소프트에 의해 사용된다. 다른 발음으로는 '구이드'가 있다. == 기본 구조 == GUID는 16[[바이트]], 즉 128[[비트 (단위)|비트]] 숫자이다. [[16진수]]로 쓰면 다음과 같은 형태이다: : <code>3F 25 04 E0 4F 89 11 D3 9A 0C 03 05 E8 2C 33 01</code> 특별히 규정된 텍스트 표현이 없기 때문에, GUID를 텍스트로 쓰는 방법은 구현에 따라 다를 수 있다. 많이 사용되는 표현 중 하나로 GUID를 순서대로 4바이트, 2바이트, 2바이트, 8바이트로 나눈 뒤 하이픈으로 구분하여 16진수로 작성하고 [[중괄호]]로 묶는 방법이 있다. 다음은 위의 GUID를 이 방법으로 표현한 것이다. : <code>{3F2504E0-4F89-11D3-9A0C0305E82C3301}</code> 비슷하게, [[자료 구조]]로 사용할 때는 다음과 같은 형태가 가장 일반적이다. {| class="wikitable" ! 시작 위치(비트) !! 끝 위치(비트) !! 형식 !! guiddef.h의 C 자료형<sup>[1]</sup> |- | 0 || 31 || 32비트 부호없는 정수 || unsigned long |- | 32 || 47 || 16비트 부호없는 정수 || unsigned short |- | 48 || 63 || 16비트 부호없는 정수 || unsigned short |- | 64 || 127 || 8비트 부호없는 정수 8개 || unsigned char[8] |} : <small>[1] [[C (프로그래밍 언어)|C]] 자료형은 [[컴파일러]]에 따라 크기가 다를 수 있다.</small> == 알고리즘 == 새로운 GUID를 생성하는 OSF의 알고리즘(V1 GUID)은 광범위한 비판을 받고 있다. 이 알고리즘은 GUID의 마지막 숫자 그룹을 생성할 때 사용자 [[네트워크 카드]]의 [[MAC 주소]]를 기반으로서 사용하기 때문에, 특정 문서를 작성한 [[컴퓨터]]를 추적하는 일 등이 가능하도록 하고 있다. 이러한 헛점은 멜리사(Melissa) [[컴퓨터 웜|웜]]을 만든 개발자를 찾는데 사용되기도 하였다. MAC 주소를 사용하는 V1 GUID는 {2f1e4fc0-81fd-'''1'''1da-9156-00036a0f876a}와 같이 세 번째 숫자 그룹의 첫 번째 숫자에 "1"을 사용한다. 이후의 알고리즘을 사용하는 GUID는 MAC 주소 대신 [[난수|임의의 숫자]]를 사용하며, {38a52be4-9352-'''4'''53e-af97-5c3b448652f0}처럼 숫자 "4"를 사용한다. == GUID의 사용 == 마이크로소프트 [[컴포넌트 오브젝트 모델]](COM)에서는 GUID를 [[윈도 구성 요소|구성 요소]]의 [[인터페이스 (컴퓨팅)|인터페이스]]들을 구별하기 위해 사용한다. 즉 서로 호환되지 않을 수 있는 두개의 컴포넌트가 동일한 인터페이스 이름을 사용하더라도, 각각의 인터페이스는 언제나 고유한 GUID를 갖기 때문에 구별할 수 있게 된다. COM에서 사용하는 GUID는 다음과 같다: * IID - 인터페이스 식별자 * CLSID - 클래스 식별자 * LIBID - 타입 라이브러리 식별자 * CATID - 카테고리 식별자 (이 식별자가 클래스에 있으면, 해당 클래스가 특정 클래스 카테고리에 속한다는 것을 표시한다) DCOM은 다음과 같은 GUID를 추가로 더 사용한다: * AppID - 응용 프로그램 식별자 * MID - 기계 식별자 * IPID - 인터페이스 포인터 식별자 (RPC 용 인터페이스에 사용) * CID - 커젤러티(causality) 식별자 (RPC 세션에 사용) * OID - 오브젝트 식별자 (오브젝트 인스턴스에 사용) * OXID - 오브젝트 익스포터 식별자 (RPC를 수행하는 시스템 오브젝트의 인스턴스에 사용) * SETID - 핑 셋 식별자 (오브젝트 그룹에 사용) 위의 GUID들은 쓰이는 형태가 서로 다르다면, 값이 중복되어도 문제가 되지 않는다. 예를 들어, 한 클래스의 CLSID와 다른 클래스의 IID가 서로 같더라도 두 클래스는 문제 없이 존재할 수 있다. 그러나 같은 CLSID를 가지는 두 개의 서로 다른 클래스가 존재하는 것은 불가능하다. GUID는 또한 [[마이크로소프트 오피스]] 프로그램에서 작성한 문서에도 삽입된다. [[능동 스트리밍 포맷]](Advanced Streaming Format, ASF)에서는 각각의 오디오 및 비디오 스트림들에 GUID를 할당하여 식별한다. == XML 기반 배급 포맷 == [[RSS]]의 일부 버전과 [[Atom]]에는 글 또는 웹로그 포스트를 유일하게 구별할 수 있도록 각각 guid 태그와 id 태그를 가지고 있지만, 이들의 쓰임은 조금 다르다. RSS의 guid 태그에는 어떠한 문자열도 사용할 수 있으며, 실제로는 일반적으로 포스트된 [[URL]]을 사용한다. Atom의 id 태그에는 반드시 유효한 [[URI]]를 사용해야 한다. == 같이 보기 == * [[범용 고유 식별자]] == 외부 링크 == * {{언어링크|en}} [https://web.archive.org/web/20040628105211/http://www.infonuovo.com/dma/csdocs/sketch/instidid.htm InstanceId 값을 위한 DmaId (DCE 범용 고유 식별자, UUIDs)] * {{언어링크|en}} [http://www.opengroup.org/onlinepubs/9629399/apdxa.htm 범용 고유 식별자 (UUIDs) DCE variant의 문법과 의미] * {{언어링크|en}} [https://web.archive.org/web/20060615195933/http://www.webdav.org/specs/draft-leach-uuids-guids-01.txt (샘플 코드를 포함하고 있는) Draft UUID specification] * {{언어링크|en}} [https://web.archive.org/web/20170726052655/http://www.ietf.org/rfc/rfc4122.txt 범용 고유 식별자 (UUID) URN Namespace] * {{언어링크|en}} [http://www.famkruithof.net/uuid/uuidgen 웹 UUID (GUID) 생성기] {{위키데이터 속성 추적}} [[분류:식별자]] [[분류:고유 식별자]]
전역 고유 식별자
문서로 돌아갑니다.
검색
검색
전역 고유 식별자 문서 원본 보기
새 주제