오늘 Reincubate Lookup을 출시하게 되어 기쁩니다. 이 서비스는 사용자들이 계속 물어 온 질문에 답합니다. Apple 기기의 일련번호나 IMEI가 있을 때, 그 기기가 무엇이고 어떤 기능을 갖췄는지 정확하게 알아낼 수 있을까요?
- eBay에서 iPhone이나 iPad를 살 때 사용자는 사양(특히 기기의 연식과 저장 용량)을 확인하고 싶을 수 있습니다. 판매 글에 있는 일련번호나 IMEI로 사양은 물론 기기가 잠긴 상태로 유통되었는지까지 확인할 수 있습니다. 다음은 통신사 잠금 상태로 판매된 기기의 일련번호 조회 예시입니다.
- 개발자는 특정 버전의 iOS에서 앱을 테스트해야 하는 경우가 많습니다. 오래된 iOS가 설치된 중고 기기를 찾는 일은 사금 채취와 비슷하지만, 저희는 기기가 어떤 버전으로 출하되었는지 알아낼 수 있어 많은 매물을 걸러낼 수 있습니다.
- 기기를 대량으로 관리하는 시스템 관리자는 MDM 도구에서 제한된 사양과 기기 데이터만 얻을 수 있습니다. 기업과 기관은 이미 Reincubate Lookup의 바탕이 되는 기술로 기기 인벤토리 데이터를 보강하고 있습니다.

Apple 일련번호나 IMEI를 조회할 준비가 된 Reincubate Lookup
지난 한 해 동안 고객과 사용자가 저희 API에 보낸 기기 정보 요청은 1,300만 건이 넘었고, 이것이 더 깊이 들어가 보자는 계기가 되었습니다.
Reincubate Lookup의 약속은 단순합니다. Apple 일련번호나 IMEI를 입력하면 정확하고, 윤리적이며, 사용하기 쉬운 데이터를 제공한다는 것입니다. 이 약속의 각 부분은 저희에게 특별한 의미가 있으며, 그것이 왜 중요한지에 대한 사연이 있습니다. 하나씩 살펴보겠습니다.
사용하기 쉬움
모바일 기기에 대해 알아보다 보면 전문 용어가 많이 나오기 때문에, 보여 주는 정보를 어떤 순서로 배열하고 어떻게 표시하고 어떤 이름을 붙일지 오래 고민했습니다. 일부 기술 사용자에게는 가치가 있겠지만 다른 사람에게는 혼란을 줄 수 있는 몇 가지 데이터는 보여 주지 않습니다.
기기 데이터의 가치와, 소비자가 그 신뢰성을 판단하기 어렵다는 점 때문에 이런 데이터를 제공하는 여러 서비스가 생겨났고, 이들은 다른 사람이 데이터를 긁어 가지 못하도록 끔찍하고 불친절한 여러 장치로 접근을 막고 있습니다. 저희는 번거로운 캡차 시스템을 쓰지 않기로 했고, Lookup이 매우 빠르게 작동하며 중간 로딩 페이지 없이 동작하도록 만들었습니다.
모바일 기기에 관한 데이터인데도 신기하게 휴대폰이나 태블릿에서 잘 작동하는 인터페이스를 갖춘 비슷한 서비스는 거의 없습니다. 저희는 모바일에서도, 해외에서도 쓰기 편한 서비스를 원했습니다.
Reincubate Lookup의 접근성을 잘 갖추었기를 바랍니다. iPhone과 iPad에서 충분히 테스트했고 모습도 꽤 멋지다고 생각합니다. 기본적으로 다크 모드를 지원하며, 눈의 피로를 줄이도록 색상 팔레트가 전환됩니다. 캡차를 요구하지 않으며, 11개 언어로 이용할 수 있습니다.

Reincubate Lookup의 다크 모드
정확성
저희는 2017년 기기 식별자 API를 만들기 시작한 이후 이 데이터에 대해 많은 것을 배웠고(지난여름에는 iPhone Backup Extractor에서 풍부한 기기 메타데이터 지원도 출시했습니다), 풀고 싶은 어려운 문제를 여럿 발견했습니다.
가장 먼저 알게 된 것 중 하나는 Apple 식별자의 바탕이 되는 데이터가 솔직히 말해 좀 엉망이라는 점입니다. Apple 스스로도 단일한 표준 모델 식별자가 없고 내부 명명 규칙도 일관되지 않습니다. 어떤 경우에는(iPhone 3G, 바로 당신 말입니다) 같은 ID가 서로 다른 제품에 재사용되기도 합니다.
저는 즐거운 WWDC 기간 동안 Apple 엔지니어와 매니저들에게서 내부 일관성의 흔적을 찾아보려 했지만, 그들조차 이 부분에 답답함을 토로했습니다. 게다가 모델 식별에 관한 Apple의 문서는 일관성이 없고, 거의 모든 형태의 식별자(주요 식별자만 12가지입니다)가 문서 어딘가에서는 “모델”로 불립니다.
Apple이 사용하는 식별자는 시간이 지나면서 바뀌기도 했습니다. 일련번호 형식은 세 가지이고(곧 네 가지가 됩니다), UDID 형식은 두 가지입니다. 패밀리 번호는 한때 항상 “M”으로 시작했지만 지금은 “A”로만 시작하고, 대신 일부 MPN이 “M”으로 시작합니다. 이런 사례는 계속 이어집니다.
웹에는 이미 여러 조회 도구가 있지만, 조금만 파 보면 잘못된 데이터를 찾을 수 있습니다. 대개는 구조적인 문제입니다. Everymac의 도구 같은 서비스는 식별자 데이터 사이에서 관찰된 관계가 참인 것처럼 보이는 동안에는 맞지만… 그렇지 않게 되는 순간 틀어지는 방식에 기반합니다. 일부 도구는 이를 알아챌 만큼 데이터가 있어서, 조회하면 하나의 확정된 결과가 아니라 가능한 여러 결과를 보여 줍니다. 또 어떤 도구는 거의 맞는 것처럼 보이지만… 맞지 않는 데이터를 제공합니다.
구조적인 데이터 문제만이 아닙니다. 이런 시스템 중 상당수는 데이터 출처 자체에 결함이 있습니다. Apple의 GSX 서비스에서 긁어 오거나, 기술자가 입력하거나, 최악의 경우 웹을 돌아다니는 아무 괴짜들이 입력한 데이터에 의존합니다.
이를 제대로 해내기 위해 저희는 세 가지 조건을 충족하고자 했습니다.
- 시스템은 가능한 한 많은 것을 자동으로, 독립적으로 학습해야 합니다. 정기적인 데이터 입력, 편집, 검수가 필요한 방식은 금세 낡아 버리기 때문입니다.

We needed... a learning computer - 시스템은 라이선스가 없거나 신뢰할 수 없는 데이터에 의존하면 안 됩니다. iPhone Wiki에도 일부 데이터가 있지만(저희도 상당량 기여했습니다), 정규화되어 있지 않고 완전히 정확하지도 않습니다. Apple의 GSX API에도 일부 데이터가 있지만 역시 정규화되어 있지 않고, 일부는 정말 이상한 내용이 섞여 있으며, 이런 방식으로 사용하도록 허가된 것도 아닙니다.
- 시스템은 대체로 맞는 정도가 아니라 저희가 완전히 확신할 수 있는 데이터와 결과를 내놓아야 합니다. 따라서 하나의 답을 낼 수 없거나 답의 확률이 낮을 때는 시스템이 이를 분명히 알려야 합니다.
윤리성
하지만 정확성만이 조건은 아니었습니다. 업계에서 이런 데이터 중 일부가 어디서 나오는지 깨닫는 데는 오래 걸리지 않았습니다. 돈을 받고 내부 데이터베이스의 데이터를 몰래 복사하는(훔치는!) 직원 네트워크였습니다.
Reincubate Lookup이 작동하는 방법을 찾아내기 전까지 IMEI 데이터의 출처는 사실상 세 가지뿐이었습니다.
- Apple의 GSX API를 긁어 오는 것. 이는 Apple의 약관 위반이며 API 접근 권한이 박탈됩니다. GSX 계정 접근 권한을 되파는 사람들, 계정을 다 써서 소진시킨 뒤 새 계정을 구하려는 사람들로 이루어진 작은 산업이 있습니다. 이 방식은 통하지 않습니다.
- GSMA의 IMEI 데이터베이스를 라이선스하는 것. 이동통신 업계의 이 협회는 모든 IMEI 정보의 표준 등록부를 보유하고 있으며, 기기 식별에 유용한 유형 할당 코드(TAC) 데이터베이스를 라이선스합니다. 이상적으로 들리지만 실제로는 더 복잡하며, 이 기관 스스로도 “GSMA Device Map” 데이터의 정확도가 95%에 불과하다고 밝힙니다. 무엇보다 이 데이터베이스에는 포함된 기기에 대한 정규화된 식별자가 없습니다. TAC로 조회하면 그저 iPhone XS라고만 알려 줄 수 있고, 이는 세부 정보라고 하기 어렵습니다.
이 기관은 자신이 대변하는 휴대폰 제조사들과 일부 갈등을 빚는 것으로 보입니다. IMEI 무결성 유지를 위한 프로그램을 운영하면서 동시에 “the GSMA does not have the responsibility or powers to stop illegal TAC and IMEI activity”라고 밝히고 있기 때문입니다. 이 데이터의 잘못된 등록이 워낙 흔해서 “비준수 TAC/IMEI 신고 절차”를 적극 홍보할 정도입니다.
사실상 생각해야 할 데이터 집합이 두 가지라는 뜻입니다. 하나는 제조사가 스스로 신고한 GSMA의 데이터로, 불완전하고 부정확하지만 적어도 이론상으로는 정확한 데이터입니다. 다른 하나는 모바일 기기를 직접 살펴보면서 구축할 수 있는 정확하고 정규화된 실제 데이터입니다. 저희는 GSMA의 것보다 더 포괄적이고 유용한, Apple 기기 TAC 3,000개 규모의 데이터베이스를 직접 구축해야 했습니다. - 통신사 직원을 매수해 “데이터 스파이”로 활용하는 것. 미국 이동통신사들이 소비자의 위치 데이터를 현상금 사냥꾼과 미치광이들에게 판매하는 것과 같은 종류의 끔찍한 관행이며, 불법 “iCloud 잠금 해제” 서비스가 작동하는 방식도 이와 같습니다.
일부 IMEI 서비스는 이를 노골적으로 광고합니다. 영국의 한 서비스 사이트에서 이런 광고를 발견했습니다.

수상한 잠금 해제 서비스가 작동하는 방식
저희는 두 방식 중 어느 쪽도 쓸 준비가 되어 있지 않았기 때문에, 필요한 데이터를 얻을 세 번째 길을 찾아야 했습니다. 스파이도, GSX도, 부정한 행위도 없는 길입니다.
답은 본질적으로 방대한 양의 데이터를 분석하고, 그 데이터가 서로 어떻게 연관되는지 이해하고, 이를 시간이 지나면서 자동으로 갱신되는 일련의 사실로 압축하는 데 있습니다. 이 데이터 중 일부는 기기 자체에 내재되어 있고, 일부는 데이터에 관한 익명화된 질문을 살펴보면서 도출할 수 있습니다. “이 기기는 A이고 B인데, C이기도 할까요?” 같은 형태의 질의가 충분히 많다면 A과 B이 서로 관련 있다는 것을 알 수 있습니다. 이는 저희 awdit 제품을 움직였던 기법과 같습니다. 질문을 충분히 많이 들여다보면 때로는 답을 만들어 낼 수 있습니다.
데이터베이스의 질의가 약 5,000,000건에 이르자 이 분석은 거의 모든 기기에서 작동하기 시작했고, 어떤 질문에 답할 데이터가 충분하지 않을 때 Reincubate Lookup은 iPhone Backup Extractor로 확인해 보라고 안내합니다. iPhone Backup Extractor는 더 깊이 파고들어 그 질문을 저희에게 알려 줄 만큼 똑똑합니다.
현재까지 저희는 2,350개 모델에 대한 9,000개에 가까운 구성 코드, 127곳의 생산 시설, 304개 유통 지역, 3,000개가 넘는 IMEI 유형 할당 코드를 식별했습니다.
이것이 저희가 Reincubate Lookup을 만들게 된 과정이고, 만드는 동안 사용 편의성, 정확성, 윤리성이 중요했던 이유입니다. 마음에 드시기를, 그리고 도움이 되기를 바랍니다. 더 깊이 알아보고 싶으시다면, Lookup의 모든 데이터는 저희 DeviceIdentifier API에서 가져오며, 이를 활용해 무언가를 만드는 분들을 보는 것이 저희의 즐거움입니다.
소식 전해 주세요. 어떻게 쓰고 계신지 알려 주시면 좋겠습니다.






