앱 샌드박스에 관하여

2012. 10. 18. 08:33
1.2.1 업데이트 이후로 동영상 파일을 열면 이상한 알림창이 함께 표시되는 경우가 있습니다. 그리고 동영상은 열리지만 자막 파일을 읽어오지 못하거나 재생 목록을 자동으로 구성하지 못하는 현상이 나타납니다.

이것은 모두 앱 샌드박스 때문에 나타나는 것인데요, 이전 버전까지는 이런 문제가 없었기에 버그로 오인하시는 분들이 많습니다. 이 글에서는 앱 샌드박스에 대해 알아보도록 하겠습니다.

먼저, 자세한 이야기에 앞서, 긴 글을 읽을 시간이 없는 분들을 위해 해결책을 먼저 제시하겠습니다.
  • 이 현상은 동영상(~/Movies) 폴더 또는 다운로드(~/Downloads) 폴더가 아닌 다른 곳에 있는 동영상을 여는 경우에만 나타납니다.
    • 이 현상은 동영상 파일 대신 동영상이 속한 폴더를 열 때에는 나타나지 않습니다.
    • 환경설정 > 고급 > 보안 에서 "접근 허용 폴더" 목록에 동영상 파일을 포함하는 폴더를 추가하십시오. 이제 이전처럼 알림창 없이 사용할 수 있습니다.
    • 접근 허용 처리는 추가한 폴더의 모든 하위 폴더에 재귀적으로 적용되므로 가능한 최상위 폴더를 추가하는 것이 좋습니다. 올바른 사용을 위해 위 보안 탭의 설명을 주의 깊게 읽어보시기 바랍니다.

    그렇다면 앱 샌드박스가 뭐길래 저런 설정이 필요한 것인지 살펴보겠습니다. 위에서 설명한 파일 접근 문제 외에도 일부 기능이 제거되기도 했는데 모두 앱 샌드박스 때문입니다. 혹시 이전에 잘 사용하던 기능이 1.2.1 업데이트 이후 동작하지 않는다면 아래 내용을 읽어보시기 바랍니다.

    앱 샌드박스란?
    앱 샌드박스는 OS X 10.7부터 도입된 보안 기능입니다. 앱 자체에 시스템 자원에 대한 접근 여부를 설정하도록 하고 허가되지 않은 접근은 운영체제가 제한함으로써 시스템에 해를 입히지 못하도록 하는 기술이죠. 가령, 앱에 'iTunes 라이브러리 읽기'가 가능하도록 설정한 경우, 읽기는 괜찮지만 쓰기를 하려고 하면 운영체제가 거부하는 식입니다. 잘만 동작한다면 바이러스처럼 허용되지 않은 동작을 하려는 시도를 막을 수 있기 때문에 보안성이 높아지겠죠. iOS 앱에서는 앱 샌드박스가 필수인데요, 애플은 이게 마음에 들었는지 OS X에도 같은 방법을 적용하려고 했고, 지난 9월부터 맥 앱스토어에 올리는 모든 앱은 앱 샌드박스를 지원하도록 강제하고 있습니다. 이에 따라 무비스트도 이번 버전부터 앱 샌드박스를 지원하게 되었습니다.

    앱 샌드박스의 어두운 면
    앱 샌드박스는 이론상으로는 꽤 괜찮은 보안 방법입니다. 하지만 현실은 그렇게 쉽지 않죠. 문제는 기준을 정하기가 어렵다는데 있습니다. 앞서 iOS에서는 앱 샌드박스가 필수라고 말씀드렸는데요, 시스템에 대한 접근성이 상대적으로 떨어지는 모바일 환경에서는 큰 반감 없이 받아들일 수 있었지만, 데스크탑 환경은 모바일 환경과 다르죠. 데스크탑 앱은 모바일 앱보다 훨씬 더 강력하고 다양한 기능에 대한 요구가 있습니다. 하지만 애플은 제한적인 부분만 허용하고 있어 많은 개발자들로부터 원성을 사고 있는데요, 가령, 저수준의 커널 기능을 사용하는 것은 위험하다고 판단하여 허용하지 않는 식입니다. 실제로 기존의 수많은 앱들이 샌드박스 환경에서 허용하지 않는다는 이유로 유용한 기능들을 제거해야 했습니다. MPlayerX은 이러한 애플의 정책이 싫어 앱 스토어를 떠나는 과감한 결정을 하기도 했구요.

    무비스트의 앱 샌드박스 지원
    먼저 가장 중요한 '파일 접근'에 대하여 이해하실 필요가 있습니다. 앱 샌드박스 환경에서는 파일에 대한 접근이 매우 제한적이라 허용되지 않은 파일에는 접근할 수가 없습니다. 접근이 허용되는 파일은 Finder에서 더블 클릭으로 연 파일, 드래그 & 드랍으로 받은 파일, 파일 열기 또는 저장하기 창에서 선택한 파일 등입니다. 문제는 사용자가 명시적으로 선택하진 않았으나 접근이 필요한 파일들이 있다는 것입니다. 동영상 파일을 열었을 때 함께 읽어들이는 자막 파일이나 재생 목록을 자동으로 채우는 동영상 시리즈 파일들도 그런 예죠. 애플에서는 개발자들의 요구에 따라 관련 지원을 추가하고 있지만 아직은 아쉬운 부분이 많은 실정입니다.
    위 제한으로 인해 무비스트에서 어떤 동영상 파일을 열면 동영상은 열리지만 "폴더에 접근할 수 없어 자막을 찾거나 재생목록을 구성할 수 없다"는 메시지가 표시됩니다. 또, 예전에 만들어 둔 재생 목록 파일을 열면 그 안의 동영상들은 접근이 허용되지 않아 열 수 없을 것입니다. 당황스러우시죠? ^^

    무비스트는 이 문제를 해결하기 위해 "접근 허용 폴더"라는 설정을 추가했습니다. 앱 샌드박스 환경은 사용자가 어떤 폴더를 명시적으로 선택한 경우 그 폴더 내의 모든 파일과 그 하위 폴더들에 대한 접근을 함께 허용합니다. 이를 이용해 동영상을 모아두는 폴더를 "접근 허용 폴더"에 추가해두면 이후에는 그 폴더 안의 모든 파일을 제약 없이 접근할 수 있으므로 자막 파일이나 다른 동영상 시리즈 파일에도 접근할 수 있게 되는 거죠. 이 설정을 잘 활용하시면 예전과 같은 방식으로 사용하실 수 있을 거에요. 그리고 자주 사용하는 곳은 보다 쉽게 접근할 수 있도록 해놓았습니다. 일반적으로 동영상 파일을 많이 모아두는 홈의 동영상(~/Movies) 폴더와 iTunes 라이브러리, iPhoto 라이브러리, 그리고 다운로드(~/Downloads) 폴더는 항상 접근할 수 있으므로 "접근 허용 폴더"에 추가하지 않아도 됩니다.

    다음으로 맨 앞에 적었던 제거된 기능들에 대한 설명입니다. 이 제한은 앱 샌드박스에 의한 것으로 10.7 이상에서만 제한되며 10.6에서는 여전히 사용 가능합니다.
    • QuickTime 디코더 사용시 디지털 오디오 출력
      무비스트는 QuickTime 디코더 사용시 디지털 오디오 출력을 위해 외부 QuickTime 컴포넌트의 환경설정을 변경하는 방법을 사용해왔는데요, 앱 샌드박스 환경에서는 다른 앱의 환경설정을 변경하는 것이 허용되지 않습니다. 이제 디지털 오디오 출력은 FFmpeg으로 열 때에만 지원됩니다.
    • 전체 화면에서 키보드 백라이트 끄기
      이 기능은 이번 버전에 새로 추가된 기능인데 저수준 커널 기능을 사용하다보니 앱 샌드박스 환경에서 허용되지 않아 10.6 전용이 되어버렸습니다.
    • 미디어 키 지원
      미디어 키 역시 커널 기능 사용 이유로 앱 샌드박스 환경에서 허용되지 않습니다.
    • 재생 목록 완료시 작업에서 시스템 종료, 로그아웃, 잠자기
    • 전체 화면 탐색에서 PLAY/PAUSE 버튼을 길게 눌러 잠자기
      시스템 종료나 잠자기 같은 기능은 일반적으로 Apple Event 기술로 구현합니다. 이는 원래 애플에서 "임시 예외" 형태로 지원되도록 설계되어 있으나 앱스토어 심사팀은 사용하지 말라고 하더군요. 다른 구현 방법을 찾으면 복원될 수 있을 지도 모르겠습니다.

    보안 때문이라지만 다소 불편해진 것도 사실입니다. 이 부분은 애플의 정책이니 이해해주셨으면 합니다.

    아, 그리고 앱 샌드박스 처리에 따른 부작용으로, 한 번 연 파일은 파일을 닫더라도 삭제할 수 없는 문제가 발견되었습니다. 휴지통 까지는 이동이 되지만 휴지통을 비우려고 하면 해당 파일을 사용 중이라 삭제할 수 없다고 나오는데요, 무비스트를 종료하면 삭제할 수 있으니 문제가 해결될 때 까지는 일단 이 임시 방편으로 사용하시기 바랍니다.

    앱 샌드박스 지원은 애플에서 오래 전부터 공지를 해왔기 때문에 나름대로 준비를 하고 있었지만 막상 시작해보니 생각보다 쉽지 않은 작업이었네요. 이번 버전은 기능 추가는 별로 없고, 버그 수정과 앱 샌드박스 지원이라는 눈에 띄지 않는 부분이 주요 내용이라 마이너 업데이트로 정했습니다. 하지만 내부적으로는 상당한 수술을 한 상태라 혹시 앱 샌드박스와 관련하여 제가 놓친 문제가 있을지도 모르겠습니다. 문제를 발견하시면 꼭 알려주시기 바랍니다.

'릴리즈' 카테고리의 다른 글

무비스트 1.2.3 릴리즈  (108) 2012.12.12
무비스트 1.2.2 릴리즈  (40) 2012.10.18
1.2.1 실행 안되는 문제 해결 방법  (25) 2012.10.12
무비스트 1.2.1  (29) 2012.10.12
무비스트 1.2.0  (25) 2012.05.30
Posted by 무비스트
BLOG main image
홈페이지: https://movistprime.com EMAIL: movist.contact@gmail.com by 무비스트

공지사항

카테고리

전체 (96)
무비스트 (11)
릴리즈 (76)
개발 (5)
FAQ (4)

달력

«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

글 보관함