"가족의 뭐든 열 수 있고 아무것도 못 바꿔. 그게 제약이 아냐 — 설계 전부야."
열기만 하는 프로덕션 앱
Native Launcher 는 진짜 서명된 macOS 앱이야 — 글로벌 hotkey 가 컴팩트한 패널을 띄우고, 검색하고, 열어. 정확히 launch-plane surface 를 소유해. hotkey 활성화; 기본 아이콘 중심 Card Deck 과 상시 Detailed List; 실행 가능한 product surface 전반 검색; favorites 와 recents; 등록된 bundle identifier 로 로컬 설치 앱 열기; 기본 브라우저에서 등록된 web surface 열기; 앱이 설치/실행 중인지 보여주기; 서비스의 best-effort 도달성; 완전한 Web Hub 열기; 그리고 WebUI 에서 cwkfirelink:// deep link 받기.
그 목록을 읽고 없는 걸 봐. Git 없음. repository 폴더도 IDE 실행도 소스 편집도 없음. roster·network 편집 없음. deploy·restart·process kill·launchd 관리 없음. 임의의 path·URL·bundle·label·command 입력 없음. writer credential 없음. 런처는 가족 전체에 닿을 수 있고 그중 아무것도 mutate 못 해.
전부 이 Mac 기준
런처의 또 다른 정의적 특성: 모든 행동이 이 Mac 기준이야. 네이티브 앱을 열 때, 여기 설치된 사본을 열어. web surface 를 열 때, 이 머신의 현재 network 컨텍스트로 URL 을 resolve 해. '설치됨'이나 '실행 중'을 보고할 때, 사무실이 아니라 이 노트북 얘기야. office 엔진은 GUI 앱을 travel 브라우저로 원격 실행하지 않아; 실행은 늘 로컬이야. 뭔가를 '다른 데서' 실행하는 건 범주 오류거든.
힘을 줄 수 없는 캐시
일상적 실행은 사무실이 자고 있어도 돼야 하니까, 런처는 read-only catalog 캐시를 둬. 여기가 미묘한 안전 속성이야. 캐시된 데이터는 절대 관리 authority 를 주지 않아. 캐시는 오프라인에서 Ember UI 를 열게 해주지; Ember 를 deploy 하게 해주지 않아. 노트북을 잃어버리면 공격자는 가족이 뭘 어디서 돌리는지 목록 — read-only catalog — 을 얻지, 뭔가를 mutate 하는 열쇠가 아냐. 런처의 무력함이 정확히, 그걸 모든 Mac 에 두고 공항을 지나 들고 다녀도 안전하게 만들어.