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를 만들어 낸다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

                                       단점은, 어느 컴퓨터가 언제 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==

 

[출처] https://m.blog.naver.com/PostView.nhn?blogId=acc81tton&logNo=140039201568&proxyReferer=http%3A%2F%2Fwww.google.co.kr%2Furl%3Fsa%3Dt%26rct%3Dj%26q%3D%26esrc%3Ds%26source%3Dweb%26cd%3D3%26ved%3D0ahUKEwi_z93_ytnWAhVDtJQKHZG5Bw0QFgg2MAI%26url%3Dhttp%253A%252F%252Fm.blog.naver.com%252Facc81tton%252F140039201568%26usg%3DAOvVaw1EivDb72A4wYGeN0jGse67

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1220 [一日30分 인생승리의 학습법] Qiskit 시작하기 (Getting Started with Qiskit) file 졸리운_곰 2025.06.03 15
1219 [一日30分 인생승리의 학습법] 양자컴퓨팅 프로그래밍 file 졸리운_곰 2025.06.03 11
1218 [一日30分 인생승리의 학습법] [Git] 다중 리모트를 사용하여 여러 Git 연동하기(Gitea, GitHub) file 졸리운_곰 2025.05.25 6
1217 [一日30分 인생승리의 학습법] [GitHub][terminal] 비밀번호 인증 에러를 토큰으로 해결하고 로그인 하기 file 졸리운_곰 2025.05.24 8
1216 [一日30分 인생승리의 학습법] [알아봅시다] 블록체인 게임들의 가능성과 미래 file 졸리운_곰 2025.04.08 28
1215 이 어지러운시대의 극복법 만화보기 file unmask 2025.04.08 54
1214 [ 一日30分 인생승리의 학습법] IT 국비교육, 쓰레기 속에서 그나마 덜 쓰레기인 곳 찾는 팁 file 졸리운_곰 2025.03.08 21
1213 [ 一日30分 인생승리의 학습법] 소프트웨어 개발하다보면 "connection reset" 등, 소프트웨어 버그 적인 문제가아닌 하드웨어나 네트워크 오류 메시지의 예 file 졸리운_곰 2025.03.01 21
1212 [ 一日30分 인생승리의 학습법] 기술부채(Technical Debt)는 소프트웨어 개발이나 프로젝트 과정에서, 약속된 것과 실제로 제공된 것 사이에 차이가 발생하는 것을 의미합니다. file 졸리운_곰 2025.01.23 32
1211 [ 一日30分 인생승리의 학습법] 고가용성(High Availability) 시스템을 위한 5가지 전략 file 졸리운_곰 2024.12.28 34
1210 [ 一日30分 인생승리의 학습법] 켈리 공식을 간단히 투자해 적용해 보자 - 켈리 크라이티리언과 확률적 사고의 중요성 file 졸리운_곰 2024.12.26 36
1209 [ 一日30分 인생승리의 학습법] [markdown] mermaid를 이용해서 UML 그리기 - 플로우차트 file 졸리운_곰 2024.12.01 50
1208 [ 一日30分 인생승리의 학습법] Mermaid.js 정리???????? file 졸리운_곰 2024.12.01 69
1207 [ 一日30分 인생승리의 학습법] Mermaid를 이용한 시퀀스 다이어그램 file 졸리운_곰 2024.12.01 34
1206 [ 一日30分 인생승리의 학습법] Mermaid - 코드로 순서도(flowchart) 그리기 file 졸리운_곰 2024.12.01 30
1205 [ 一日30分 인생승리의 학습법] 유니코드 그래픽 기호(심벌) Huge List of Unicode Symbols 졸리운_곰 2024.07.31 48
1204 [ 一日30分 인생승리의 학습법] PocketBase Attempt to simplify the serve command for prod : 포켓베이스 프로덕션 포트 도메인 네임 설정 졸리운_곰 2024.06.10 73
1203 [ 一日30分 인생승리의 학습법] google spreadsheet app script 로 코인 현황 : 거래소 API 접근할 때 알아두면 좋은 함수 file 졸리운_곰 2024.06.08 62
1202 [ 一日30分 인생승리의 학습법] 매크로 프로그램 정리 졸리운_곰 2024.06.08 90
1201 [ 一日30分 인생승리의 학습법] 스마트스토어 vs 아임웹 vs 카페24 file 졸리운_곰 2024.05.16 79
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED