Adobe AIR는 크로스플랫폼을 지원하는 런타임으로, 기존 플래시의 유연한 인터렉티브 구현과 더불어, 윈도우 및 파일 제어와 같은 Native API 지원으로, 그간 플래시플랫폼을 이용해온 서드파티사로 부터 많은 주목을 받고 있습니다.
특히, AIR 애플리케이션은 Flash, Flex 개발자 뿐만 아니라, ActionScript 개발 경험이 없는 AJAX 개발자도 개발 할 수 있고, 개발자들은 AIR SDK를 이용해 그간 작업해오던 개발 환경에서 그대로 작업 할 수 있다는 장점이 있습니다.
AIR 애플리케이션은 플래시 애플리케이션과는 달리, 데스크탑에서 실행되는 애플리케이션으로, 개발 과정 중 테스트 하려면 ADL(Air Debug Launcher)가 필요합니다.
개발 과정을 모두 마친 AIR 애플리케이션은 단일 설치 파일인 .air 파일을 생성하는 패키징이라는 절차를 거쳐야 하는데, 이 과정은 ADT(AIR Developer Tool)에서 진행 할 수 있습니다.
ADL, ADT는 AIR SDK내에 포함되어 있고, 특이한 점은 AIR 런타임이 설치되지 않은 환경이라도 두 도구를 이용하여 개발을 진행할 수 있습니다. 아울러, 개발자에게 도움이 되는 여러 옵션들이 존재하는데 해당 옵션에 대해서는 차후에 자세히 다루도록 하겠습니다.
일반적으로, Flex Builder나 Flash IDE, Dreamweaver에서 AIR 애플리케이션을 실행 할 때에는 ADL이 프로세스에 실행되고, Break-point를 걸어 디버깅을 하거나, Console, Bug을 통해 발생한 이슈를 확인 할 수 있습니다.
AIR 애플리케이션을 패키징 하는 도구인 ADT는 ADL에 비해 활용 방법이 다소 복잡한데, 우선 패키징 과정 전, 해당 프로젝트를 먼저 swf 파일로 export 해야 합니다.
그리고, AIR 애플리케이션에 사용된 여러 리소스 파일들도 함께 첨부하여야 하며, AIR 애플리케이션 전반의 설정을 담고 있는 디스크립터 파일과, CA 기관으로 부터 발급받은 인증서로 서명 하여야 합니다.
다만, 드림위버, 플래시, 플렉스빌더와 같은 개발 IDE에서는 패키징 과정이 실행되는 동시에, 해당 프로젝트가 swf 파일로 export 되고, 리소스 에셋들도 함께 담기기 때문에, 디스크립터 파일과 인증서 파일 이외에는 별다른 작업을 해 줄 필요는 없습니다.
이렇게 패키징 과정을 모두 마치면, 단일 설치파일인 .air 파일이 생성되며 이 파일을 사용자에게 배포하여 AIR 애플리케이션을 활용하게끔 할 수 있습니다.
그런데, AIR 애플리케이션을 개발 하다 보면 종종 부딪히는 이슈가 한가지 있는데, ADL에서는 정상적으로 실행되는 AIR 애플리케이션이, ADT에서 패키징 되지 않는 문제가 발생하곤 합니다.
이러한 문제점은, 애플리케이션의 소스 코드의 문제점이라기 보단, 패키징 과정 자체의 문제점으로 IDE상에서 별도로 디버깅을 한다거나 에러창을 통해 확인할 수 없어서 난감한 문제이기도 합니다.
하지만, 이 문제점은 개발 상의 실수라기 보단, 패키징 과정 중에서만 발생하는 별도의 문제점으로 앞서 설명한 ADT의 실행 구조를 이해하면 보다 손쉽게 문제점을 찾아낼 수 있습니다.
우선 가장 흔히 발생하는 문제로, ADT에서는 AIR 애플리케이션의 전반적인 설정을 담는 디스크립터 파일을 패키징 과정 중에 함께 첨부하는데, 개발자가 디스크립터 파일의 엘리멘트를 잘못 작성하여 패키징이 정상적으로 진행되지 않는 경우입니다.
일반적으론, SystemChrome와 같이 입력사항에 제한이 있는 엘리멘트에서 흔히 발생하며, 다소 예외인 경우지만, AIR 애플리케이션의 아이콘에서도 문제가 발생하기도 합니다.
예를 들어, AIR 애플리케이션의 아이콘은, 엘리멘트에 정의된 크기를 반드시 유지하여야 하고, 확장자도 PNG 파일만 사용할 수 있습니다. 만약, 16x16 아이콘 엘리멘트에 정의된 이미지 파일의 크기가 16x15일 경우 패키징 과정중에서 에러가 발생하게 됩니다.
그리고, ADL과 ADT의 버전이 일치하지 않을 경우에도 이런 문제가 발생하게 되는데, 가령 1.5.2 ADL에서 테스트한 AIR 애플리케이션을, 1.5.1 ADT에서 패키징 할 경우, 디스크립터 파일의 설정이나, 새로운 API 사용등의 상황으로 패키징이 진행되지 않을 수 있습니다.
또한, AIR 애플리케이션을 패키징 할 때 사용한 인증서의 유효기간이나 키 체인 문제로, 패키징 과정은 모두 마쳤으나 사이닝 과정을 거치지 못해, 최종적으로 .air 파일이 생성되지 않는 경우도 있습니다. 이 경우엔, 다시 ADT에서 AIRI 파일을 생성하여, 인증서의 문제인지 확인 할 수 있습니다.
이번 글을 통해 살펴본 문제점은, 주로 AIR 애플리케이션 개발을 처음으로 경험하는 개발자들이 ADT의 실행원리를 이해하지 못하거나, 실수로 여러 설정을 변경해서 발생한 문제점으로, 그렇게 심각한 문제점은 아닙니다. ^^;; 또한, AIR 애플리케이션 개발을 여러 번 하다 보면 이러한 실수는 점차 줄어들게 되니, 너무 걱정하시지는 않는 편이 좋겠습니다.



