바닐라 자바스크립트로 투두리스트를 만들어보고 있다.
crypto.randomUUID 메서드
새롭게 생성되는 todo 아이템 객체의 id 값으로 랜덤한 값을 넣어주고 싶다.
찾아보니 Web API에서 제공하는 Crypto 인터페이스의 crypto.randomUUID 메서드를 활용해 쉽게 UUID를 생성할 수 있다.
const id = crypto.randomUUID();
console.log(id); // "cbfc904b-b898-4deb-b736-ba433489904c"
crypto.randomUUID 메서드가 반환하는 값은 랜덤하게 생성된 v4 UUID 값이고, 문자열이다.
그런데 궁금해지는 게, 이렇게 생성한 UUID는 전 세계에서 유일한 id인가? 아니면 지금 내가 하고 있는 프로젝트 한정으로 유일한 id 값인 건가?
GPT에게 물어보고 답을 얻었다. 내가 UUID가 무엇인지에 대한 이해가 부족해서 생긴 궁금증이었다.
UUID란?
UUID는 Universally Unique Identifier의 약자로, 가장 대표적인 문자열 기반의 식별자이다.
UUID는 일반적으로 128비트(16바이트) 크기의 값을 가지며, 2^128개의 고유한 값을 생성할 수 있는 공간을 제공한다.
이름 그대로 "universally unique"한 id 생성을 목표로 두고 설계되었기 때문에 crypto.randomUUID()로 생성된 ID는 전 세계적으로 유일하다고 봐도 좋겠다. 100% 유일함을 보장하지는 않지만, 중복될 확률은 무시할 수 있을 정도로 낮다. 약 1조 개의 UUID를 생성한다고 해도 중복될 확률은 극도로 낮을 정도이다.
참고
'Frontend > HTML ∙ CSS ∙ JavaScript' 카테고리의 다른 글
[JS] Uncaught SyntaxError: Cannot use import statement outside a module 에러 해결 (0) | 2024.11.29 |
---|---|
[JS] toLocaleString()를 사용하여 날짜를 원하는 포맷의 문자열로 저장하기 (0) | 2024.11.29 |
[JavaScript] 얕은 복사와 깊은 복사 (0) | 2023.11.06 |
[JavaScript] ==와 ===의 차이 (0) | 2023.11.06 |
[CSS] Flexbox 속성 배우기 게임, Flexbox Froggy 🐸 (0) | 2023.10.26 |