"넌 명령을 'Mac 에서' 돌리는 게 아냐. 문을 통해 돌리는 거고 — 각 문이 다른 열쇠 묶음을 건네."
기계 하나, 문 여러 개
Mac 을 하나의 고정된 힘 묶음을 가진 하나로 그리는 건 자연스러워: 할 수 있는 걸 할 수 있어. 근데 같은 기계가 아주 다른 여러 envelope 을 통해 닿아 — 물리 화면의 interactive login, SSH session, launchd daemon, WebUI assistant, 위임된 coding agent. 각각이 같은 상자로 가는 문이고, 각 문이 다른 열쇠고리를 건네.
문마다 뭐가 달라지나
차이가 정확히 진짜 작업에 중요한 것들이야: login Keychain 을 읽을 수 있나; approval dialog 를 띄울 live GUI session 이 있나; non-interactive sudo 가 있나; 승인할 사람이 있나; 작업이 reboot 를 버티나. SSH session 은 GUI session 이 없어. launchd daemon 은 login Keychain 이 없어. interactive login 만 graphical prompt 를 띄울 수 있어. 같은 Mac, 완전히 다른 capability.
이게 자꾸 무는 이유
고전적 실패가 여기 있어: step 이 네가 Terminal 에서 돌릴 땐 완벽히 되니까, launchd 아래 스케줄하거나 SSH 로 쏴 — 그럼 실패해. 명령이 틀려서가 아니라, 새 envelope 이 명령이 조용히 의존하던 credential 에 못 닿아서. 명령은 안 바뀌었어; 문이 바뀌었어.
맞는 질문
그래서 이 기계는 X 할 수 있어? 는 틀린 질문이야 — 단일 답이 없어. 맞는 질문은 이 기계의 이 envelope 은 X 할 수 있어? 야, capability 는 뒤의 상자가 아니라 네가 들어온 문이랑 같이 다니니까.