본문 바로가기
프로그래밍/JavaScript

Javascript UUID GUID 만들기

by 꾸션 2023. 3. 29.

Javascript로 UUID와 GUID를 만드는 방법에 대해서 알려드립니다.

그전에 앞서 UUID와 GUID에 간단히 설명을 드리면, 아래와 같습니다.

 

UUID, GUID란 무엇인가?

UUID(Universally Unique Identifier)는 128비트의 16진수로 이루어진 고유한 식별자입니다. 일반적으로 다음과 같은 형식을 따릅니다.

 

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

 

여기서 x는 16진수의 숫자를 나타냅니다. M은 UUID 버전 번호를 나타내며, N은 UUID variant를 나타냅니다. 이 값은 보통 다음과 같습니다.

 

M은 4 비트이며, 1로 설정됩니다. 즉, 4입니다.

N은 2비트이며, 다음과 같은 값 중 하나일 수 있습니다.

0: 이전 버전과의 하위 호환성을 유지하기 위한 기존 버전의 UUID

2: RFC 4122에 따른 신규 생성 UUID

6: 예약됨

8: Microsoft Corporation에 의해 생성된 UUID의 하위 호환성을 위한 예약 값

예를 들어, 다음과 같은 UUID는 유효한 형식을 따릅니다.

 

550e8400-e29b-41d4-a716-446655440000

 

여기서 M은 항상 4이고, N은 8입니다. x는 16진수의 숫자로 이루어져 있으며, 각각 8-4-4-4-12 자리로 구분됩니다.

 

GUID(Guidelines Unique Identifier)는 UUID와 동일한 개념으로, 대체로 Microsoft에서 사용되는 용어입니다. UUID와 GUID는 모두 128비트의 고유한 식별자를 생성하는 것을 목적으로 합니다.

 

UUID, GUID 만들기

UUID 만들기

UUID를 만드는 소스입니다.

function generateUUID() {
  let d = new Date().getTime();
  if (typeof performance !== 'undefined' && typeof performance.now === 'function'){
    d += performance.now(); // 사용 가능한 경우 더욱 정확한 시간을 사용합니다.
  }
  const uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    const r = (d + Math.random() * 16) % 16 | 0;
    d = Math.floor(d / 16);
    return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
  });
  return uuid;
}

// 예시
console.log(generateUUID());
// "12b9ad4f-0c92-4f1a-88ec-698edb96e1c8"
// 랜덤함수를 사용하였으므로, 생성시마다 다른 값이 나옵니다.

 

GUID 만들기

GUID를 만드는 소스입니다.

function generateGUID() {
  let guid = '';
  for (let i = 0; i < 32; i++) {
    guid += Math.floor(Math.random() * 16).toString(16);
  }
  return guid;
}

// 예시
console.log(generateGUID());
// "a18e512f9c9e4ec5aa5dd5cf6b987136"
// 랜덤함수를 사용하였으므로, 생성시 마다 다릅니다.
반응형

댓글