[인터뷰질문 011] UUID란 무엇이며, 언제 사용하는 것 입니까?



정의

UUID는 Universally Unique IDentifier의 약자입니다. 직역 해보자면, 범용적인 고유 식별 아이디 입니다. 즉 유일한 값입니다. 그렇다면 이 유일한 값은 어떻게 만들어지고, 어느 범위까지 사용할 수 있는 것 일까요?

내용

내용은 위키를 참고해서 정리 해 보있습니다. 8-4-4-4-12의 포맷의 16진수로 만들어진 ID입니다. 생성 방법에 따라 버젼이 존재하며, 각 버젼은 아래와 같은 방법으로 생생된다고 합니다.

  • 버전 1 (시간 + MAC 주소)
  • 버전 2 (시간 + DCE 보안)
  • 버전 3 (네임스페이스 + MD5 해시)
  • 버전 4 (랜덤)
  • 버전 5 (네임스페이스 + SHA-1 해시)

그렇다면, 우리가 사용하는 let uuid = UUID()는 어떤 방법을 사용하는 것 일까요?

정확한 내용은 애플의 문서에도 설명되어 있습니다.

init() - Initializes a new UUID with RFC 4122 version 4 random bytes.

네 버젼4, 랜덤 방식을 사용한다고 합니다. 그렇다면 나올 수 있는 경우의 수는

16의 32승 가지가 되겠네요, 같은 숫자가 나올 확률은 16의 32승의 제곱 분의 1. 물론 불가능 한 확률은 아니지만 거의 0에 가까운 확률로 같은 UUID를 생성할테니 랜덤 방식으로 만들어도 고유 식별 아이디가 생성된다고 봐도 무방할 듯 싶습니다.

댓글

이 블로그의 인기 게시물

[IOS] AppDelegate는 뭐하는 녀석이지?

[git] Github 이슈 라벨(issue labels)

[git] git의 upstream과 origin 헷갈리는 사람 손!