혁신을 이룹니다, 오딘박스(OdinBOX)

언제나 어디서나 오딘박스와 함께!

자바스크립트 UUID 생성 방법

간지뽕빨리턴님 2023. 7. 2. 21:03
반응형

javscript,uuid

고유 식별을 할 수 있도록 나눠봅시다.

개발을 하다 보면 유일성이 필요한 경우가 굉장히 많다 물론 날짜를 기준으로 나눌 수 있겠지만 날짜 기준과 함께 한번 더 고한 식별자를 가지는 것도 분명 필요합니다. 이럴 때 사용을 할 수 있는 것은 바로 UUID라는 것입니다. UUID가 어떤 것인지 알아보겠습니다.

목차

    JavaScript UUID

    UUID

    범용 고유 식별자(UUID :: Universally Unique identifier)라고 하며 우리말로 쉽게 생각하면 소프트웨어 구축에 쓰이는 식별자로써 분산환경에서 개별 시스템이 id를 발급을 하도록 유일성이 보장이 되어야 하는데 이럴 때 사용을 할 수 있는 것이 바로 UUID를 사용을 하고 있는 것입니다. UUID는 128비트의 숫자와 함께 32자리의 16진수로 표현을 하고 있으며 아래와 같은 형태를 유지하고 있습니다.

     

    8자리-4자리-4자리-4자리-12자리 패턴으로 하이픈을 집어넣어 5개의 그룹으로 구분을 하고 있습니다.

    ⓒ www.mparticle.com

    Name Lengths (Bytes) Lengths (a hexadecimal number) Descr
    Time_low 4 8 시간 low 32비트 부여 정수
    Time_mid 2 4 시간 middle 16비트 부여 정수
    Time_hi_and_version 2 4 최상위 비트 4비트 version 그리고 시간 high 12비트
    Clock_seq_hi_and_res_clock_seq_low 2 4 최상위 비트 1-3비트, 13~15비트 클릭 시퀀스
    node 6 12 48비트 노드 id

    종류

    UUID는 국제인터넷표준화 기구인 ietf에서 정식 표준으로 채택된 표준 프로토콜로 RFC4122 문서를 기반으로 생성이 되었습니다.

    - UUID 버전 1, 3, 4, 5가 있고 이중 많이 사용하는 것은 버전 1과 4가 많이 쓰입니다.

    v 버전 1:  타임스탬프를 기준으로 생성하는 방식

    v 버전 3: MD5 해시를 이용해 생성하는 방식

    v 버전 4: 랜덤으로 생성하는 방식

    v 버전 5: SHA-1 해시를 이용해 생성하는 방식

    SOURCE

    function UUID_version4()
    {
      ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>
        (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)
      );
    }
    
    console.log(UUID_version4());
    
    ---------------------------------------------------------------------------------
    example : https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID
    let uuid = self.crypto.randomUUID();
    
    console.log(uuid);

    마무리

    UUID에 대해서 알아봤습니다. 최대한 간단하고 쉽게 설명을 하기 위해 정리를 했는데 혹시 추가할 내용이나 궁금한 내용 또는 수정할 내용이 있다면 댓글을 남겨주시면 답변드리도록 하겠습니다 :D