Adobe AIR 2.0에서 소개된 NativeProcess를 이용하면, 사용자의 컴퓨터에 설치된 응용 프로그램을 AIR에서 실행시킬 수 있다.
우려했던 점
한편으로 이 기능은, 상황에 따라서 조금은 위험할 수도 있는데, 그 이유는 AIR는 웹에서의 배포 및 실행이 가능하여, 사용자들이 큰 거리낌 없이 AIR 기반 어플리케이션을 설치하고, 또 실행하기 때문이다.
이 기능에 대한 논란은 Apollo(AIR가 정식 릴리즈되기 전의 code name) 시절부터 계속되어왔다. 만약 AIR에서 외부 어플리케이션의 실행을 가능하게 할 경우, 악의적인 의도를 가진 개발자들에 의해 수많은 악성 코드가 AIR로 작성되고, 또 그로 인해 AIR의 신뢰도가 크게 떨어질 것이라는 우려가 있었기 때문이다.1
AIR 2.0의 Native Process
AIR 2.0에서는 이 문제를, Native Installer를 이용하여 패키징한 어플리케이션에서만 외부 어플리케이션 실행을 가능하도록 제한함으로서 해결하고 있다.2
Native Installer로 패키징된 어플리케이션의 경우, 웹 상에서 설치가 불가능하며, 일반적인 응용 프로그램의 설치 파일과 마찬가지로, 웹 상에서 직접 설치는 불가능하며, 설치 파일을 다운로드 받거나 또는 CD 등을 통해 배포되어야 한다.
Native Installer를 통해 설치되는 어플리케이션의 경우, Web을 통한 설치에 비해 조금 더 신중한 결정 과정을 거친 후 설치가 이루어진다. 악의적인 의도를 가진 개발자의 입장에서 보았을 때에도, 악성 코드를 직접 다운로드 받아 설치하게 하는 것이 비해 이렇다할 이점이 없기 때문에, 애초에 우려했던 AIR의 신뢰도 저하 문제가 발생할 가능성은 다소 낮을 것으로 예상한다. 물론 정식 릴리즈 후에 조금 더 지켜보아야 하겠지만….
마지막 바람(?)
사실 개인적으로, Apollo 시절부터 꼭 구현이 되길 바라던 기능3이 있는데, 그것은 바로 AIR 어플리케이션의 Direct Web Launch이다.
Flex와 Flash Player가 브라우저 안에서 상당히 많은 기능을 제공하고 있음은 분명하나, 아직까지는 여전히 브라우저에 종속적인 플러그인으로서, 여러가지 제약을 가지고 있다.
더보기
이러한 기능/비기능적 제약을 해결하는 방법 중 하나로, AIR와 Flash Player를 넘나드는 중간의 무엇인가가 필요하다고 생각한다.
AIR의 기능 일부 또는 대부분이 보안 정책에 따라 제한되더라도, 인증과 설치 과정 없이 즉시 실행 가능한 AIR 어플리케이션이라던가, 또는 브라우저의 Flash Player에서 실행되던 어플리케이션이, 사용자의 입력이나 AIR의 설치 여부에 따라 AIR로 연계되어, 그 상태 그대로 계속 실행되는 Web 어플리케이션이라던가.4
결론
AIR에서의 외부 어플리케이션 실행에 대해 지속적인 니즈가 있었지만, 또 그만큼 우려의 목소리도 있었다. 이에 Adobe는 Native Installer라는 비장의 카드(?)를 이용하여, 현명하게 해결한 것으로 보인다.
조금만 더 힘을 내주었으면.
See Also
- 지용호 - Adobe AIR 2.0 Overview #1 - 개발환경 구축방법 및 새로운 기능 소개
- 머드초보 - [Flex/AIR] Adobe AIR 2 BETA에서 NativeProcess API를 이용한 실행파일 실행 예제
- 연찬익 - 2009/11/17 - [AIR] - AIR 2.0 Beta 릴리즈!
- 물론 AIR만으로도 악의적인 프로그램의 개발은 가능하다. 하지만 한편, AIR는 보안 정책상 자체적으로 일부 기능을 제한하고 있어, 아직까지는, 악의적인 의도를 가진 개발자들의 흥미(?)를 유발하지 않고 있다. [본문으로]
- 물론, 실행 파일이 아닌 파일을 실행할 경우, 해당 파일과 연결된 기본 어플리케이션을 실행하도록 하는 기능은, 보안 상 큰 문제가 없기 때문에, Native Installer로 패키징하지 않은 어플리케이션에서도 동작한다. [본문으로]
- Apollo 시절, 이 기능에 대해 Adobe측에 건의한 적이 있지만, 받아들여지진 않았다. [본문으로]
- 물론, 이 두 가지 모두, 현재의 AIR와 Flash Player로도 구현이 전혀 불가능한 것은 아니다. 하지만 직접 구현을 하는 경우, 범용성이 떨어질 뿐 아니라, Native하게 구현하는 것에 비해 안정성도 낮다. [본문으로]
'Adobe Flash Platform > AIR' 카테고리의 다른 글
| [뉴스] Adobe AIR 2.0 Beta 2 릴리즈 (0) | 2010/02/03 |
|---|---|
| AIR에서 ESC를 눌러도 FullScreen을 빠져나가지 않도록 하는 기능 (2) | 2010/01/04 |
| Adobe AIR 2.0의 NativeProcess와 Native Installer (6) | 2009/12/16 |
| AIR 2.0 Beta 릴리즈! (1) | 2009/11/17 |




댓글을 달아 주세요
제 블로그를 여기에 트랙백걸고 이글을 링크 걸어두었어요. ^^
히히 저도 트랙백 걸었습니다 ㅎㅎ
imp00 2010/05/10 12:52 댓글주소 수정/삭제 댓글쓰기
바쁘신데도 이 글을 보시고 답을 해주시면 정말 감사하겠습니다.
배포버젼을 만들려고 하는데NativeProcess를 사용했습니다.
flex builder3을 써서 배포버젼을 만들었는데.. NativeProcess 사용한 응용프로그램이
실행이 되지 않네요
찬익님의 글을 보다가 Native Installer 써서 패키징을 해야한다고 하시는데.
어떻게 하는건지 알려주시면 안될까요
giant4@naver.com 부탁드립니다.
아래 링크를 참고하시면 될 것 같습니다. http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html
참고로, 제가 테스트 했을 당시, (Mac OS에서는) 정상적인 인스톨러가 생성이 되지는 않았었구요. 추후 AIR 2.0 정식 버전이 나오면 다시 테스트해볼 예정입니다.
한글도움말도 있어요.
http://help.adobe.com/ko_KR/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html
뻘갱이 2010/06/21 16:17 댓글주소 수정/삭제 댓글쓰기
air2.0 베타가 아닌 air2.0.2 정식 버젼이 나왔습니다.
근데 air2.0 beta 까지는 adt -package -target native a4444.exe a4444.air 이렇게 하면 잘 실행하던
명령문이
air2.0.2 정식 버젼에서 adt -package -target native a4444.exe a4444.air 이렇게 실행하면
AIR file at C:\Users\Administrator\Documents\Flex Builder 3\a4444\src\a4444.air could not be converted.
The error was "" 이런식으로 에러가 납니다. air2.0.2 adt 방식이 바뀐건가요 ? 아시면 도움을 부탁드립니다