맥 운영체제의 "런치패드(Launchpad)"는 iOS의 홈스크린처럼 아이콘을 꾸욱 눌러 앱을 제거할 수 있도록 돼 있습니다. 이 때문에 iOS를 사용하다 맥으로 넘어오신 분들 중 실제로 이런 방법으로 앱을 제거하는 사용자를 많이 볼 수 있죠.
그런데 특정 앱을 이 런치패드에서 제거하면 ~/Library/Application Support 폴더가 몽땅 날라가는 치명적인 버그가 발생하는 것으로 확인되었습니다. 이 폴더 안에는 시스템에 설치된 앱에 관한 중요한 정보가 저장되는데, 이 버그로 해당 폴더가 삭제되면 사실상 모든 앱이 초기화되면서 마치 처음 설치한 상태로 돌아가 버리고, 기존의 중요한 사용자 데이터가 소실되는 등의 심각한 문제가 발생하게 됩니다.
아직 어떤 앱들이 문제를 일으키는지 구체적으로 파악되지 않았지만, 일단 'Coffitivity'라는 응용 프로그램이 목록에 올라 와 있습니다. 런치패드에서 Coffitivity를 제거하자 마자 하위 폴더들이 야금야금 삭제되다 결국에는 ~/Library/Application Support 폴더가 통째로 사라져버리고 맙니다. ▼
도대체 원인은 뭘까? iOS와 OS X 용으로 개발된 거의 모든 앱에는 "Info.plist"라는 프로젝트에 대한 정보를 모아놓은 메타파일이 들어가 있습니다.
파일 안에는 앱의 기본 정보와 개발 정보, 애플리케이션 설정 등이 기록돼 있는데요, Coffitivity처럼 개발자가 실수로 'Bundle display name'이라는 식별자를 비워놓으면 이와 같은 버그를 유발하는 것으로 추측되고 있습니다. 런치패드에서 앱을 제거하면 운영체제가 해당 식별자를 참고해 앱과 관련된 폴더를 삭제하는데 식별자가 비어있으면 삭제할 폴더를 제대로 구분하지 못하고 상위 폴더인 ~/Library/Application Support 폴더를 통째로 지워버리는 것입니다. 참으로 말도 안 되고 어이 없는 버그가 아닐 수 없습니다.
삭제된 폴더는 휴지통에도 들어가지 않고 말 그대로 시스템에서 증발해버리기 때문에 백업본이 없는 이상 데이터를 살려내는 것은 불가능합니다. 증상을 재현해보고 싶은 분은 반드시 ~/Library/Application Support 폴더를 안전한 곳에 복제해 두신 후 진행하시기 바랍니다.
앱을 이렇게 만든 개발자도 잘못이지만, 시스템 주요 폴더가 털리는 이 같은 버그를 사전에 방지하지 못한, 또 1년이 넘게 방치하고 있는 애플에게도 분명히 큰 책임 소재가 있습니다. 원인이 무엇이듯 애플이 조속히 해결해야 할 문제이며, 그 때까지 사용자는 런치패드에서 응용 프로그램을 삭제하지 않고 응용 프로그램에서 실행 파일만 지우거나 AppCleaner 또는 AppDelete 같은 서드파티 언인스톨러를 사용하는 것이 최선의 방법이 될 것입니다. 그와 함께 백업도 생활화하도록 해야겠습니다.
참조
• Back to the Mac - Coffitivity 댓글
• Twitter - @norio_nomura
관련 글
• 맥에서 응용 프로그램을 삭제할 때 이용할 수 있는 유무료 언인스톨러 10종 장단점 비교
• 맥에서 아이튠즈를 깨끗이 삭제하는 방법과 재설치하는 방법
• OS X 시스템 복구 기능에 대한 이해와 설명… '로컬 복구? 인터넷 복구? 무슨 차이야'
• OS X 요세미티∙매버릭스 런치패드에 삭제 불가능한 아이콘이 생길 때 해결 방법