Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 GUID/UUID 생성하는 방법 총정리

JavaScript에서 GUID 또는 UUID를 생성해야 하는 경우는 생각보다 많습니다. 데이터베이스의 고유 식별자, 세션 ID, 파일명 중복 방지 등 다양한 상황에서 활용됩니다. 이 글에서는 대표적인 두 가지 방법, 즉 Math.random() 함수를 활용하는 방법과 npm의 uuid 모듈을 사용하는 방법을 예제 코드와 함께 소개합니다.

Math.random() 함수 활용하기

별도의 라이브러리 설치 없이 간단히 UUID 형태의 문자열을 만들고 싶다면 아래 코드처럼 Math.random() 함수를 사용할 수 있습니다.

function createUUID() {
   return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
      var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
      return v.toString(16);
   });
}

이 코드는 UUID v4 형식(8-4-4-4-12 자리)에 맞춰 랜덤 문자열을 생성하며, 'y' 위치에는 유효한 버전 비트 값이 들어가도록 처리됩니다.

주의: Math.random()은 암호학적으로 안전한 난수 생성기가 아니기 때문에, 이 방식으로 생성된 UUID는 고유성이 완전히 보장되지 않습니다. 따라서 실제 운영 환경(프로덕션)에서는 사용하지 않는 것이 좋으며, 테스트나 학습 목적으로만 활용하는 것을 권장합니다.

npm uuid 모듈 사용하기

RFC4122 표준을 준수하는 신뢰할 수 있는 UUID가 필요하다면 npm의 uuid 모듈을 사용하는 것이 가장 좋습니다. 먼저 다음 명령어로 모듈을 설치합니다.

$ npm install uuid

설치가 완료되면 script.js 파일을 생성하고 아래와 같이 작성합니다. 최신 버전(v4 이상)의 uuid 모듈에서는 named export 방식으로 불러와야 하므로 다음과 같이 작성하는 것이 안전합니다.

const { v4: uuid } = require('uuid');

console.log(uuid());
console.log(uuid());
console.log(uuid());

참고로 구버전(v3 이하)의 uuid 모듈에서는 const uuid = require('uuid')처럼 모듈 전체를 불러와 바로 호출할 수 있었지만, 최신 버전에서는 위와 같이 v4 함수를 명시적으로 가져와야 합니다.

작성한 스크립트는 다음 명령어로 실행할 수 있습니다.

node script.js

실행 결과로 생성된 UUID 예시는 다음과 같습니다.

a85a8e6b-348b-4011-a1ec-1e78e9620782
03ea49f8-1d96-4cd0-b279-0684e3eec3a9
7289708e-b17a-477c-8a77-9ab575c4b4d8

마무리

간단한 테스트 용도라면 Math.random() 기반 함수로 충분하지만, 고유성이 중요한 실제 서비스에서는 반드시 uuid 모듈 같은 검증된 라이브러리를 사용하는 것이 좋습니다. 필요에 따라 crypto.getRandomValues()를 활용한 커스텀 구현이나 브라우저 내장 API를 고려해 볼 수도 있습니다.