본문 바로가기
Node.js

[Node.js] 원하는 길이만큼 유니크 아이디 만들기

by yonikim 2021. 5. 27.
728x90

유니크 아이디를 사용해야 할 때, 대부분의 개발자들은 UUID 를 사용할 것이다. Node.js 에도 이미 uuid 모듈이 있는데, 불행하게도 우리는 8글자만 필요했다.

UUID(Universally Unique IDentifier, 범용 고유 식별자) 란, 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규약을 말한다. UUID 는 32개의 십육진수로 표현되며 총 글자수는 36개(32개의 문자와 4개의 하이픈) 이다.

 


UUID 8글자 자르기 vs 유니크 아이디 만들기


 

※ UUID 8글자 자르기

UUID 버전에는 5개가 있는데, 디바이츠 MAC 주소를 이용한 버전 1과 순수 랜덤 난수로 만들어지는 버전 4가 많이 사용된다고 한다. 

  • 버전 1 (datetime and MAC 주소)
  • 버전 2 (datetime and MAC + DCE 보안)
  • 버전 3 (namespace + MD5 해시)
  • 버전 4 (랜덤)
  • 버전 5 (namespace + SHA-1 해시)

 

uuid 설치하기

$ npm install uuid

 

▷ uuid.js

const uuid = require('uuid')

uuid.v1().substring(0, 8)

 

 

※ 유니크 아이디 만들기

▷ uuid.js

const makeUniqueId = (length) => {
  const _sym = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
  let uniqueId = ''
  for (let i = 0; i < length; i++) {
    uniqueId += _sym[parseInt(Math.random() * _sym.length)]
  }

  return uniqueId
}

makeUniqueId(8)

 

 

 

728x90