노트북을 잃어버리면 무엇이 사라지는가 (1) — 값은 살아있는데 못 들어가는 역설
노트북 한 대에 모든 개발 자격증명이 몰려 있다는 걸 뒤늦게 깨달았습니다. 시크릿 값의 생존과, 그 값에 닿을 수단의 생존은 전혀 다른 문제였습니다. 값을 한 번도 출력하지 않고 자산을 전수 조사한 기록입니다.
노트북 한 대에 모든 개발 자격증명이 몰려 있다는 걸 뒤늦게 깨달았습니다. 시크릿 값의 생존과, 그 값에 닿을 수단의 생존은 전혀 다른 문제였습니다. 값을 한 번도 출력하지 않고 자산을 전수 조사한 기록입니다.
Google Play 조직 계정에 필요한 D-U-N-S 번호를 NICE D&B의 50만원 없이 Apple 개발자 창구로 무료 발급받은 실전 기록. 50만원은 필수 비용이 아니라 국내 대행 부가서비스 요금이었고, 무료 경로가 오히려 더 빨랐습니다. 준비물인 홈택스 영문 증명부터 걸릴 함정까지 단계별로 정리했습니다.
3부작 완결편. 미러링은 보는 용도, adb는 조작하는 용도로 나누고 screencap·input tap으로 실기기를 원격 조작합니다. 좌표계 어긋남, Android 9 미디어 스캐너가 .MOV·대용량 영상을 색인하지 않는 함정, 잠금은 사람이 푸는 자동화 경계까지 실전 중심으로 정리했습니다.
1부에서 만든 개발환경 위에서 Expo dev-client를 안드로이드 실기기에 올리고 Metro를 붙였습니다. CNG 원리, pnpm 모노레포의 Unable to resolve module, LAN IP 접속, adb 딥링크와 콜드 스타트까지 막혔던 지점을 순서대로 적었습니다.
iOS는 Xcode가 필수지만 안드로이드는 다릅니다. Android Studio 없이 Homebrew와 command-line tools만으로 React Native/Expo 개발환경을 세팅한 기록입니다. JDK 17 keg-only 함정부터 SDK 패키지, 에뮬레이터까지 막힌 순서 그대로 정리했습니다.
Xcode를 설치했는데도 아이폰에 앱이 올라가지 않았습니다. 커맨드라인 도구와 Xcode의 차이부터 무료 개발자 계정의 제약, 개발자 모드가 켜지지 않는 이유까지, 실제로 막혔던 여섯 지점과 원문 에러를 정리했습니다.
14페이지 산정서를 완성했습니다. 그리고 그 문서는 실패작이었습니다. 제가 그걸 알 방법이 없었습니다 — 제가 썼으니까요. 저주받은 지식을 우회하려고 정보를 차단한 독자를 만들어 읽힌 기록과, 기계적 문체 감사가 실제 독자에게 3전 3패한 이야기입니다.
어떤 외주 건의 총 소요가 약 56 맨먼스로 나왔습니다. 그렇다면 56명이 한 달씩 넣으면 한 달에 끝나는 걸까요. 90일에 필요한 인원은 18.7명, 규정 인원의 3.1배였습니다. 그런데 18.7명을 넣어도 안 됩니다. 그리고 그 근거를 발주처 문서가 스스로 제공하고 있었습니다.
"이미 만들어 둔 게 많으니 재사용하면 빨라지지 않나." 추측으로 답하지 않으려고 코드베이스를 실사해 재사용 자산을 63시간어치 찾았습니다. 그런데 견적은 오히려 28% 올랐습니다. 자산이 몰린 자리와 견적이 튀는 자리가 정확히 어긋나 있었기 때문입니다.