JavaScript에서 GUID(Globally Unique Identifier)를 만드는 방법은 무엇입니까? GUID/UUID는 길이가 32자 이상이어야 하며 전달 문제가 발생하지 않도록 ASCII 범위 내에 있어야 합니다.
모든 브라우저에서 어떤 루틴을 사용할 수 있는지, 내장 난수 생성기의 "무작위성"이 무엇인지, 어떻게 시드가 지정되는지 등을 잘 모르겠습니다.
[RFC4122 호환 UUID 생성을 위한 최신 모범 사례를 반영하기 위해 2023년 3월 5일에 편집됨]
crypto.randomUUID() is now standard on all modern browsers and JS runtimes. However, because new browser APIs are restricted to secure contexts, this method is only available to pages served locally (localhost or 127.0.0.1) 또는 HTTPS를 통해.
crypto.randomUUID()
localhost
127.0.0.1
기존 플랫폼이나 비보안 컨텍스트에서 UUID를 생성하는 다른 UUID 버전에 관심이 있는 독자를 위해 모듈uuid이 있습니다. 이 모듈은 잘 테스트되고 지원됩니다.
uuid
Math.random()을 사용하는 any UUID 생성기를 사용하는 것은 권장되지 않습니다(이 답변의 이전 버전에 포함된 스니펫 포함). "https://bocoup.com/blog/random-numbers" rel="noreferrer">여기에 가장 잘 설명된 이유. Math.random() is strongly discouraged (including snippets featured in previous versions of this answer) for reasons best explained here. TL;DR: solutions based on Math.random()TL;DR:
Math.random()
RFC 4122에 따르면 UUID(Universally Unique Identifier)는 GUID(Globally Unique Identifier)라고도 알려져 있으며 특정 고유성을 보장하도록 설계된 식별자입니다.
몇 줄의 JavaScript로 RFC 호환 UUID를 구현하는 것이 가능하지만(예를 들어 아래 @broofa의 답변 참조) 몇 가지 일반적인 함정이 있습니다.
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
Math.random
따라서 프로덕션 환경용 코드를 작성하는 개발자는 uuid 모듈과 같이 엄격하고 잘 관리되는 구현을 사용하는 것이 좋습니다.
[RFC4122 호환 UUID 생성을 위한 최신 모범 사례를 반영하기 위해 2023년 3월 5일에 편집됨]
crypto.randomUUID()
is now standard on all modern browsers and JS runtimes. However, because new browser APIs are restricted to secure contexts, this method is only available to pages served locally (localhost
or127.0.0.1
) 또는 HTTPS를 통해.기존 플랫폼이나 비보안 컨텍스트에서 UUID를 생성하는 다른 UUID 버전에 관심이 있는 독자를 위해 모듈
위 방법이 실패할 경우 다음 방법도 있습니다(이 질문에 대한 원래 답변을 기반으로 함).uuid
이 있습니다. 이 모듈은 잘 테스트되고 지원됩니다.Math.random()을 사용하는 any UUID 생성기를 사용하는 것은 권장되지 않습니다(이 답변의 이전 버전에 포함된 스니펫 포함). "https://bocoup.com/blog/random-numbers" rel="noreferrer">여기에 가장 잘 설명된 이유.
Math.random()
is strongly discouraged (including snippets featured in previous versions of this answer) for reasons best explained here. TL;DR: solutions based onMath.random()
TL;DR:Math.random()
기반 솔루션은 그렇지 않습니다. 좋은 고유성을 보장합니다.🎜RFC 4122에 따르면 UUID(Universally Unique Identifier)는 GUID(Globally Unique Identifier)라고도 알려져 있으며 특정 고유성을 보장하도록 설계된 식별자입니다.
몇 줄의 JavaScript로 RFC 호환 UUID를 구현하는 것이 가능하지만(예를 들어 아래 @broofa의 답변 참조) 몇 가지 일반적인 함정이 있습니다.
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
" 형식이어야 합니다. 여기서 x는 [0-9, a-f] 중 하나입니다. M은 [1-5] 중 하나이고 N은 [8, 9, a , 또는 b]Math.random
)따라서 프로덕션 환경용 코드를 작성하는 개발자는 uuid 모듈과 같이 엄격하고 잘 관리되는 구현을 사용하는 것이 좋습니다.