관심 분야에 따라 심도 있는 논의를 진행하는 오전 행사 이후, 이날의 오후 세션은 내로라하는 여러 업체들의 주제 발표로 이루어졌습니다. M$, 구글 등 거대 글로벌 기업은 물론이고 크고 작은 국내 기업들의 발표가 이어졌습니다. 꽤 길었던 오후 행사를 보며 느낀 점은 인터넷이 또 다른 경쟁의 시대로 들어섰다는 것이었습니다. 물론 지금까지도 인터넷의 역사는 브라우저, 웹서비스, 검색 등 기술 경쟁의 역사와 궤적을 같이했다고 할 수 있습니다. 그리고 이번 컨퍼런스를 통해 앞으로 이러한 경쟁은 웹 어플리케이션으로 이어지고 있다는 것을 알 수가 있었습니다.
처음 웹서비스는 “서버가 요청을 빠르고 안정적으로 처리할 수 있는 것”을 중요하게 생각했습니다. 트래픽이 많지 않고 네트워크 장비 기술과 인프라가 충분하지 않았던 때에는 보다 빠른 응답과 다운되지 않는 웹서버가 더욱 중요했었죠. 아파치Apache나 PHP 같은 프로그램들이 크게 인기를 끌었던 이유가 위와 같은 것이 가능하기 때문이었습니다. 그러나 서버와 네트워크 기술이 발전하면서 장비의 성능이 크게 향상되고 가격도 저렴해 지면서, 화두는 “쉽게 개발할 수 있고 유지할 수 있는 기술”이 중요해지기 시작했습니다. 덩치가 크고 느려서 실용성이 없다고 생각되었던 자바Java가 부활하게 된 것도 체계적으로 개발이 가능하고 유지보수하기가 쉽다는 특성이 있기 때문이었죠. 동시에 시스템의 기본적인 기능을 갖추고 개발을 용이하게 해 주는 프레임웍Framework이 주목받게 되었습니다. 프레임웍이 있으면 개발자는 네트워크 프로그래밍, 데이터베이스 통신, 설정 파일 처리 등 시스템의 기반이 되는 기본적인 기능들을 별도로 개발할 필요 없이, 가장 필요로 하는 기능만 개발하면 된다는 장점이 있습니다. 그리고 복잡한 서버 시스템의 구조를 최대한 정리된 형식에 맞춰 개발할 수 있어서 프레임웍 기술이 중요하게 여겨지게 된 것이죠. 지금도 다양한 프로그래밍 언어 기반의 프레임웍들이 경쟁하며 춘추전국시대를 열어가고 있다고 할 수 있습니다.
하지만, 누가 뭐라 해도 요즘 웹 서비스계의 최대 화두는 “서버에 부담을 덜어주면서 더 많은 일을 처리할 수 있는 것”이라 할 수 있습니다. 이제까지는 강력한 서버가 복잡한 요청을 받아 엄청난 데이터를 처리하여 빠른 시간 내에 결과를 돌려주는 것이 미덕이었으나, 이것은 서버의 구조를 복잡하게 만들고 유지보수하기 어렵게 만든 측면이 있었습니다(설령 프레임웍을 잘 사용한다 하더라도). 게다가 서버가 아무리 미끈한 데이터를 뽑아서 돌려준다 하더라도 그것을 사용자에게 보여주는 클라이언트의 성능이 형편없다면 사용자가 만족하기 어렵겠죠. 요즘 사용자들은 단순한 HTML 페이지를 받아보는 것에 만족하지 못하고 보다 다이나믹한 화면을 보기를 원합니다. 이런 현상은 특히 플래시가 클라이언트로 사용되는 경우가 많아지면서 더욱 심화되고 있습니다. 그래서 요즘의 웹서비스는 단순히 초강력 서버의 수퍼맨 같은 활약으로만 이루어지지 않고, 클라이언트까지 포함한 총체적인 프레임웍을 구성하려는 움직임이 강화되는 추세입니다.
플래시처럼 화려하고 동적인 클라이언트는 웹 어플리케이션의 새로운 중심으로 자리 잡고 있습니다. 이들을 RIA(Rich Internet Application)라고 총칭해서 부릅니다. RIA는 마치 기존의 오피스 같은 데스크탑 어플리케이션처럼 강력하고 많은 기능들을 수행할 수 있으며, 입력창과 라디오 버튼 몇 개로 이루어진 정적인static HTML보다 동적이고 편리한 유저 인터페이스를 제공합니다. 하지만, RIA와 기존 웹 어플리케이션 사이의 결정적인 차이는 서버와의 관계에 있습니다. 기존 웹 어플리케이션은 서버에서 보내주는 내용에 거의 의존하여 출력을 합니다. 표 하나만 그리더라도 서버에서 표의 마지막 라인까지 지정해서 보내줘야 출력이 가능했죠. 하지만, 보통 RIA는 서버에서 모든 정보를 얻어오는 것이 아니라 순수한 데이터만을 XML 등으로 받아오는 경우가 많습니다. 일단 데이터를 받아오면 RIA는 이 데이터를 뒤섞거나 순서를 재정렬하거나 하는 작업을 임의로 할 수 있습니다. 아까처럼 표 전체를 요청하는 것이 아니라 표에 들어가는 데이터만을 요청하게 되고, 순수한 데이터만을 이용하여 표의 마지막 줄을 제일 앞으로 보내는 식으로 하는 출력을 할 수 있게 되는 것이죠.
RIA계의 전통의 강자는 아직까지 Flex임이 분명합니다. 하지만, 플래시 플레이어에 의존해야 하고 엄청난 비용이 들어가는 Flex에 불만을 느끼는 사람들이 많습니다. 그래서 가장 일반적인 웹의 표현방식인 다이나믹 HTML(DHTML)과 자바스크립트, XML을 이용한 Ajax(에이작스라고 보편적으로 읽습니다)가 2006년 선풍적인 인기를 끌 수 있었죠. 역시 예전에 네트워커에서 소개한 바가 있는 Ajax는 비동기적asynchronous 통신을 사용하여 서버 부하를 줄이고, 데이터 교환 형식으로서 XML을 사용하며, DHTML과 자바스크립트로 동적인 페이지를 구성하는 방식입니다. 플래시 플레이어 같이 별도의 프로그램을 깔 필요가 없으며, 브라우저만 있으면 동작한다는 장점 때문에 많은 관심을 받았으며, 지금도 Ajax 어플리케이션은 널리 사용되고 있습니다. 다만, XML 처리나 브라우저마다 자바스크립트를 별도로 작성해야 한다는 점 때문에 다소 사용에 번거로운 점이 있다는 단점이 있지만, 이는 프레임웍이나 라이브러리 등의 배포로 점차 나아질 것 같습니다.
구체적인 것은 나오지 않았지만, OS와 브라우저를 가리지 않고 지원한다는 호언장담을 믿어본다고 하면(현재는 아직 리눅스 버전이 없습니다만), Flex와 좋은 승부가 되지 않을까 하는 예상을 할 수 있겠습니다.
이 밖에도 구글은 구글 API를 기반으로 한 플랫폼 구글기어즈Google Gears를 발표했으며, XML 기반의 유저 인터페이스를 만들 수 있는 오픈라즐로OpenLaszlo도 눈길을 끌었습니다. 바야흐로 지금은 어도비가 수성하고 있던 웹 어플리케이션계에 RIA라는 전장이 마련되고 전운이 감도는 상황이라고 할 수 있겠네요.
RIA는 보통 웹 어플리케이션 기술에 더하여 서버, 데이터 교환, 프로그래밍 언어, 개발도구 등과 함께 이루어지는 것이 보통입니다. 위에서 언급한 Flex는 Flash 클라이언트와 Flex 서버, MXML, 액션 스크립트, Flex SDK 등으로 묶이는 것처럼 말이죠. 물론 결국 하나의 RIA는 하나의 플랫폼을 이루는 것이 보통이고, RIA의 각축장은 결국 플랫폼의 각축장입니다. 최후의 승자가 누가 되든 간에, 사용자들은 요즘 많이 강조되는 UX User Experience), 즉 보다 풍부한 사용자 경험을 할 수 있는 환경이 조성될 것이므로 경쟁을 즐거운 마음으로 지켜보면 될 것 같습니다. 물론 그 사이에서 변화하는
환경에 적응해야 하는 개발자와 디자이너들은 무척 힘들겠지만요. :)
- 덧붙이는 말
-
레니 : 진보네트워크센터 기술국 자원활동가. http://blog.jinbo.net/renegade/