Greasemonkey를 통해서 본 Web 2.0 (2) – 컴퓨팅 환경의 진화

아주 오랜 옛날에는 컴퓨터가 비싸서, 여러명이 나누어 썼었다. 컴퓨터란 사실 단순 계산/처리 기계에 불과하여 진짜 데이터는 펀치카드나 테이프, 또는 더덕더덕 붙어있는 사용자들의 터미널에서부터 I/O를 통해 흘러 들어온 것이 다였었다. 그럼에도 불구하고 이런 컴퓨터들은 엄청나게 강력하고 흔치 않았으며, 따라서 흔히 메인프레임이라고 불렀다.

사용자들은 PC의 등장으로 메인프레임만큼은 아니지만, 그래도 바보같은 단순 터미널이 아닌 컴퓨터상에서 독립적인 프로세싱 파워를 가지고 많은 작업을 처리할 수 있게 되었다. 대표적인 예가 워드프로세싱, 스프레드쉬트, 그래픽 애플리케이션 등이였다. 동시에 네트워크의 비약적인 발전으로 인해, 네트워크 컴퓨팅과 데이터 공유의 의미가 점점 더 중요해져 가면서, 강력하고 어려운 것은 메인프레임에서, 상대적으로 간단하고 가벼운 것들은 PC에서 처리하는 구조가 만들어졌다. 이러한 구조를 컴퓨팅의 제2세대를 이룬 Client/Server 모델이라고 부른다.

PC의 프로세싱 파워가 점점 강력하면서도 저렴해져 가면서 점점 많은 기능이 Server에서 Client로 옮겨오게 된다. 이제 사용자들은 더이상 서버에서 응답이 돌아오길 기다릴 필요도 없을 뿐더러, 자기 PC에 원하는 데이터를 가지면서도 원할 때는 서버를 통해 공유할 수 있는 유연성을 가지게 되었다. Fat Client의 시대가 도래한 것이다.

그러나 시간이 흐르면서, 점점 더 복잡한 기능을 가지는 Fat Client는 하드웨어와 소프트웨어 모두의 끊임없는 유지보수/업그레이드를 해야하는 골치아픈 존재가 되어버리게 되고, 이에 컴퓨팅은 다시 프로세싱과 데이터의 중심이 서버로 옮겨가는 구조로 다시 돌아가게 된다. 물론 메인프레임시대처럼 바보같은 터미널만 남는 것은 아니지만, 강력한 서버와 상대적으로 힘이 없는 클라이언트만 남겨주는 대신에, access from anywhere라는 훌륭한 기능을 제공해주는 Thin Client 시대로 우리는 들어오게 되는 것이다.

그러던 중, 놀라운 일이 일어났다. 지금까지는 정해진 서버와 정해진 클라이언트만 서로 대화가 가능하도록 설계되어 시스템의 모든 촛점이 프로세싱/데이터를 누가 소유하는가에 있었지만, 팀버너스리가 고안한 HTTP/HTML을 이용한 이 라는 존재를 통해 이제 인터넷을 통하여 언제 어디서든지 어느 서버에게나 대화를 요청할 수 있는 틀이 마련되었다. 뿐만 아니라, Thin Client의 정신을 이어 모든 웹 서버에 접속할 수 있는 클라이언트가 개발되는데, 이를 우리는 흔히 웹브라우저라고 부른다. 이 웹브라우저의 주요 기능은 바로 “웹문서 보기” 였다.

단순한 Viewer인 브라우저를 통해서도 이미 웹은 세상을 뒤집어 놓았다. 이미 웹을 통하여 세상은 이전 언제보다도 하나로 연결되고 있었으며, 아예 인간의 생활양식과 문화, 정치와 철학까지 아울러 세상을 변화시키고 있는 것이다. 그럼에도 불구하고 웹은 단순히 문서viewer였으며 그 이상의 기능을 수행하기 어려운 Thin Client 였었다. 시간이 지나면서 웹상에서 좀더 강력한 기능을 수행할 수 있는 server-side 기술인 CGI, ASP, Java Servlet 등이 등장하기 시작하였다. 이를 통해서 웹애플리케이션이라는 것이 탄생되었으며 우리는 은행예금조회, 웹메일, 싸이월드 등과 같은 전에는 상상도 못하는 애플리케이션을 사용할 수 있게 되었다. 지금 우리가 살고 있는 이 세상은 Web Thin Client들의 천국인 것이다.

DIY문화와 스스로를 플랫폼으로 설계한 Firefox, 그리고 RIA (Rich Internet Applications)의 등장은 이러한 웹컴퓨팅 환경을 한단계 더 변화시키고 있다. DIY문화는 Firefox를 플랫폼으로 사용하여 개개인들이 자신들의 편의에 따라서 원하는 확장기능을 추가함으로 전에는 100% 서버에서 정해져서 실행되었을 기능들을 클라이언트인 파이어폭스에서 실행되게 하고 있다. 대표적인 기술들을 찾아보자면, “웹애플리케이션, 날다 (3)“에서 소개된 모든 기술들: AJAX, SVG, MacroAdobe, Laszlo, (롱혼도 잠시 껴주자) 그리고 어제 소개한 yubnub 등을 들 수 있다. “웹애플리케이션, 날다 (4)”를 굳이 추가해보자면, dojo, rico, backbase 등의 기술 역시 (3)편의 유명한 기술들에 조금도 모자란 것이 없는 멋진 기술들이다. (특히 backbase의 데모는 상상을 초월하는 그런 인터페이스의 기능성을 제공한다) 과거에는 유일하게 브라우저보다 한단계 아래 플랫폼인 윈도우의 기능을 보안취약 투성이 ActiveX로 연결하여 사실상 Client를 새로 작성하는 방법으로만 가능했던 기능들을 이제는 브라우저 상에서 윈도우에 대한 종속성 하나 전혀 없이 구현할 수 있는 것이다.

backbase
[Figure 1] Backbase에서 델 모델중 하나를 오른쪽에서 대각선방향대로 드래그 하는 모습

무엇보다도 중요한 것은 이제 사용자들은 각 웹주소에 상주하는 서버에서 단순히 제공하는 기능에 묶여서 프로세싱도 서버에서, 데이터도 서버에 묶어놓는 그럴 필요가 없다는 것이다. 이제는 웹 전체를 플랫폼으로, 또는 정보나 서비스의 채널 정도로 생각하여 웹사이트들을 넘나들면서 원하는 기능을 브라우저에서 구현하며 원하는대로 조작하고 처리할 수 있다는 것이다. 이런 예를 가장 잘 보여주는 것은 누가 모라고 해도 Greasemonkey이다. 원하는 페이지들을 묶어서 하나로 결합하거나 서버에서 처리해서 보내주는 정보를 내맘대로 보여주기. Yubnub도 이런 면에서는 비슷하다. 구글의 웹페이지 인덱싱 DB와 같은 데이터는 아직 서버상에 있지만, 그것을 이용하는 것은 이제 많은 부분이 클라이언트로 옮겨오고 있는 것이다. 아주 천천히, 웹이라는 플랫폼에서 우리는 Fat Client의 귀환을 지켜보고 있는 것이다.

그런데, 이상한 것은 방금 데이터는 아직 서버에 상주한다고 말했다. 그렇지만, 이런 데이터를 이용하는 것은 클라이언트라고 했다. 그렇다면, 여러 서버에 널려있는 다양한 데이터를 클라이언트에서 공통적으로 접근할 수 있는 새로운 무엇인가가 있어야 하지 않을까? 예를 들어서, 지금이야 주먹구구식으로 그리스몽키나 엽넙이 데이터를 조합하고 있지만, 사실 어차피 RSS와 같이 XML기술로 점점 웹상에서 주고받는 데이터를 표준화시키는 세상에서는 무언가 Universal Data Access Protocol이 있는 것이 좋지 않을까?

컴퓨팅의 거장, Adam Bosworth는 ITConversations에서 이제 웹의 도래로 인해서 DB는 SQL을 통해서 정해진 문법으로만 access가 가능한 단순한 backend relational DB에서 웹을 통해서 원하는 데이터를 언제든지 더 큰 문맥에서 access할 수 있는 구조를 제안한 다. 구글과 같은 검색엔진이 보여주는 것은 이러한 구조의 일부분이라고 하면서. 좀더 역할을 세분화 시키면서 Bosworth는 사실 데이터를 처리/조작/통합하는 역할을 클라이언트에서 모두 하기에는 시간이 너무 오래 걸릴 수 있는 가능성이 높기 때문에 (예를 들어 프루나나 당나귀같은 p2p 네트워크에서 어떠한 파일 하나를 찾기 위해서 얼마나 오랜 시간이 걸리는지 생각해보면 된다), 이러한 역할을 전담하는 data router라는 개념을 제안한다. 정확한 구조는 알 수 없지만 대략 이러한 방향으로 가는 것이 옳지 않을까 한다.

사실 Bosworth 역시 Shirky처럼 시맨틱웹을 반대하는 편이다. 그러나, 마치 우연처럼 Bosworth가 모르고 있던 이러한 구조는 이미 시맨틱웹에서 RDF Data Access Working Group에 의해서 SPARQL이라는 프로토콜로 현실화 되어가고 있다. SPARQL는 웹상에서 무한히 널려있을 RDF 데이터들을 쿼리하고 찾아오게 하는 Data Access 프로토콜이다. 아직 나도 그 detail은 좀더 공부해봐야 하는데.

이런 오픈 DB에 관한 우리나라에서 나타난 근래의 현상? 엠파스의 열린 검색. 물론 오픈 DB를 접근하는 유일한 방법은 어제 내가 yubnub에서 네이버를 등록한 것과 같이 http url을 사용하는 방법이기는 하지만, XML이나 API가 없이 서로의 DB 자료를 얻어낼 수 있는 유일한 기술적 방법은 이거 하나 밖에 없다는 점에서 개인적으로 엠파스의 열린 검색을 높이 산다. 물론 옳고 그름에 대해서는 묵비권 행사. ㅋ

싸이월드에 아직도 가끔씩 밤에 사용자가 몰리면서 “죄송합니다. 사용자가 너무 많습니다.” 메세지를 보는 것을 막을 수 있는 방법 중 하나는 싸이월드의 짐을 사용자인 우리가 같이 짊어지는 것이다. 즉, 내 PC에서 프로세싱을 조금 담당해 주는 것이다. 이것이야 말로 우리가 흔히 부르는 참된 그리드 컴퓨팅의 모습이다. 그리드 컴퓨팅은 우리가 알고 있는 슈퍼컴퓨팅의 모습 이전에, 이런 작은 것에서부터 완성되어 나갈 것이다.

데이터의 양이 늘어나다 못해 BPEL에서처럼 이제 심지어는 프로세싱 로직 마저도 데이터화 되어가는 세상에서 web as platform이라는 web 2.0의 슬로건은 완벽하게 맞아 떨어진다. 메인프레임에서 web 1.0 까지 많은 시행착오를 통해서 지금의 우리가 당연하게 받아들이는 것을 완성했듯이, Greasemonkey와 같은 노력들은 컴퓨팅의 또 하나의 진화를 위한 멋진 선구자 역할을 한다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중