반응 속도 빨라지고 상호 작용도 높아져…적합한 툴 찾기는 ‘시기상조’

클릭, 일시 정지, 보기. 클릭, 일시 정지, 보기. 우리가 지난 수년 동안 겪어본 웹 사이트는 대부분 이러한 형태로, 클릭하고 잠깐 기다리면 새로운 페이지가 뜨는 방식이다. 하지만 아마존닷컴과 구글, 야후 등이 새로운 소프트웨어 개발 방식을 통해 애플리케이션이 흐름과 그래픽 생성이 원활하게 이루어지는 형태를 선보여, 과거의 연속적이며 단음적인 방식과 비교 논쟁이 한창이다. 기업의 웹 사이트들의 경우 방문자들을 오래 기다리게 하든지 사이트가 너무 단조롭다면 방문객들이 사라지게 될 것이다. 이에 따라 사이트 개발자들은 메가포털을 답습하기 시작했다. 에이잭스(Ajax)가 대표적인 사례이다.
구글·야후·아마존닷컴 등 도입 잇따라
브라우저 창의 다이내믹 HTML에서 자바스크립트(JavaScript)가 구동하는 이러한 웹 프로그래밍 접근 방법은 인터랙티브 요소들을 지원하며 일상적인 페이지 다운로드의 사이클을 깨트린다. 정보나 다른 웹 페이지를 불러들이기 위해 링크를 클릭하게 되는, 페이지당 하나의 인터랙션을 사용하는 대신에, 에이잭스는 페이지가 사용자와 인터넷 서버 사이에서 데이터를 여러번 교환할 수 있도록 해준다.
웹 애플리케이션에 대해 일련의 미니 다운로드와 순간적인 지연으로부터 즉각적인 데이터 전송으로 바꾼다. 넷플릭스(Netflix)의 경우, 영화 제목에 마우스를 클릭하면 영화의 출연 배우와 줄거리가 즉각적으로 뜬다. 바로 에이잭스가 구현된 것이다. 아메리칸 에어라인의 경우, 10만여 항공석에 이르는 그리드를 스크롤해 다음날의 스케줄을 결정할 수 있는데, 이는 하나의 HTML 페이지에서 디스플레이되기엔 불가능할 정도이다. 이러한 기능은 사브르 홀딩스(Sabre Holdings)가 만든 에이잭스 툴킷인 오픈리코(OpenRico)에 의해 구현된 것이다. 또한 구글이 구글 캘린더에 밀집된 데이터를 사용자가 쉽게 공유하도록 해주는 것도 에이잭스가 있었기에 가능한 것이다.
에이잭스는 인터넷 서버에서 다운로드 된 다음에 브라우저 창의 콤포넌트들을 활성화시킨다. 브라우저의 캐시에 남아서 반복적인 다운로드가 필요 없도록 해주기 때문에 처음 다운로드가 실행된 이후 에이잭스 애플리케이션의 속도를 높여준다. 브라우저의 양과 질에 따라 콤포넌트들이 브라우저 창에서 실행할 수 있는 것이 많거나 적을 수 있다. 에이잭스는 가벼운 것에서 다소 무거운 형태로 웹 클라이언트의 ‘중량’에 대한 일부 통제권을 애플리케이션 개발자들에게 다시 되돌려준다. HTML 페이지 환경에서는 클라이언트가 메인프레임 터미널처럼 얇고 수동적이다.
많은 기업들이 빠르고 유용하며 매력적인 웹 사이트를 생성할 수 있도록 해주는 에이잭스의 능력에 높은 관심을 보이기 시작했다. 하지만 에이잭스의 도입은 아직 본격화되고 있지 않은 초기 단계이며 기업들의 실제 구현이 지연되고 있다. 기업의 기술 관리자들이 에이잭스에 대해 시간을 갖고 좀더 지켜보고 있는 이유는 여러 가지가 있다.

현재 70여종의 툴킷 개발
에이잭스는 오픈 소스 툴로 이루어진 낮은 수준의 툴킷과 독점적인 프레임워크가 지배적이다. IBM의 신기술 총괄 부사장이면서 에이잭스 후원자이기도 한 로드 스미스는 7개월 전만 해도 에이잭스 툴킷이 몇 종류에 불과했지만 현재는 70종이 넘는다고 말했다. 그는 향후 2년 동안 시장이 안정됨에 따라 툴킷도 십 여종으로 줄어들 가능성이 높다고 덧붙였다. 한편, IBM은 구현을 위한 툴킷의 공통된 행동을 정의하는 오픈 에이잭스(OpenAjax)를 지원하고 있으며, 일부 툴킷을 이클립스(Eclipse) 오픈 소스 프로그래머의 작업 공간으로 이동시키고 있다.
시장이 안정될 때까지 기다릴 수 없는 기업들의 경우 선택의 문제에 직면하게 된다. 자사의 특정 문제를 해결할 수 있는 에이잭스 툴킷이 이용 가능하더라도 그 수명이 문제이다. 향후 지속적으로 시장에서 이용이 가능하며 업그레이드될 수 있는 툴킷을 선택하기란 쉽지 않다. 이러한 상황을 감안하고라도 툴킷이 선택할만한 가치가 있을까? 에이잭스의 기존 기술인 자바스크립트와 다이내믹 HTML을 사용해 직접 개발하는 것도 가능하다.
또 다른 선택 사항은 백베이스(Backbase)나 BEA 시스템즈, 빈도우즈(Bindows), 엑사델(Exadel), 팁코 등이 제공하는, 복잡성을 숨긴 보다 정교한 에이잭스 개발 프레임웍을 사용하는 것이다.
극히 일부의 업체들만이 아마존이나 구글, 야후 등과 같은 방법으로 에이잭스의 개발 업체들로 등록될 것이다. 대부분의 IT 부서들은 마이크로소프트 닷넷이나 C#, 표준 C++, 자바 등의 애플리케이션 개발 기술을 보유하고 있다. 하지만 이러한 기술을 보유하고 있는 프로그래머들도 객체 지향적이지 않은 자바스크립트는 모르는 경우가 많다. 이는 지난 10년 동안 작업해왔던 접근 방법 대부분이 적용되지 않는다는 의미이다.
더더욱 나쁜 것은 그들이 자바스크립트를 배우려 하지 않는다는 것이다. 프로그래머들 사이에서는 “자바와 자바스크립트의 유일한 관련성은 두 글자가 같다는 것이다”라는 농담이 유행처럼 퍼지고 있다. 자바스크립트는 특수한 규칙을 따르며 서로 다른 브라우저 창에서는 동일한 방법으로 실행되지 않는다. 인터넷에서 구동하도록 애플리케이션을 매핑하기 위해서는 프로그래머들이 자바스크립트에 거의 정통해야만 한다.
이점이 사용자가 스스로 구축하는 방법 대신에 툴킷이 필요한 이유이다. 현재 이용 가능한 툴킷에는 에이잭스 사용자 인터페이스 구성 요소가 많아지고 있다. 백베이스와 빈도우즈, 잭비(JackBe), 라스즐로 시스템즈(Laszlo Systems) 등의 신생 업체들은 가장 창조적인 에이잭스 툴을 개발하고 있지만 기업들은 ‘생명력’이 짧은 개발 제품에 투자하는 것을 기피하고 있다. 선택하는 툴킷에 대한 기회요소를 높이기 위해서는 소프트웨어 AG나 BEA 시스템즈 등 유명 벤더들로부터의 지원 여부를 확인해보는 것이다.
또 다른 특이 사항은 오픈 소스의 ‘기부’이다. 사브르나 구글, BEA와 라스즐로, 야후 등은 에이잭스의 대표적인 기부자들이라 할 수 있다. 지원자들의 커뮤니티가 형성될 경우 영향력이 높아질 수 있다. 오픈 소스 커뮤니티에 의해 지원되는 이클립스에 툴킷이 적용된 사례를 본다면 다양한 목적으로 재창조가 가능하다는 것을 알 수 있을 것이다.
대표적인 사례는 사브르의 오픈리코(OpenRico)로, 현재 야후의 에이잭스 ‘전도사’인 빌 스콧과 야후의 DHTML 메일 개발자인 대런 제임스가 제작한 것이다. 스콧은 “이 툴킷은 라이브그리드(LiveGrid)라 불리는 기능인, 웹 애플리케이션으로의 테이블을 스크롤할 수 있는 기능과 연동되도록 개발되었기 때문에 항공기 스케줄러로 사용된다”고 말했다. 오픈리코는 50~60개의 사용자 인터페이스 콤포넌트가 있지만 데이터 조절과 필터링, 디스플레이에 강점이 있다.
오픈 소스로 이용 가능한 도조(Dojo) 툴킷은 도조 재단의 회장이며 위키(wiki) 툴 공급 업체인 잣스팟(JotSpot)의 선임 소프트웨어 엔지니어인 알렉스 러셀과 도조 툴킷의 공동 개발자인 딜런 쉬먼 등에 의해 개발되었다. 도조는 클라이언트에서의 사용자의 행동 상태를 추적하고 웹 애플리케이션 개발자들의 걱정 거리인 백 버튼의 사용을 가능하게 해주는 매우 자세한 일련의 사용자 인터페이스를 갖고 있다. 전통적인 웹 애플리케이션의 경우, 5페이지로 이루어진 사이트에서 마지막 페이지에 에러가 발생할 경우, 사용자들은 첫 페이지로 돌아가 처음부터 다시 검색해야만 한다. 도조는 이를 개선한 형태의 애플리케이션을 개발하고 있다.

‘가부키 댄스’
아파치 소프트웨어 재단의 가부키(Kabuki)는 웹 애플리케이션 신생 업체인 짐브라(Zimbra)의 짐브라 에이잭스 툴킷을 토대로 하고 있다. 짐브라의 CTO인 스콧 디트젠은 “가부키는 자바 지향적인 프로그래머들이 인터랙티브 이메일과 메시징, 캘린더링 등을 웹 애플리케이션으로 제공할 수 있으며 마이크로소프트의 아웃룩과 통합되도록 개발되었다”고 말했다. 가부키는 마이크로소프트의 OLE(Object Linking and Embedding)의 대체 웹 애플리케이션인 에이잭스 LE(Linking and Embedding)을 제공한다. 이는 엑셀 스프레드시트의 데이터를 워드 문서에서 불러올 수 있는 기능과 같이 오피스 애플리케이션이 서로 연동하도록 해주는 OLE이다. 디트젠은 에이잭스 툴킷도 자바 프로그래머들에게 동일한 기능을 제공해야 한다고 말했다. 짐브라는 짐브라 라이트(Write)와 짐브라 캘크(Calc)를 포함한 짐브라 협업 스위트를 구성하는데 가부키를 사용하고 있다.
지난 2월에 발표한 야후의 유저 라이브러리는 오픈 소스 지원의 툴킷으로, 이클립스에 적용되지는 않았지만 유용한 자체 기능을 포함하고 있다. 야후의 유저 라이브러리는 토마스 쇼와 8명의 야후 자바스크립트 프로그래머들에 의해 개발되었다. 유저 라이브러리에는 오픈리코의 데이터 처리 및 스크롤링 기능이 포함되어 있으며, 날짜 선택 등의 캘린더 기능을 비롯해 팝업 창, 대화 박스 등의 다양한 기능도 제공된다.
에이잭스 개발자들이 이용할 수 있는 통합된 개발 환경도 있다. 홈 쇼핑 네트워크(HSN)를 에이잭스 애플리케이션으로 구축한 프로젝트 매니저인 존 톰슨은 HSN의 물류 관리자들의 선적 청구서를 검사하는데 사용되는 애플리케이션 구축을 위해 엑사델(Exadel)의 비주얼 콤포넌트 플랫폼을 선택했다. 일련의 데이터를 검색하는 매니저로서, 이들은 의심스러운 데이터를 격리한 다음 쇼핑객의 주문 내역과 비교해 승인 여부를 판단하게 된다. HSN은 한 주에 평균 95만개의 패키지를 선적하고 있다.
톰슨은 “긴 페이지를 다시 활성화하는 것을 원하지 않았다”고 말했다. 하지만 인터넷으로 나가는 데이터를 검사할 필요성이 있기 때문에 3개월 동안 애플리케이션을 사용해본 다음에는 성능에 만족하게 되었다고 밝혔다.
MS, 롱혼 서버에 에이잭스 기능 탑재 예정
톰슨은 엑사델 툴을 도입하기 전에 그의 프로그래밍 직원들이 자바스크립트와 DHTML을 직접 작업하는 실험을 진행했었다고 말했다. 그는 “처음 접했을 때는 다소 당혹스러웠다”고 전했다. 엑사델은 에이잭스를 구현할 수 있는 비주얼 환경을 제공하며 다양한 브라우저의 성능 차이를 해결해줄 수 있는 환경도 제공하고 있다.
아미커스(Amicus)는 금융 서비스 회사들에게 이메일 아카이빙 시스템을 판매하기 위해 에이잭스 기반의 기업용 메시징 애플리케이션을 사용하고 있다. 이 시스템은 의심스러운 용어에 표시하거나 이메일에 제공해 메일 관리자들에게 주의를 당부하며, 이메일 컨텐츠의 색인을 달아 주제별로 검색이 가능하다. CEO인 마샬 후베는 “이 애플리케이션의 에이잭스 링크 덕분에 2.5G의 이메일 아카이브를 완벽하게 검색할 수 있다. 특정인의 전화 번호나 이메일 주소를 찾는데 있어 메시지의 이름에 표시를 하는 등의 인터랙티브 기능이 많아 업무에 많은 도움을 준다”고 밝혔다.
또한 후베는 “아미커스 엔보이(Envoy) 이메일 호스팅 및 관리 시스템은 짐브라의 에이잭스 클라이언트가 구현한 기능으로 인해 마이크로소프트 익스체인지와 아웃룩을 훌륭하게 대체 가능한 에이잭스 기반의 클라이언트를 사용하고 있다”고 밝혔다. 그는 “고객들의 만족도를 높이기 위해 웹 서비스와 웹 툴에 의존하고 있다. 에이잭스를 좋아하는 이유 중의 하나는 견고한 검색 기능 때문”이라면서, “모든 이메일에는 첨부파일과 함께 색인 기능이 탑재되어 있다”고 말했다. 웹 애플리케이션에 협업과 통합 기능이 추가된 것도 에이잭스의 또 다른 강점이다. 후베는 “혁신적인 기능이 잇달아 구현되는 것도 에이잭스의 큰 장점”이라고 덧붙였다.
백베이스와 BEA 시스템즈, 빈도우즈, 소프트웨어 AG, 팁코로부터 통합된 개발 환경도 이용할 수 있다. 마이크로소프트는 내년 출시 예정인 윈도우 롱혼 서버에 에이잭스 기능을 탑재할 예정이다. 지난 3월, 마이크로소프트는 아틀라스(Atlas)에 고 라이브(Go Live) 라이선스를 제공했는데, 여기에는 마이크로소프트 소프트웨어에 애플리케이션 구축 허용 기능이 포함되어 있다. 4월에는 에이잭스 애플리케이션 구축을 더욱 용이하게 만들어주는 비주얼 스튜디오 아틀라스 컨트롤 툴킷을 제공했다.
하지만 툴킷의 등장이 모든 에이잭스 개발 문제를 해결해주는 것은 아니며, 자체적으로 에이잭스를 개발했던 경험이 있는 업체들도 당분간 지켜보고 기다리는 편이 낫다고 조언하기도 한다. 에이잭스 애플리케이션은 브라우저 창에서 메모리가 누출될 우려가 있어 운영이 느려지고 할당된 메모리나 캐시에도 악영향을 끼칠 소지가 있다. 유일하게 어도비가 주요 에이잭스 특징을 포함한 애플리케이션의 모델이라 할 수 있는 디자인 툴을 개발했을 뿐이다. 지금까지는 대부분의 툴이 구축의 프로그래밍 측면에만 집중하고 있다.

“경쟁력 강화를 목표로 한다면 즉시 도입하라”
각 IDE는 자체 학습 곡선을 갖고 있으며, 대부분 독단적인 형태이다. IT 매니저들이 에이잭스를 필요로 하는 프로젝트 요구 사항에 직면할 경우 하나를 선택하고 오래 지속되기를 희망한다. 기다릴 여유가 없는 사람들의 경우 오픈에이잭스와 같은 형태를 선택할 경우 에이잭스 툴 사이의 호환성을 보장하고 확실한 표준도 기대할 수 있다. 일부 업체들의 경우 고객의 웹 애플리케이션에 대한 경쟁력 강화 차원에서 에이잭스를 토대로 한 애플리케이션을 통해 웹 사이트의 응답 시간을 높일 수 있다. 오픈 소스 툴킷에 대한 판단을 유보하고 기다리기만 하는 것은 초기 채택자보다 뒤쳐지게 만들 것이다.
구글의 개발자 프로그램 제품 매니저인 브렛 테일러는 자바에서 비즈니스 로직을 개발하고 반응 시간을 줄이기 위해 브라우저의 차이점을 해결할 수 있는 툴을 사용할 것을 권고하고 있다.
기업들은 이제 선택의 기로에 서 있다. 에이잭스를 신속하게 도입할 필요가 없는 기업들의 경우 상황을 좀더 지켜보면서 어떠한 툴과 툴킷이 지배력을 가질지 판단할 수 있다. 하지만 신속한 반응 속도를 구현하고자 하는 기업들의 경우 에이잭스에 대한 ‘도박’을 감행하는 용기가 필요할 것이다.
Charles Babcock

보안, 에이잭스의 ‘아킬레스 건’
에이잭스의 ‘아킬레스 건’은 보안이다. 그 유용성에도 불구하고, 이러한 프로그래밍 접근 방법은 클라이언트에 다운로드된 자바스크립트 코드의 실행에 있어 웹 사이트와 사용자의 상호 작용에 새로운 취약점을 노출시키고 있다.
마이크로소프트 비주얼 베이직 개발자들이 액티브X 컨트롤을 웹 애플리케이션에서 실행할 때 많은 보안 문제가 발생했다. 침입자들이나 불청객들이 다운로드를 통해 사용자의 PC에서 실행 파일을 구동할 가능성이 존재했다.
소프트웨어 위험 관리 컨설팅 업체인 시티갤(Citigal)의 CTO인 게리 맥그로우는 “많은 자바스크립트를 우회해 침입할 가능성이 높다”고 밝혔다. 그는 웹 애플리케이션이 사용자의 PC에서 실행 가능한 코드에 대해 서버 다운로드에 의존하는 것은 코드 주입에 의한 위험성이 높아지는 결과를 초래할 수 있다고 말했다.
에이잭스 통합 개발 환경을 제공하는 엑사델의 CEO인 피마 카츠는 “인터랙티브 기술이 문제가 아니라 신중하게 설계하는 것이 문제”라면서, “누군가의 코드를 브라우저에 구동할 경우, 외부에 노출될 가능성은 더욱 커지게 된다. 하지만 올바르게 적용할 경우 非에이잭스 시스템보다 문제가 줄어들 수 있다”고 밝혔다.
구동하는 자바스크립트의 제한된 허용을 위해 클라이언트를 최소한으로 유지해야 한다. 그는 “만일 애플리케이션이 노출될 경우 클라이언트에 다운로드되는 비즈니스 로직을 최소한으로 유지해야 하며 대부분의 비즈니스 로직이 인터넷 서버에서 구동하도록 함으로써 침입으로부터 보다 용이하게 보호할 수 있다”고 말했다.
저작권자 © 아이티데일리 무단전재 및 재배포 금지