출처 : 카일캐턴님 블로그
원본 : http://kylekaturn.egloos.com/416772


플래시로 개발을 하다 로컬에서 테스트시 종종 보안관련 에러가 뜨는것을 볼수 있다.
Flash IDE 에서 테스트 무비 를 하거나 Flex Builder 에서 컴파일시에는 아무런 무리 없이 플레이가 되는데
스탠드 얼론 Flash Player 로 플레이를 하거나 html 파일을 통해서 열었을 경우에는 보안에러가 심심치 않게 뜨게 된다

이 문제는 플래시 의 보안 샌드박스와 관련된 문제이다

플래시에서의 보안 샌드박스는 크게 4타입으로 나누어진다.

Secruity.REMOTE
Security.LOCAL_WITH_FILE
Security.LOCAL_WITH_NETWORK
Security.LOCAL_TRUSTED

가장 위에 REMOTE 는 원격 샌드박스로서 웹서버에 올려진 SWF파일에 적용되는 샌드박스인데 이번에는 논외로 하고 SWF파일이 로컬에 위치할때는 아래 3개의 샌드박스중 하나가 적용되게 된다.

우 리가 일반적으로 로컬에서 stand alone Flash Player 나 html 을 통해서 swf 파일을 플레이할경우 LOCAL_WITH_NETWORK 샌드박스를 적용받게 된다. 이는 네트워크상에 위치한 파일에 접근 가능하다(크로스도메인 설정 필요) 그렇지만 로컬디스크에 저장되어 있는 파일에는 접근이 불가능하다. 따라서 SWF 와 같은 폴더에 있는 XML 를 로드하는 등의 행위시에 보안 에러가 발생한다. 

Flex 컴파일시에 컴파일 옵션으로 -use-network=false 설정시 LOCAL_WITH_FILE 의 샌드박스를 적용받게 되는데 이때는 로컬에 저장되어 있는 파일에 접근가능하다. 그렇지만 어떠한 네트워크상 자원의 접근이 일체 불가능하다.(크로스 도메인 설정과 무관함)

마지막으로 LOCAL_TRUSTED 샌드박스는 Flash IDE 에서 TEST MOVIE 를 할경우와 같이 로컬과 네트워크 양쪽 다 접근이 가능한 샌드박스이다. (크로스도메인 설정이 안되어 있더라도 접근 가능)

이 러한 보안 샌드박스의 차이점 때문에 Flash 에서 테스트 무비를 할때는 LOCAL_TRUSTED 샌드박스를 적용받기 때문에 아무 문제 없던 SWF 파일도 스탠드 얼론 Flash Player 를 통해 플레이 할경우에는 보안에러가 나오게 되는것이다.

최 근진행중인 자이젠 다운로드 센터 프로젝트의 경우 Action Script Project 의 형태로 개발을 하고 있고 Flash 에서는 디스플레이 관련 에셋만 제작해서 swc 형태로 컴파일해서 사용하고 있는데 이때 로컬의 StandAlone Flash Player 로 테스트를 하게 되므로 LOCAL_TRUSTED 의 샌드박스 혜택을 볼수가 없어서 각종 보안에러를 만나게 된다.

그런데 구글링중 LOCAL_TRUSTED 의 범위를 설정할수 있는 방법이 설명된 ADOBE 의 문서를 찾게 되었다.
아주 간단한 방법으로 특정 파일 혹은 폴더안에 있는 SWF 가 LOCAL_TRUSTED 의 샌드박스를 적용되게 하는 방법인데 문서에서는 8버젼 기준 설명인지 몰라도 CS3 와는 약간 다르다. CS3 에서는

C:\WINDOWS\system32\Macromed\Flash\FlashPlayerTrust

윈도우 버젼 기준으로 상기 폴더에 간단한 텍스트 화일을 추가해 주면 된다.
텍스트 화일의 확장자는 cfg 여야 하며 LOCAL_TRUSTED 의 보안 샌드박스가 적용될 파일명, 혹은 폴더명을 포함하고 있는 텍스트 문서가 되어야 한다.

나는 D:\workspace 폴더에서 작업을 주로 하므로 kylekaturn.cfg 파일을 상기 폴더에 생성하고 파일 내용은 간단히

D:\workspace

라고 한줄만 적어서 저장하였다.

이후 테스트시 workspace 이후에 모든 서브폴더의 swf 파일들은 LOCAL_TRUSTED 샌드박스에 포함되어 네트워크 와 로컬 파일 모두 접근 가능하게 되었다.


CS4를 설치해봐서 한글메뉴얼이 웹으로 이동해있는걸 보고 잠깐 이것저것 보고있다가

 

예전부터 이번버전이 나오면 꼭 해보려고 했던 하드웨어가속 즉. 그래픽카드를 이용한

 

GPU가속을 메뉴얼에서 확인해보고 잠깐 확인해 봤습니다.



왠만하면 툴은 영어로 쓸려고 했는데 플래시 같은경우에는 한글메뉴얼을 보려고 한글버전으로

 

설치했는데 메뉴얼이 웹상에 있는걸 보고 좌절... 다시 깔기도 귀찮고 새로운 기능도

 

한글로 하나둘씩 건드려보기 위해서 그냥 사용하기로 했습니다.

 

각설하고 이전 버전에서처럼 파일-> 제작설정에 들어가면 SWF를 세팅하는 창이 뜹니다.







CS4에 들어오면서 어도비 브릿지에서 SWF정보를 볼수있는(아마도..) 메타데이터를

 

추가하는 XMP등이 추가됬습니다.

 

중요한 하드웨어 가속은 위에서 처럼 기본값이 없음인데 메뉴얼에 따르면

 

1단계 – 직접
 직접 모드는 브라우저 대신 Flash Player가 직접 화면에 그리도록 허용하여 재생 성능을 향상시킵니다.

2단계 – GPU
 GPU 모드에서는 Flash Player가 그래픽 카드의 사용 가능한 컴퓨터 성능을 활용하여 비디오를 재생하고 그래픽 레이어를 합성합니다. 이로 인해 사용자의 그래픽 하드웨어에 따라 또 다른 수준의 성능상 이점을 얻을 수 있습니다. 사용자에게 고사양 그래픽 카드가 있을 것이라고 예상되면 이 옵션을 사용합니다.

 

라고 되어있다. GPU모드에서 고사양 그래픽카드가 어느정도의 성능인지는 잘 모르겠지만..

 

아마도 SWF제작물에서는 그다지 고사양 그래픽카드를 요구하지 않을거라 생각하기에

 

왠만한 그래픽카드는 되지 않을가? 합니다.

 

그리고 CPU만으로도 충분한 결과화면이 나오기 때문에 3D라이브러리를 사용하지

 

않는이상 큰 성능향상이 없을거라고 조심스레 예측해봅니다.

 

나중에 3D를 사용해볼때 꼭 사용해 봐야겠습니다.