UUID 생성기

웹사이트에 추가 메타정보

다른 도구들

UUID/GUID 제너레이터

UUID/GUID 제너레이터

GUID(Globally Unique Identifier)라고도 하는 UUID(Universally Unique Identifier)는 컴퓨터 시스템에서 널리 사용되었습니다.

변수와 상수(현재 시간, MAC 주소, SHA-1 해시, MD5 네임스페이스)를 기반으로 시스템에서 생성되는 128비트 코드입니다. 하이픈으로 구분된 32자의 영숫자 코드로 표시되는 UUID 생성의 최종 결과는 임의로 보일 수 있지만 실제로는 복잡한 계산의 결과입니다. 따라서 컴퓨터는 코드를 '발명'하는 것이 아니라 주어진 시간에 관련된 특정 기술 수량으로 코드를 형성합니다.

서로 다른 시간에 두 대의 다른 컴퓨터에서 동일한 UUID가 생성될 확률은 0인 경향이 있으므로 조정 센터를 참조하지 않고 포인트/로컬 데이터 식별을 위해 결과 코드를 사용할 수 있습니다. 오늘날 UUID/GUID는 온라인 및 오프라인 네트워크에서 유비쿼터스이며 글로벌 인터넷 공간뿐만 아니라 독립형 컴퓨터 시스템에서도 효과적으로 작동합니다.

UUID 기록

128비트 UUID 코드는 1980년대 미국 회사인 Apollo Computer에서 처음 사용되었습니다. 도메인/OS에서 사용되는 더 간단한 64비트 코드를 기반으로 했으며 Open Software Foundation 컴퓨팅 환경에서 널리 사용되었습니다.

최초의 Windows 플랫폼이 등장하면서 전역적으로 고유한 식별자가 일반화되고 표준화되었습니다. Microsoft는 Apollo Computer의 DCE 설계를 채택하고 URN 네임스페이스를 RFC 4122에 등록했습니다. 2005년에는 IETF에서 새로운 표준으로 후자를 제안했고 UUID는 ITU 내에서 표준화했습니다.

2002년 초에 UUID를 로컬 데이터베이스의 기본 키로 사용할 때 시스템 성능 문제가 확인되었습니다. 버전 4에서는 컴퓨터의 시스템 시간을 기반으로 임의가 아닌 접미사를 추가하여 수정했습니다. 소위 COMB(Combined GUID Time Identifier) ​​접근 방식은 코드 중복의 위험을 증가시켰지만 동시에 Microsoft SQL Server로 작업할 때 성능을 크게 향상시켰습니다.

IT 기술의 발달로 범용 고유 식별자는 더 이상 고도로 전문화된 기술 도구가 아니며 오늘날 모든 사람이 사용할 수 있습니다. 생성된 코드의 반복 가능성은 0이 아니지만 경향이 있으며 모든 디지털 정보를 식별할 수 있으며 그 후에는 반복 위험을 최소화하면서 단일 데이터 배열로 결합할 수 있습니다.

UUID 혜택

글로벌 고유 코드 생성기는 중앙 집중식 데이터 조정/동기화를 필요로 하지 않으며 모든 사용자가 자유롭게 사용할 수 있습니다. UUID의 주요 장점은 다음과 같습니다.

  • 코드 "충돌"(반복) 위험 최소화. 대량 사용에도 불구하고 반복 가능성은 0이 되는 경향이 있습니다.
  • UUID를 기본(고유) 키로 사용하여 다양한 데이터 배열을 조인하는 기능
  • 여러 분산 서버에 걸쳐 간소화된 데이터 배포
  • 오프라인에서 코드를 생성하는 기능

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx 형식으로 작성된 고유 식별 코드를 통해 분산 시스템은 단일 데이터 센터에서 조정하지 않고도 오류/반복 가능성이 거의 없이 정보를 인식할 수 있습니다. 이 기능은 사용 용이성 및 컴퓨터 성능에 대한 낮은 요구 사항과 함께 UUID를 요구하며 다양한 IT 산업 및 자율 컴퓨팅 시스템에서 필수 불가결합니다.

범용 고유 식별자

범용 고유 식별자

UUID는 다양한 알고리즘과 변수/상수 값을 사용하여 코드를 생성할 수 있습니다.

생성 시 시스템 날짜/시간 및 MAC 주소, DCE 보안 프로토콜, MD5 해시, SHA-1 해시 및 네임스페이스를 사용하여 총 5가지 버전의 식별자가 있습니다.

모든 경우에 최종 결과는 xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx(소문자 라틴 문자와 숫자로 구성되고 하이픈으로 다섯 블록으로 나눈 16진수 표기법의 숫자: 8-4) 형식으로 표시됩니다. -4-4- 12), M은 버전, N은 UUID 변형을 나타냅니다.

따라서 시스템은 한 번에 36자(문자 26개와 숫자 10개)를 사용하므로 전 세계 수백만 명의 사용자가 매일 생성하고 있음에도 불구하고 32자리 코드를 반복할 확률은 0에 가깝습니다.

UUID 버전

버전 1

고유 식별자의 첫 번째 버전은 코드를 생성할 때 컴퓨터의 MAC 주소와 시스템 시간을 기반으로 하며, 그 수치는 초당 1회 변경됩니다. 생성 프로세스는 5단계로 구성됩니다.

  • 하위 32비트 정보는 UTC 태그에서 가져옵니다. 8개의 16진수 문자로 변환되며 4바이트를 차지합니다.
  • 평균 16비트 정보는 동일한 UTC 레이블에서 가져와 2바이트를 차지하는 4개의 16진수 문자로 변환됩니다.
  • UTC 태그의 상위 12비트 정보를 가져와 4개의 16진수 문자로 변환합니다.
  • 또 다른 1-3비트가 클록 시퀀스에 있으며 어느 정도의 임의성/불확실성을 도입하여 충돌 위험을 줄입니다. 시스템 시간은 조건부로 느려지거나 다시 설정되어 동일한 컴퓨터에서 동시에 작동하는 두 개 이상의 식별자가 "교차"하지 않습니다.
  • 나머지 6바이트는 장치의 MAC 주소를 기반으로 생성된 상수 값입니다. 12개의 16진수 문자로 구성되며 크기는 48비트입니다.

UUID의 첫 번째 버전의 알고리즘은 시스템 시간과 불가분의 관계가 있기 때문에 클록 시퀀스의 사용은 필수입니다. 그렇지 않으면 시스템 시간이 하나 또는 다른 값에서 "정지"되는 두 번째 동안 동일한 코드를 생성할 위험이 여러 번 증가합니다.

버전 2

두 번째 버전은 첫 번째 버전과 최소한의 차이가 있으며 실제로 거의 사용되지 않습니다. 클록 시퀀스 대신 사용자 데이터 또는 다른 컴퓨터에서 반복되지 않거나 매우 드물게 반복되는 기타 고유 값에 연결된 시스템 식별자를 사용합니다. 두 번째 버전은 임의성의 영향을 최소화하고 분산 컴퓨팅 환경의 보안을 개선하는 데 사용할 수 있습니다.

버전 3 및 5

그들은 공통점이 많습니다. 고유한 이름과 이름(MD5 공간에서 가져옴)을 사용하여 코드, 즉 무작위가 아닌 값을 생성합니다. 버전 3만 표준 해시를 사용하고 버전 5는 SHA-1 해시를 사용합니다. 이러한 식별자는 무작위 변수에 덜 의존합니다.

버전 4

이 UUID 버전의 생성은 90% 이상 무작위입니다. 상수 값은 6비트, 임의 값은 122비트로 구성되어 있으며, 알고리즘의 구현은 128비트의 정보를 먼저 무작위로 생성하고 그 중 6비트를 버전 및 변형 데이터로 대체하는 것입니다.

네 번째 버전에서 의사 난수 생성기의 역할은 최대이며, 알고리즘이 너무 단순하면 반복/충돌의 위험이 크게 증가합니다. 그럼에도 불구하고 가장 일반적이고 실제로 자주 사용되는 것은 네 번째 버전입니다.

UUID 옵션

독특한 UUID는 컴퓨터 기술이 발전함에 따라 여러 번 정제되었으며 현재 여러 버전으로 제공됩니다.

옵션 0

기존 Apollo Network Computing System 1.5 1988 형식 데이터베이스와 함께 작동하도록 설계되었습니다. 이 옵션은 이전 버전과 호환되며 NCS 과거 UUID와 충돌하지 않습니다.

옵션 1 및 2

최신 데이터 블록 및 배열을 식별하는 데 사용되며 정규 텍스트 형식에서는 변형 비트를 쓰는 순서를 제외하고는 서로 다르지 않습니다. 따라서 옵션 1은 big-endian 바이트 순서를 사용하고 옵션 2는 title-endian을 사용합니다. 첫 번째는 기본이고 두 번째는 Microsoft Windows의 초기 GUID 작업용으로 예약되어 있습니다.

옵션 3

현재 사용하지 않습니다. 이전 옵션의 가능성이 소진되었을 때 향후 사용을 위해 예약된 버전입니다.

대부분의 시스템은 big-endian으로 식별자를 인코딩하지만 예외가 있습니다. 예를 들어 Microsoft COM/OLE 라이브러리의 마샬링은 혼합 엔디안을 사용하는 동시에 제목 엔디안 및 빅 엔디안 블록에서 코드를 생성합니다. 첫 번째는 UUID의 처음 세 가지 구성 요소이고 두 번째는 마지막 두 가지입니다.