그동안 완전히 블로깅을 손놓고 있었다.
그도 그럴게 프로젝트다 뭐다 해서 좀 정신이 없었기 때문이기도 하고
시험준비를 하느라고(요새 대학교는 중간고사 시즌이란다;;; 덜덜) 새벽까지 수업듣고 자느라
정신을 챙길래야 챙길만한 여유가 없었기 때문인데 오늘은 AIR 에대한 내용으로 블로깅을 해볼까 한다.
AIR를 처음 만진게 1.0 처음 런칭했을 때였는데(코드명 아폴로로 불렸을 때는 존재를 잘 몰랐었다;;; 아 둔탱이)
그당시 개발을 EditPlus로 하느라 AIR가 어떤식으로 Compile하고 실행하는지 Developer Guide를
하나하나 해석해가며 눈물을 삼겼었던 적이 있었다.(흑.. 추억하고 싶지 않다는;;;)
그때 만들었던게 FXUG Lite였다. FXUG(Flex User Group)는 회사에서 만든 비영리 커뮤니케이션으로
Full Flex로 개발되어 MDI로 구성된 UI를 선보였었다.(개발하는데 무려 3개월이나 걸리긴 했지만;;)
아무튼 FXUG Lite의 기능중 극히 작은 기능이긴 하지만 사용자가 동적으로 화면의 구성을 바꿀 수 있게
마련한 옵션 메뉴가 있었다. 이것은 사용자가 사용자 정보 xml 파일을 읽어봐 수정하고 다시 쓰는 작업을
하게끔 되어있는데 그 때 크게 발생한 이슈가 사용자의 ApplicationDirectory에 있는 파일을 수정하거나
쓸 수가 없었다는 것이다.
보통 프로그램을 설치하게 되면 ApplicationDirectory가 Program Files 디렉토리로 설치가 되는데
그 부분을 Flie.ApplicationDirectory 속성으로 접근해 파일을 다시 쓰게 되면 Security Error를 띄우도록 AIR의 보안정책으로 명시 되어있다.
이를 어찌할까 하다 구글링으로 찾은 꽁수는 어느 중국인의 블로깅을 보고 힌트를 얻었었다.
(한자들 앞에서 무력했었던 끔찍한 기억 작렬 ㅠㅠ)
해결한 방법은 다음과 같다.
var tempFile:File = File.applicationDirectory.resolvePath("test.xml");
tempFile = new File(tempFile.nativePath);
일단 tempFile로 선언된 File 객체에 test.xml 파일에 접근한다. applicationDirectory에 있는 파일에 접근해 정보를 읽는건 보안정책에 어긋나는건 아니니 일단 접근을 하고 새로 File 객체를 생성한다. 물론 instance를 늘리지 않고 기존에 사용했던 tempFile를 다시 생성하는데 이때 아까 접근했던 test.xml 파일의 nativePath 경로를 인자로 넘겨준다.
이 방법을 이용하면 test.xml 파일을 찾아서 쓰거나 수정할 수가 있는데 이유인즉슨 이렇게 해석될 수 있다.
보안정책상 파일에 applicationDirectory에 속해있는 파일을 수정하거나 쓰는건 안된다. 다시 이야기하면 File 객체로 접근만 하지않으면 된다는 이야기.
그래서 잔머리를 굴린방법이 nativePath다.
applicationDirectory에 접근하긴 했으나 String으로 접근하게 되면 보안정책상 하자가 없다는 이야기다.
Adobe에서는 이런 정책을 수정해서 접근 할 수 없게 하겠다....라고 이야기 했다고는 하나(들리는 풍문에 의하면)
"Adobe가 귀찮아서 안하지 않을까?"라고 조심스럽게 추측하고 있다.(사실 믿고 있다. Adobe)
하지만 이 방법으로도 어려운 난제가 있는데 Vista 이후의 Window는 위의 방법으로도 파일을 쓸 수가 없다.
그 이유는 AIR 의 보안정책에는 하자가 없지만 운영체제 상의 보안정책때문인데 이는 관리자 모드로 프로그램을 실행하게 되면 파일을 쓸 수가 있다.(AIR 자체로는 이를 해결할 방법이 없다;;;
운영체제가 막겠다는데 이겨낼 방법이 있을 수가 없지 않은가;;;
아 물론 XP 사용자는 해당사항이 없다.
그도 그럴게 프로젝트다 뭐다 해서 좀 정신이 없었기 때문이기도 하고
시험준비를 하느라고(요새 대학교는 중간고사 시즌이란다;;; 덜덜) 새벽까지 수업듣고 자느라
정신을 챙길래야 챙길만한 여유가 없었기 때문인데 오늘은 AIR 에대한 내용으로 블로깅을 해볼까 한다.
AIR를 처음 만진게 1.0 처음 런칭했을 때였는데(코드명 아폴로로 불렸을 때는 존재를 잘 몰랐었다;;; 아 둔탱이)
그당시 개발을 EditPlus로 하느라 AIR가 어떤식으로 Compile하고 실행하는지 Developer Guide를
하나하나 해석해가며 눈물을 삼겼었던 적이 있었다.(흑.. 추억하고 싶지 않다는;;;)
그때 만들었던게 FXUG Lite였다. FXUG(Flex User Group)는 회사에서 만든 비영리 커뮤니케이션으로
Full Flex로 개발되어 MDI로 구성된 UI를 선보였었다.(개발하는데 무려 3개월이나 걸리긴 했지만;;)
아무튼 FXUG Lite의 기능중 극히 작은 기능이긴 하지만 사용자가 동적으로 화면의 구성을 바꿀 수 있게
마련한 옵션 메뉴가 있었다. 이것은 사용자가 사용자 정보 xml 파일을 읽어봐 수정하고 다시 쓰는 작업을
하게끔 되어있는데 그 때 크게 발생한 이슈가 사용자의 ApplicationDirectory에 있는 파일을 수정하거나
쓸 수가 없었다는 것이다.
보통 프로그램을 설치하게 되면 ApplicationDirectory가 Program Files 디렉토리로 설치가 되는데
그 부분을 Flie.ApplicationDirectory 속성으로 접근해 파일을 다시 쓰게 되면 Security Error를 띄우도록 AIR의 보안정책으로 명시 되어있다.
이를 어찌할까 하다 구글링으로 찾은 꽁수는 어느 중국인의 블로깅을 보고 힌트를 얻었었다.
(한자들 앞에서 무력했었던 끔찍한 기억 작렬 ㅠㅠ)
해결한 방법은 다음과 같다.
var tempFile:File = File.applicationDirectory.resolvePath("test.xml");
tempFile = new File(tempFile.nativePath);
일단 tempFile로 선언된 File 객체에 test.xml 파일에 접근한다. applicationDirectory에 있는 파일에 접근해 정보를 읽는건 보안정책에 어긋나는건 아니니 일단 접근을 하고 새로 File 객체를 생성한다. 물론 instance를 늘리지 않고 기존에 사용했던 tempFile를 다시 생성하는데 이때 아까 접근했던 test.xml 파일의 nativePath 경로를 인자로 넘겨준다.
이 방법을 이용하면 test.xml 파일을 찾아서 쓰거나 수정할 수가 있는데 이유인즉슨 이렇게 해석될 수 있다.
보안정책상 파일에 applicationDirectory에 속해있는 파일을 수정하거나 쓰는건 안된다. 다시 이야기하면 File 객체로 접근만 하지않으면 된다는 이야기.
그래서 잔머리를 굴린방법이 nativePath다.
applicationDirectory에 접근하긴 했으나 String으로 접근하게 되면 보안정책상 하자가 없다는 이야기다.
Adobe에서는 이런 정책을 수정해서 접근 할 수 없게 하겠다....라고 이야기 했다고는 하나(들리는 풍문에 의하면)
"Adobe가 귀찮아서 안하지 않을까?"라고 조심스럽게 추측하고 있다.(사실 믿고 있다. Adobe)
하지만 이 방법으로도 어려운 난제가 있는데 Vista 이후의 Window는 위의 방법으로도 파일을 쓸 수가 없다.
그 이유는 AIR 의 보안정책에는 하자가 없지만 운영체제 상의 보안정책때문인데 이는 관리자 모드로 프로그램을 실행하게 되면 파일을 쓸 수가 있다.(AIR 자체로는 이를 해결할 방법이 없다;;;
운영체제가 막겠다는데 이겨낼 방법이 있을 수가 없지 않은가;;;
아 물론 XP 사용자는 해당사항이 없다.






9745
9
15










댓글을 달아 주세요