[Swift] UUID란?

봄인·2022년 10월 3일
1

About-Xcode-Swift

목록 보기
1/4
post-thumbnail

UUID가 뭘까?

프로젝트를 진행하면서 UUID를 다루어야 해서 UUID에 대해 찾아보았다.

UUIDUniversally Unique IDentifier의 약자이다.

UUID 표준에 따라서 이름을 부여하게 된다면 고유성이 완벽하게 보장되지는 않지만,
실제로 사용할 때 중복될 가능성이 거의 없다고 인정되기 때문에 널리 사용된다고 한다.

UUID의 형식은?

총 36개의 문자열로 구성되어 있고, 이 문자는 32개의 실제 문자(숫자 또는 알파벳)와 4개의 하이픈으로 구성되어 있다.

(8개의 문자) - (4개의 문자) - (4개의 문자) - (4개의 문자) - (12개의 문자)

위의 형식으로 구성된다. 예를 들면, 아래와 같이 말이다.

E621E1F8-C36C-495A-93FC-0C247A3E6E5F

총 사용 가능한 UUID 값의 수는 어마무시한데,
대략 340,282,366,920,938,463,463,374,607,431,768,211,456개 정도 존재한다고 한다. (약 10의 38승 개)


Swift에서의 UUID

우선 첫 번째로 Apple Developer Documentation을 살펴 보자.

Types, interfaces, other items를 식별할 수 있다고 한다.

UUID를 생성하는 방법

init()
  • RFC 4122의 버전 4를 이용해서 랜덤 값을 이용해서 UUID를 생성한다.
    (버전 1, 2, 3, 5와 달리 무작위의 생성 방법을 사용하여 역으로 추론되지 않는다. 아래 사진 참고)
init(uuid: uuid_t)
  • C 언어 구조로부터 UUID를 생성한다.
init?(uuidString: String)
  • 문자열 표현로부터 UUID를 생성한다.
init(from: Decoder)
  • 특정 Decoder 로부터 Decode 하여 UUID를 생성한다.

UUID 값을 가져오는 방법

var uuid: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8)
  • UUID를 byte로 반환한다.
var uuidString: String
  • UUID로부터 생성된 문자열은 반환한다. (Ex. "E621E1F8-C36C-495A-93FC-0C247A3E6E5F")

UUID끼리 비교하는 방법

static func != (UUID, UUID) -> Bool
  • 두 개의 값이 같지 않은지 여부를 나타내는 부울값을 반환한다.
static func == (UUID, UUID) -> Bool
  • 두 UUID가 같은지의 여부를 나타낸다.

UUID를 Encoding 하는 방법

func encode(to: Encoder)
  • UUID를 특정 Encoder에 Encode 한다.

UUID를 나타내는 방법

var description: String
  • UUID에 대한 텍스트 설명이다.
var debugDescription: String
  • 디버깅에 적합한 UUID에 대한 텍스트 설명이다.
var customMirror: Mirror
var hashValue: Int
  • UUID의 계산된 hash 값이다.
func hash(into: inout Hasher)
  • 값의 필수 구성 요소를 특정 해시에 공급하여 해시한다.

UUID의 특징

  • 앱을 재실행 시켜도 값은 유지된다.

  • 앱의 공급 업체가 같을 경우, UUID 값도 동일하다.
    개인적인 의견으로는, 연동성이 좋다고 생각된다.
    만약 A라는 회사가 SNS 어플리케이션을 만들고 추후에 채팅 어플리케이션을 제작했을 때, 유저가 보유한 고유한 UUID 값을 통해 해당 어플리케이션들의 연동이 가능하기 때문이다.

  • 앱을 삭제해도 공급 업체가 제공한 다른 앱이 남아있는 경우, UUID 값은 유지된다.
    유저가 A회사가 공급한 채팅 어플리케이션을 지운다고 해도 SNS 어플리케이션을 지우지 않는 이상 UUID 값은 유지된다.

  • 공급 업체의 앱을 모두 삭제하고 다시 설치한다면, UUID 값은 유지되지 않는다.
    유저가 SNS 어플리케이션까지 모두 삭제하고 다시 A 회사의 어플리케이션을 설치한다면 UUID 값은 변경된다.


(2022. 10. 03. ver) 내용 추가 예정 . . .

profile
ᕙ(•̀‸•́‶)ᕗ

0개의 댓글