
애플리케이션을 통해 me2day를 써보신 분은 아시겠지만, me2day에는 유난히 adobe AIR로 만든 프로그램이 많습니다. 트위터도 그런 걸로 보아 마이크로 블로그의 한 가지 유행인 듯도 하네요. 저희가 개발 플랫폼을 정할 때도 당연한 듯 AIR를 선택했습니다.
AIR 프로그램을 HTML+javascript 로 구현
AIR 프로그램은 다양한 방법으로 개발할 수 있습니다. 크게 나누자면 adobe사의 FLEX builder 등 상용프로그램을 이용하는 방법과, 웹 개발을 하듯이 HTML+javascript 로 하는 방법의 두 가지가 있습니다. 쉽게 말해서 RIA(Rich Internet Application)를 구현하는 데 있어 Flash를 이용하는 방법과 AJAX로 대표되는 javascript를 이용하는 방법이 있는 것과 비슷하다고 생각하시면 됩니다. 저희는 돈없는 직장인이기 때문에(?) 무료 개발툴을 이용할 수 있는 후자를 선택했지요.
javascript를 이용한 AIR 개발은 일반적인 javascript 웹개발과 똑같습니다. 다만, 일반적인 javascript에서 불가능한 윈도우 모양 조정이나 네트워크, 파일 함수를 사용할 수 있도록 adobe 사에서 추가적인 API를 제공합니다. 다만, FLEX를 이용하는 것보다는 아직 API가 완벽하지않고, 소소한 문제점...(네, 지나고보면 소소하다고 일컫을 수 있게되죠..)들이 있습니다.

이번 프로젝트 최고의 문제는 바로, 프로젝트 멤버들 중 javascript를 제대로 써본 사람이 아무도 없었다는 점이었는데요. (그래서 저희 소스를 공개하기가 참으로 부끄럽긴 합니다..) 적응하기 힘들었던 asynchronous 패러다임과 저를 삽질시켰던 scope 룰 등이 기억에 남네요.
가장 큰 고민은 이렇다 할 javascript 프로그램 한 번 본적 없는 주제에, 5000줄짜리 프로그램을 어떤 구조로 짜야할 지 계획하는 일이었습니다. javascript를 처음 보는 사람도 쉽게 이해할 수 있도록 짜고 싶었습니다. 하지만, javascript에서 살며시 풍기는 함수형 프로그래밍 언어 풍미에, 저도 모르게 괴악한 코드를 뿜어내고 싶기도 했지요. 물론 프로젝트 막판으로 갈수록 원래의 의지는 어디론가 실종되고 늘어져가는 함수와 구조화되지 않은 코드들을 양산했지만요.
...당연한건가요? 아..
개발하면서 있었던 다양한 애환은 또 다른 기회에 풀어낼 수 있을 것 같고요.. 지금 시점에 와서 드는 생각은, javascript 자체는 참 재미있는 도구라는 겁니다. 지금껏 많은 프로그래밍 언어들이 “어느 플랫폼에서나 돌아가는 프로그램을 위한 언어”라고 주장해왔지만, javascript야 말로 이 말에 제일 어울리는 언어 아닐까요? 네, 사실 저희는 AIR에 내장된 깔쌈한 javascript 엔진에만 맞추면 되었기 때문에 브라우저별 차이나 구버전 브라우저들의 버그, 빵꾸똥꾸 같은 메모리 먹는 귀신 등을 거의 신경쓰지 않아도 되었죠.(네.. me2idea가 그래서 느린 거 맞습니다ㅠㅠ)
아무튼 me2idea 많이 사랑해주시고, me2idea는 막바지 버그사냥이 좀 끝나면 GPL로 소스가 공개될 예정입니다... 모자란 부분이 많지만 예쁘게 봐주세요. ^^







