iOS 기기 고유 ID란 무엇인가?
UDID(Unique Device Identifier)는 iOS 기기를 고유하게 식별하기 위한 40자리 16진수 문자열입니다. 과거에는 이 UDID를 통해 각 기기를 구분할 수 있었습니다.
UDID가 사라진 이유
하지만 iOS 5부터 Apple은 UIDevice의 고유 식별자(uniqueIdentifier)를 공식적으로 지원 중단(deprecated)했습니다. 즉, 기존 방식으로는 더 이상 진짜 고유 ID를 얻을 수 없게 된 것입니다.
이에 따라 Apple은 개인정보 보호를 강화하면서, 대신 벤더별 식별자(identifierForVendor)라는 새로운 방식을 도입했습니다. 이 값은 동일한 개발자(벤더)가 배포한 앱들 사이에서는 같은 사용자에 대해 동일하게 유지되지만, 개발자가 다르거나 기기가 다르면 값이 달라집니다.
identifierForVendor 사용 방법
Apple은 UIDevice에 identifierForVendor 인스턴스 프로퍼티를 정의해 두었습니다. 이는 해당 앱의 벤더 입장에서 특정 기기를 고유하게 식별할 수 있는 영숫자(alphanumeric) 문자열입니다.
자세한 내용은 Apple 공식 문서에서 확인할 수 있습니다: identifierForVendor - Apple Developer Documentation
예제 코드
실제로 기기 ID를 가져오는 방법은 매우 간단합니다. 아래 코드를 viewDidLoad 메서드에 복사해서 실행해 보세요.
override func viewDidLoad() {
super.viewDidLoad()
guard let deviceID = UIDevice.current.identifierForVendor?.uuidString else {
return
}
print(deviceID) // 예: 7ABAB8B5-E805-437F-9D6C-5448BB19AEA5
}주의할 점
identifierForVendor는 몇 가지 한계가 있습니다. 앱을 모두 삭제했다가 재설치하면 값이 변경될 수 있고, 동일 벤더의 앱이 기기에 하나뿐인 상태에서 삭제되면 새로운 UUID가 생성됩니다. 따라서 서버에서 사용자를 영구적으로 추적해야 하는 경우에는 Keychain에 저장하거나, Apple이 제공하는 ASIdentifierManager(광고 관련 용도) 등 상황에 맞는 대안을 함께 검토하는 것이 좋습니다.