누군가 M 시리즈 Mac에 VPN 클라이언트의 iPhone 버전을 설치하고, 앱이 열리고 연결되면 팀은 플랫폼 문제가 정리됐다고 판단한다. 정리되지 않았다. 여기서 정리됨과 그저 작동함을 가르는 것은 사용자 세션 안에서 도는 앱 확장과 전역 컨텍스트를 가진 시스템 확장의 차이다. Apple은 실제로 ‘Mac에서 iOS 앱’ 모델의 패킷 터널 공급자를 지원하며, 그 구성은 네이티브 macOS 및 Mac Catalyst와 별도로 기재한다. 그 지원의 의미는 들리는 것보다 좁다. 구성이 허용된다는 뜻이지, 특정 앱이 잘한다는 뜻도, 터널이 가정한 범위를 덮는다는 뜻도 아니다.

세 가지 구성, 하나의 표

Mac에서 중요한 세 가지 구성이 있고, 서로 바꿔 쓸 수 없다. 네이티브 macOS 클라이언트는 시스템 확장을 제공하며, 이는 전역 컨텍스트에서 돌고 누군가 로그인하기 전에도 존재할 수 있다. Apple Silicon의 iPhone 앱은 앱 확장을 제공하며, 이는 사용자 세션 안에서 돌고 세션과 함께 끝난다. Mac Catalyst는 휴대폰 버전과 같은 패키징 계열이지만 자체 배포 행을 가진 다른 타깃이다.

아래 비교는 Apple 배포 지침에서 외워 둘 만한 부분이다. 공급업체와 통화하기 전에 설계 질문 대부분에 답해 주기 때문이다.

ArrangementProvider packagingSession contextTypical distribution
iOS app on Apple SiliconApp extensionUser session onlyMac App Store
Native macOS clientSystem extensionGlobal, pre-login possibleDeveloper ID, notarised
Mac CatalystApp extensionUser session onlyMac App Store

마케팅 페이지보다 패키징 열을 먼저 읽어라. 로그아웃 때 무슨 일이 일어나는지 어떤 기능 목록보다 훨씬 믿을 만하게 예측한다.

성공한 요청 하나가 증명하는 것

‘Mac에서 iOS 앱’ 행은 시뮬레이터 요령이 아니라 실제 지원되는 구성이며, 그래서 이 질문이 계속 돌아온다. Mac App Store 배포도 물려받으므로, 게시자가 Mac 제공을 한 번도 켜지 않은 앱은 개발자 문서가 아무리 관대해도 나타나지 않는다.

작동하는 연결은 한 앱의 한 요청이 목적지에 닿았다는 것을 증명한다. 브라우저의 리졸버, 제외된 앱, 두 번째 주소 체계, 사용자가 여전히 닿기를 기대하는 로컬 기기를 조사하지는 않는다. 패킷 터널은 경로와 범위가 말하는 것만 나르며, 그 범위는 터널의 존재가 아니라 앱 구성에서 온다.

격차는 보통 앱별 적용 범위다

모두를 라우팅하는 클라이언트는 설명도 시험도 쉽다. 정해진 앱 목록을 포함하는 클라이언트는 그 규칙이 네이티브 Mac 빌드에서만이 아니라 이 배포에서도 지켜져야 한다. 로컬 기기 접근, 분할 터널 예외, 휴대폰 버전에 없던 메뉴 막대 항목에 기대는 모든 것은 같은 벽에 부딪힌다.

범위를 서면으로 요구하고, 그다음 첫 사례가 아니라 두 번째 사례를 시험하라. 터널을 통해 브라우저가 인터넷에 닿는 모습은 누구나 보여 줄 수 있다.

운영에서 둘이 갈리는 지점

세션 수명이 가장 날카로운 차이이며 데모에서 가장 눈에 띄지 않는다. Apple은 앱 확장이 사용자 컨텍스트에서 돌고 사용자가 로그아웃하면 끝난다고 문서화하므로, 로그인 창까지 재부팅한 Mac은 누군가 로그인할 때까지 터널이 없다. 인증 전에 보호해야 하는 기기를 요구 사항이 포함한다면, 프로필을 어떻게 쓰든 휴대폰 버전으로는 충족할 수 없다.

나머지는 비교적 겉치레다. 메뉴 막대 표시, DNS 표시 방식, 터널이 올라간 채로 앱이 종료될 수 있는지. 그것들은 실제 사용성 차이이고 아키텍처 결정이 아니므로, 세션 질문 다음에 순위를 매겨라.

정해진 순서로 결정하라

질문을 의도적으로 배열하라. 무인 적용 범위가 첫째, 앱별 범위가 둘째, 배포가 셋째, 인터페이스 다듬기가 마지막이다. 첫째에 답하는 것은 시스템 확장을 갖춘 네이티브 클라이언트뿐이며, 기기에는 MDM과 관리 프로필로 도달한다. 사람이 기기 앞에 앉아 로그인하고 그 세션을 위해 터널을 원한다면, Apple Silicon의 iOS 앱은 합리적인 답이다.

약속하기 전에 게시자에게 구체적인 질문 세 가지를 하라. ‘Mac에서 iOS 앱’ 배포에서 패킷 터널 공급자가 지원되는지, 앱별 규칙이 그곳에 적용되는지, 로그아웃 때 무슨 일이 일어나는지. 셋 다를 한 통의 메시지로 답하는 공급업체는 자기 배포 표면을 아는 쪽이고, 첫째만 답하는 쪽은 Mac에서 열리는 앱을 설명하는 쪽이다.

그다음 실제로 지원할 기기에서, 실제로 쓸 계정과 게이트웨이로 검증하라. 노트북 한 대에서 시험용 게이트웨이에 연결되는 휴대폰 버전은 증거이지 배포가 아니다.

관련 글