HTAs (HTML Application) 는 죽은 언어일까? HTAs

HTAs (HTML Application) 라는 것을 접한지도 3~4년 정도 되어가는것 같다.
HTAs (HTML 응용프로그램, HTA 라고도 함) 는 HTML Application 의 약어이다.
즉, HTML 로 만들어진 응용프로그램이라는 뜻이다.

참고할 자료:
HTML Application (위키백과) - 크롬 접속으로 번역해서 볼것
마이크로소프트의 HTAs 소개 - 크롬 접속으로 번역해서 볼것

위키백과에 실린 내용에 따르면, 1999년 부터 윈도우에 탑재 되었다고 한다.
ASP (Active Server Page) 프로그래밍을 배운 사람들은 어느정도 배운다고 하지만,
사실 국내 웹개발 교육과정에서 HTAs 를 별도로 배우지는 않는다.
검색사이트에서 HTA 또는 HTAs 를 검색해봐도 같은 이름의 다른 정보들이 나올뿐 막상 이것을 공부할 수 있는 자료는 국내에 거의 전무한 상태.
간간히 블로그들의 글에서 정보를 볼 수 있지만, 기초적인 수준의 자료만 있을 뿐이다.
실무에 있어서도 거의(?) 쓰이지 않기 때문에, HTAs 라는 프로그래밍을 모르고 지나치는 경우가 많다.
ASP 개발자들이 HTAs 를 배우는 이유는 아마도, MS 의 윈도우서버를 관리하기 위한 툴을 자체적으로 개발하기 위한 것으로 풀이된다.
윈도우 서버는 자체적으로도 많은 기능을 가지고 있지만, 사용자의 요구나 관리 측면에서 다양한 응용프로그램을 자체적으로 만들 필요가 있다.
어쩌면, 마이크로소프트에서도 그런 정도의 기능을 위해 HTAs 를 개발하지 않았을까 하는 생각을 해볼수도 있다.
웹개발을 하다보면, 점점 브라우저용 스크립트에 익숙해져서, '스크립트 언어로 로컬용 어플리케이션을 만들수 없을까?' 하는 호기심이 생긴다.
브라우저를 띄워서 스크립트를 이용해 UI 를 꾸미고 갖가지 동작을 하게 해서 어플리케이션처럼 쓸수는 있다.
하지만, 브라우저는 온갖 보안정책의 제한으로 인해 많은 작업들을 수행하지 못하게 된다.
하지만, HTAs 로 프로그래밍을 하면, 마치 비쥬얼베이직(Visual Basic) 이나 델파이(Delphi) 같은 프로그램으로 만든 응용프로그램 비슷하게 로컬에서 동작하는 프로그램을 만들 수 있다.
물론, 기능상에 차이가 많기는 하지만 어떤 정도의 업무를 수행하는 프로그램을 만들것인가에 따라서 나름대료 유용한 프로그램을 만들 수 있다.

3~4년전에 처음 HTAs 라는 프로그래밍 방법을 알게 되었고, 외국 사이트를 찾아보며 나름대로의 구현 방법을 만들었다.
외국 사이트에서는 간간히 이와 관련된 자료들을 검색할 수 있지만, 국내에는 이에 대한 인식이 거의 없고 자료도 거의 없으며 있어도 아주 기초적인 문법 자료 밖에는 없다.
아무튼, 그래서 HTAs 를 이용해 몇개의 프로그램을 제작했고, 사용자들은 작업의 신속성과 결과물에 만족했다.
HTAs 는 죽은 언어일까?
국내에 HTAs 로 제작된 프로그램이 거의 전무하다시피 하고, 앞으로도 사용될 기미가 거의 보이지 않는다는 점에서 그런 의문이 든다.

사실, HTAs 는 굉장히 유용한 장점이 있으면서도 치명적인 단점을 가지고 있다.

장점.
1. 윈도우에서 완전히 신뢰할 수 있는 프로그램으로 동작한다.
즉, 레지스트리의 등록,수정,삭제나 파일의 복사,이동,삭제 등에 제한이 없다. 보안문제가 발생하지 않는다.
2. 별도의 설치 과정 없이 동작한다.
3. 스크립트 언어(VBS-ript, Javascript, JScript) 등을 어느정도 알면 쉽게 배울 수 있다.
4. 윈도우에서 제공하는 갖가지 기능들을 응용해서 사용할 수 있다.
(도스 프로그램을 호출하여 이용, WScript, CScript 등의 이용, 그외 외부 응용프로그램을 호출, 데이타베이스 이용)
웹페이지에서 동작하는 갖가지 방법은 거의 대부분 사용 가능하다.
ActiveX 를 호출하거나 플래시를 호출하여 사용할 수 있다.
5. 스크립트 언어와 HTML 태그로 작성하기 때문에 제작이 쉽고, 관리도 쉬운 편이다.
6. 윈도우가 설치된 컴퓨터에서는 별도의 추가설치 과정 없이 바로 동작한다.

단점.
위에서 언급했던 장점들이 단점이 되는 경우가 꽤 많다.
1. 윈도우에서 완전히 신뢰할 수 있는 프로그램으로 동작하기 때문에, 한때 HTA 확장자로 만들어진 바이러스 파일이 전세계적으로 문제가 된 적이 있다.
두번 클릭하면 바로 실행이 되기 때문에, 메일에 첨부되어 온 이 파일(.hta)을 아무생각없이 클릭한 사용자들은 갖가지 바이러스에 감염되었다.
그 때문에, 국내에서는 .hta 확장자로 된 파일을 바이러스 파일로 인지하고 있다.
이런 안좋은 인식 때문에 .hta 로 된 프로그램들이 만들어지지 못하고 사장되는 결과를 낳지 않았나 싶다.
2. 별도의 설치 과정이 없는 것은 상당히 유용하지만, 윈도우의 C:\ 나 바탕화면에서 실행하다가 윈도우가 날라가거나 혹은 지워버리면 데이타가 그대로 날라가 버리는 문제가 발생할 수 있다.
이는 치명적인 문제라기 보다는 사용자를 잘 교육시키면 해결할 수 있는 문제다.
3. HTML 태그와 스크립트 언어로 작성하기 때문에 작성과 관리가 매우 간편하지만, 소스코드가 그대로 노출되고 이를 감출 방법이 없어 저작권 보호에 치명적 문제가 발생한다.
아마도, 국내에서 HTAs 프로그램이 활성화 되지 못한(또는 국제적으로도) 이유는 2번 항목과 3번 항목의 문제점 때문일것으로 생각된다.
4. 윈도우에서 제공하는 갖가지 기능들을 가져다 쓸 수 있지만, 그 이상은 안 된다.
HTAs 는 태생적으로 스크립트 언어와 태그를 기반으로 동작하는 프로그램이다.
웹페이지가 가지고 있던 문제들을 거의 그대로 물려받게 된 것이다.
스크립트 언어와 태그는 사선이나 곡선을 그리지 못한다.
(물론, 최신 브라우저와 별도의 언어를 이용해 구현이 가능하다.)
따라서, 그럭저럭 볼만한 무난한 사용자 환경(UI)는 쉽게 구현하지만, 그 이상의 멋진 그래픽 화면을 구현하지 못한다.
(자바스크립트프레임워크 등으로 보완할수는 있지만, 자바스크립트프레임워크 역시 라이센스가 있어 무턱대고 가져다가 사용할수는 없다. 또한, 자바스크립트프레임워크 관련하여 배울만한 자료는 현재로써는 거의 찾아보기 힘들다.)
5. 스크립트 언어와 태그로 쉽게 작성하지만, 역시 그 이상을 벗어나지는 못한다.
6. HTAs 프로그램은 근본적으로 mshta.exe 와 브라우저의 모듈 등을 이용하여 동작하는데, 윈도우가 설치된 컴퓨터에서는 바로 사용이 가능하지만, 윈도우가 아닌 컴퓨터에서는 사용할 수 없다.
위에서 보듯이 장점이 곧 단점이 되는 경우가 많다.
비지니스용 프로그램 될 수 없었던 이유는 위의 '단점' 의 2,3번 항목 때문일 것으로 생각된다.
고생해서 제작한뒤 돈을 받고 납품할수는 있지만, 소스코드가 노출되기 때문에 프로그램이 쉽게 변형될 수 있고, 복제와 재배포가 용이하기 때문이다.

그런 여러가지 문제점들이 있지만, HTAs 는 여전히 매력적인 프로그램이다.
고성능을 요하는 작업이나 복잡한 로직의 프로그램에는 부적합하지만, 단순하고 간단한 기능을 수행하는 업무용 프로그램으로는 상당히 효과적이다.
예를들어, 일기장, 가계부, 회원관리 등의 단순한 업무를 처리하는 프로그램을 만들기에는 제작시간과 비용이 적게 들기 때문에 좋은데, 이런 단순한 프로그램을 만들기 위해 비쥬얼베이직, 델파이, C++ 등을 하는 고급개발자에게 많은 비용을 지불하여 프로그램을 받을 필요는 없다.
응용만 잘하면, 각종 전문분야에서 사용되는 간단한 전용 프로그램도 비교적 쉽게 구현할 수 있다.
실무현장에서는 이렇듯 간단한 기능을 수행하는 프로그램이 필요할때가 많기 때문에 나름대로의 사용처도 있는 셈이다.
IT 환경은 최근 몇년 사이 급속도로 변하고 있다.

웹시대의 붐이 있었고, 로컬 응용프로그램으로 만들어진 언어들은 웹용 언어와 혼합되기에 이르렀다.
그것도 잠시, 스마트폰의 붐이 일어나면서 새로운 개발환경이 도래하고 있다.
개발자들은 그때마다 새로운 언어를 배워야 하고, 변화된 기술을 익혀야만 했다.
로컬 응용프로그램 언어들이 가지고 있는 한계점, 웹용 스크립트 언어들이 가지고 있는 한계점.
그것을 혼합하려는 시도는 별달리 성과를 이루지는 못한것 같다.
그런 와중에 HTML5 가 이슈가 되면서, 앞으로 몇년 뒤에는 지금까지와는 또다른 독특한 개발 환경이 오게 될수도 있다.
그런 변화 속에서, 이미 개발된지 11년이나 HTAs 프로그래밍이 얼마나 효용성이 있겠나 싶기도 하고, 사장되지 않겠나 싶은 우려가 있는데, MS 사이트에 HTAs 관련하여 2011년 자료가 여전히 있는 것으로 보아 앞으로도 사장되지는 않고 계속 이용될 수 있을것으로 보여진다.
윈도우7 에서도 잘 동작하고 있으며, 앞으로 나올 윈도우8 에서도 별 문제없이 동작할 것으로 보이는데, 윈도우8 은 모바일 기기에서도 동작하게 되기 때문에, 잘만하면 모바일 기기에서도 HTAs 가 구동하는 놀라움이 일어나지 않을까 하는 기대를 해본다.

몇년 전에 모 대학의 교수님이 내게 HTAs 를 구현하는 자료를 부탁한 적이 있는데, HTAs 를 구현하는 방법은 정말 광범위하기 때문에 아주 간략히 만들어 준적이 있다.
제대로 설명을 하려면 분량도 분량이거니와 엄청난 시간이 소모되는데, 자료에 대한 댓가를 받지 못하는 상황이었다.
개인적으로는 일종의 '비장의 무기' 같은 것으로 여겨지기도 하는데, 국내에 워낙 자료가 없고, 그냥 사장되고 있는것 같은 아쉬움도 있어 HTAs 와 관련한 글을 써보려고 한다.

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


통계 위젯 (화이트)

76416
3214
10782550

google_myblogSearch_side

▷검색어

Flag Counter style2