어떤 개발자가 자신의 맥 미니를 현행 최신 macOS인 10.15 카탈리나로 업데이트한 뒤부터 유난히 느려졌다고 느껴서, 원인을 조사했더니 [카탈리나가 어떤 프로그램을 새로 실행할 때마다 애플 서버에 모종의 확인 요청을 보내고 그 응답이 돌아올 때까지 기다린다]는 것을 발견했다고 합니다. 따라서, 애플 서버와 연결을 못 하게 인터넷을 아예 끊은 상태에서는 프로그램 초기 실행 속도가 이전 버전처럼 복구되지만 인터넷 연결이 느린 경우에는 프로그램 시작이 몇 초까지 늘어질 수가 있다고 합니다. 예를 들어 중국에 있는 한 사용자가 VPN을 사용할 때는 약 5.7초의 지연이 있었다고 합니다.
이러한 초기 지연을 확인할 수 있는 방법으로 해당 개발자는 다음과 같은 스크립트 코드를 제시했습니다.
echo $'#!/bin/sh\necho Hello' > /tmp/test.sh && chmod a+x /tmp/test.sh
time /tmp/test.sh && time /tmp/test.sh
이 코드를 제 맥북(macOS 10.15.4)에서 실행하면 다음과 같은 결과가 나옵니다.
Hello
/tmp/test.sh 0.00s user 0.00s system 1% cpu 0.657 total
Hello
/tmp/test.sh 0.00s user 0.01s system 57% cpu 0.014 total
이를 그대로 다시 실행하면 다음과 같이 나옵니다.
Hello
/tmp/test.sh 0.00s user 0.01s system 33% cpu 0.027 total
Hello
/tmp/test.sh 0.00s user 0.01s system 67% cpu 0.013 total
위 코드를 터미널에서 여러 번 실행해 보았습니다만, 이 코드는 제 환경에서 실행 완료까지 0.01~0.02초 정도 걸리는 것이 정상인 것 같습니다. 코드 자체의 내용은 별다른 것 없이 스크립트 파일 하나를 만들고 그걸 실행하여 글자 몇 개나 출력하는 게 전부니까요. 그런데 맨 처음 실행할 때만 유독 0.06초 이상의 시간이 걸렸습니다. 원문의 개발자는 이렇게 추가된 시간 동안 macOS가 애플 서버에 정보를 보내고 그 결과를 기다리고 있다고 말하고 있는 것입니다.
이러한 지연은 인터넷 회선 및 새로 실행하는 프로세스의 수에 영향을 받는 것으로 보이며, SIP(시스템 무결성 보호)를 끄면 딜레이가 완화된다고 합니다. 또한 [시스템 환경설정] → [보안 및 개인 정보 보호] → [개인 정보 보호] → [개발자 도구]에서 “아래 앱이 보안 정책을 충족하지 않는 소프트웨어를 로컬에서 실행하는 것을 허용합니다.”의 목록 중 [터미널]에 체크를 하면 터미널에서 실행하는 위 스크립트 코드로는 해당 지연이 재현되지 않는다고 합니다.
이러한 문제는 프로그램을 실행할 때만 있는 것이 아니라, [데스크톱]이나 [문서], [다운로드] 등 접근할 때 사용자의 허락이 필요한 폴더의 이름이나 아이콘을 나타낼 때도 발생한다고 합니다. 해당 폴더에 직접 접근하는 게 아니라, 단지 그 폴더의 이름 또는 아이콘이 앱 안에서 보이기만 해도 애플 서버와 통신이 일어난다는 것이죠. 이러한 종류의 문제점이 여러 군데 있어서, 원문 글쓴이가 애플에 보고하여 각각 별개의 이슈 번호에 등록하였다고 합니다.