‘웹이 바로 세상이다.’
- 팀 오라일리(O’ReillyTim & BattelleJohn, Web Squared: Web 2.0 Five Years On, 2009)
웹 3.0 세상을 바꾸고 있다 - 바보들을 위한 인터넷 해설서 (이영환저)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788962200744&orderClick=LAG
출처 : http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&wr_id=35636
보스톤 칼리지에서는 신입생들에게 더 이상 학교의 이메일 계정을 나누어 주지 않는다. 학생들이 더 이상 이메일을 사용하지 않기 때문이다. 놀랍게도 최근 통계에 의하면 십대학생들의 11%만이 이메일을 사용 중이라고 한다. 그런데 왜 이들은 더 이상 이메일을 사용하지 않을까? 이들은 웹에서 페이스북과 트위터를 스마트폰과 연결해서 사용한다. 이메일을 보내고 받는 것은 이제 퇴화하는 낡은 기술이 된 것이다.
이영환 nicklee@konkuk.ac.kr|한국 과학기술 연구소(KIST)에서 컴퓨터 프로그래밍을 배우고 프로그래머로 일하다가 미국에 건너갔다. 미국 일리노이(어바나-샴페인) 대학에서 전산학으로 학사, 석사, 박사학위를 받았다. 일리노이 대학원 재학시 벤처 회사를 창업해 경영하다가 뜻한 바 있어 24년만에 한국으로 돌아왔다. 현재 건국대학교에 재직하면서 컴퓨터 관련 전공 과목들을 영어로 강의하고 있고 과제 많이 내주는 교수로 명성(?)을 날리며 후학 양성에 매진하고 있다.
미국의 소셜 네트워크 서비스인 페이스북(Facebook)은 2004년 창립되어 활동적인 가입자(페이스북은 30일 이내에 한 번 이상 로그인한 가입자를 활동적인 가입자로 정의)를 기준으로 방문자 숫자가 2010년 3월 4억9,000만 명을 넘었다. 이들은 인구로 보아 중국과 인도 다음으로 많은 숫자의 인구를 가지고 있다고 자랑한다. 더 놀라운 것은 이들이 2008년 3월부터 4억 명의 활동적인 가입자를 추가로 확보하는 데 걸린 시간은 2년이었다는 사실이다. 평균 6개월에 1억 명 정도 늘어난 것이다.
퇴화하는 이메일
세계적인 금융 서비스 회사인 모건 스탠리의 통계에 의하면 페이스북과 트위터와 같은 소셜 네트워크의 전세계 사용자 수가 이메일 사용자 수를 2009년 7월 이후 앞지르기 시작했다고 한다. 네트워크 사용량으로 볼 때도 소셜 네트워크 사용량이 이메일 사용량을 2007년 11월 이후 앞지르기 시작했고 2009년 7월 이후에는 2배 이상의 사용량을 보이고 있다.
아마존이 전자책 리더(e-Book reader)인 킨들을 발표한 것은 2007년 11월이었다. 킨들을 발표하고 18개월 후인 2009년 5월 아마존의 전자책 판매는 종이책 총 판매량의 35%를 기록했다. 킨들은 2009년에 200만 대 정도 팔렸다고 한다. 전자책을 60초 이내에 다운로드해서 읽을 수 있는 장점에다 언제 어디서나 책을 살 수 있을 뿐 아니라 종이책보다 훨씬 싸게 사서 볼 수 있다는 점에서 인기를 얻고 있다. 그러나 2011년까지는 혹은 2012년까지는 전체 도서 판매의 20%까지 차지할 것으로 예측된다.
작년 12월에 소개된 스마트폰은 국내 시장에서 첫 달부터 선풍적인 인기를 얻기 시작했다. 스마트폰의 큰 인기는 사실 국내에 국한된 것이 아니라 전세계적이다. 이미 스마트폰에 의한 혁명은 모바일 빅뱅으로 불릴 만큼 충격이 크다.
이런 많은 변화는 바로 웹의 변화에 의해 시작된다. 일반 유저의 웹 사용 패턴이 바뀌고 있기 때문에 시장이 바뀌고 있는 것이다.
새로운 웹의 필요성
2009년 한 해 동안 인류가 만들어낸 디지털 정보는 773EB (Exabyte)로 집계되었고 2010년에는 1ZB(Zettabyte)를 육박할 것으로 예상되고 있다(EB는 10억GB와 같고, ZB는 1,000EB로 1조GB를 의미). 이 말은 인류가 1초에 만들어내는 정보의 양이 30TB(Terabyte)를 훨씬 넘는다는 말과 같다(TB는 1,000GB를 의미).
그런데 이 많은 정보 중에 우리가 보고 읽을 수 있는 정보의 양은 얼마나 될까? 우리가 하루에 시간당 평균 1GB의 디지털 정보를 앉아서 보거나 읽을 수 있다고 하고(영화를 보지 않는다면 1GB를 보고 읽는다는 것은 결코 쉬운 일이 아니다), 화장실도 가지 않고 20시간 동안 꼬박 앉아서 디지털 정보를 보고 읽는다고 하더라도 우리가 하루에 읽는 양은 20GB다. 365일 동안 쉬지 않고 읽는다고 하더라도 우리가 읽을 수 있는 양은 10TB를 넘지 못한다.
우리가 1년 동안 10TB를 보고 읽는다고 하더라도 그 양은 인류가 1초에 만들어내는 디지털 정보의 양을 넘지 못한다. 또 다른 말로 하면 우리가 태어나서 죽을 때까지 100년을 산다고 하고 그 동안 디지털 정보를 쉬지 않고 보고 읽는다고 하더라도 인류가 지금부터 앞으로 1시간 동안 만들어내는 정보를 다 볼 수 없다. 더군다나 인류가 만들어내는 정보는 승수적으로 증가하고 있다.
이렇듯 엄청난 양의 정보 중에서 우리가 꼭 필요한 정보를 찾고 분석하고 볼 수 있게 하는 기술은 매우 중요하다.
웹3.0은 이 수많은 정보 중에서 컴퓨터가 우리를 위해 우리에게 꼭 필요한 정보를 찾아서 분석한 후 우리에게 알려주고 보여줄 수 있도록 고안된 웹 기술이다. 이 글에서는 이러한 기술들에 대해 설명하고 그에 의해 바뀌고 있는 시장을 설명하려고 한다.
웹1.0부터 현재의 웹을 이루는 가장 기본적인 기술은 HTTP와 HTML과 함께 그들을 검색하는 검색엔진이라고 할 수 있다. HTTP는 인터넷상에서 텍스트의 전달을 규정한 프로토콜이다. 좀 더 정확히 말한다면 클라이언트와 서버 사이에 이뤄지는 요청/응답(request/response)을 규정한 프로토콜이다.
엔드 유저가 사용하는 컴퓨터에서 클라이언트인 웹브라우저 등의 애플리케이션이 웹페이지나 그림 정보 등을 요청한다. 서버는 이에 응답해 필요한 정보를 해당 클라이언트에 전달하게 된다. HTTP와 함께 웹1.0의 웹페이지를 위한 기반 기술인 HTML은 많은 장점이 있는 마크업 언어다. HTML은 단순하고 보편성을 가지고 있다. 오퍼레이팅 시스템에 종속적이지도 않고 플랫폼 등 하드웨어에 종속적이지도 않고 소프트웨어와 하드웨어 모두에게 독립적인 장점이 있어서 모든 플랫폼에서 좋은 웹페이지를 만드는 도구로서 주어진 역할을 훌륭하게 수행하고 있다.
더군다나 우리가 쓰는 구글 등의 검색엔진들은 랭크(rank)라는 점수제를 사용해 우리가 원하는 검색의 좋은 결과를 우리에게 주고 있다. 그런데 또 다른 웹 기술이 필요할까? 누구나 이런 질문을 가지는 것은 당연한 일이다. 이에 대해서는 다음의 다섯 가지 문제점을 제시하고 그 해답으로 웹3.0의 기술적 필요성을 제기한다.
- 검색이 쉽지 않다.
- 필요한 데이터를 찾을 수 없다.
- 웹 검색 결과를 연결할 수 없다.
- 어휘에 지나치게 민감하다.
- 데이터가 나를 검색해 주지 않는다.
검색이 쉽지 않다
웹페이지의 수는 2008년 현재 대략 1011개(1,000억 개)라고 한다. 대략 첫 웹페이지가 1990년경에 나왔다고 치면 20년만에 1011개가 된 것이다. 이 말은 20년간 매일 평균적으로 약 1,300만 개의 페이지가 생성되었다는 말이다. 하루에 1,300만 개의 페이지가 생성된다는 것은 이것이 승수적으로 증가한다는 사실을 생각해 보면 최대치보다는 매우 낮은 평가라고 할 수 있다.
그럼에도 불구하고 평균적으로 새로운 웹페이지는 오늘도 적어도 1,300만 개 이상씩 생성되고 있다는 것은 엄청난 숫자다. 조만간 이 웹페이지들이 1020 혹은 1030개까지도 늘어날 것이란 예상도 전혀 무리가 아니다. 그렇다면 우리는 우리가 원하는 정보를 이토록 많은 웹사이트에서 검색할 수 있을까? 종래의 검색엔진은 데이터가 폭발적으로 늘어나면 우리가 원하는 데이터를 찾기가 매우 어려울 수 있다.
가령 ‘데이터 마이닝(Data Mining)’이라는 말을 구글에서 검색한다고 하면 약 3,000만 개의 검색결과를 얻을 수 있다(3,000개가 아니고 3,000만 개다). 디지털 정보가 늘어나는 속도로 볼 때 그 수는 폭발적으로 늘어날 것임이 확실하다. 따라서 3,000만 개의 데이터에 내가 원하는 구체적인 정보가 들어있는지 어떻게 알 수 있을까? 우리는 3,000만 개의 웹페이지를 읽을 수 없으므로 우리가 조금 전문적이고 자세한 키워드의 검색 결과를 원한다고 하더라도 종래의 검색엔진은 전문적이고 자세한 키워드 검색을 할 수 없게 되어 있다.
그 이유는 보통 검색엔진은 흔히 검색엔진 최적화(SEO, Search Engine Optimization)라고 불리는 과정을 거치게 된다. 유저들의 클릭 수 등에 따라 랭킹을 정하고 랭킹이 높은 순서로 보여주게 된다. 이런 알고리즘은 흔히 상위 랭킹의 웹페이지를 찾는 유저들을 충족하게 되어 있다. 그러나 내가 원하는 페이지가 상위 랭킹의 웹페이지가 아니고 하위 랭킹에 속하는 페이지라면 어떻게 될까?
가령 내가 ‘피라미드 신경 세포와 연결되어 있는 신경전달 물질에 관여하는 단백질(Proteins involved in signal trans duction that are related to pyramidal neurons)’을 검색한다고 하면 구글은 어떤 식의 결과를 내놓을까(Prud’hommeaux Eric & FeigenbaumLee, 2008)?
<화면 1> 구글 검색창에서 'pyramidal neurons signal transduction'을 검색한 결과
<화면 1>에서 보듯이 구글 검색은 22만3,000개의 결과가 있다고 했다. 이런 결과의 문제점은 다음과 같다. 첫 번째로 우리가 22만3,000개의 웹사이트를 다 읽을 수 없고 두 번째로 우리가 시간을 들여 이를 읽는다고 하더라도 우리가 원하는 답을 얻을 수 있을지조차 불분명하다. 웹 어디인가에 우리가 원하는 대답이 숨어 있을 것을 알지만 그를 찾아내는 방법은 현재의 웹 기술로서는 거의 불가능하다. 더군다나 웹페이지가 계속 증가할수록 현재의 문제가 심화될 수밖에 없음은 자명하다. 우리는 1011개가 아니라 1030개의 웹페이지가 될 경우라도 웹 검색을 효율적으로 하는 방법이 필요하다.
물론 많은 독자들이 이미 경험적으로 알고 있듯이 구글이나 네이버 등의 검색엔진들은 대다수의 독자들이 검색하는 단어들을 분석하고 순위를 정하는 여러 가지 좋은 알고리즘들을 가지고 있다. 그러나 우리가 원하는 것은 대다수의 독자들이 원하는 것이 아니고 우리가 조금 더 심화된 검색을 하고 싶을 때는 구글이나 네이버 등의 검색엔진에서 고통스러운 시간을 보내야 할 뿐더러, 시간을 보낸다고 해서 검색 결과가 희망적이지도 않다는 것에 문제가 있다.
필요한 데이터를 찾을 수 없다
두 번째 문제는 우리가 웹페이지에서 원하는 것을 보고 있을까 하는 질문으로 시작된다. 현재의 웹페이지는 누군가가 엔드 유저들이 읽기에 편하도록 디자인한 페이지다. 그런데 우리는 사실 웹페이지보다는 웹페이지로 만들어지기 전의 데이터가 필요할 때가 있다. 우리는 누군가에 의해 요리된 후 웹페이지 위에서 나타나는 정보가 아니라 가공되지 않은 데이터(Raw Data)가 필요할 때가 있는 것이다.
예를 들어, 우리는 현재 KBS에서 방송하는 것이 무엇인지 웹페이지를 통해 알 수 있다. 현재 ‘황태양’이라는 가수의 노래가 나오고 있다. 그런데 노래를 들으면서 이 노래의 피아노 반주를 한 사람의 연주기법이 독특한 것을 발견하고 도대체 누가 반주했는지 그의 배경을 알고 싶다고 하자.
그렇다면 우리가 원하는 것을 어떻게 알 수 있을까? HTML 웹페이지에서는 이를 알 수 없다. 웹의 어디엔가 피아노 반주자의 정보가 있다고 하더라도 HTML 웹페이지를 만든 사람이 불필요한 정보로 생각하고 올리지 않는다면 우리가 그 정보를 알 수 있는 방법은 없다. 반주자에 대한 정보를 알기 위해 우리가 필요한 것은 웹페이지를 만드는 사람이 미리 선택해 웹페이지 위에 잘 포맷해 놓은 정보가 아니라 그 뒤의 데이터다.
웹 검색 결과를 연결할 수 없다
사실 생각해 보면 우리가 2개 이상의 독립된 결과를 연결하고 싶을 때 우리가 할 수 있는 것은 한계가 있다. 가령 우리가 ‘피라미드 신경 세포(Pyramidal neurons)’를 검색한 후 이 분야의 회사를 추리고 그 회사들에게 투자한 투자은행들을 검색하고 그 중 1조 원 이상의 자본을 가진 은행을 알아내고 싶다고 한다면 어떻게 할 수 있을까? ‘피라미드 신경세포’의 분야라는 것을 어떻게 검색할 수 있을까?
먼저 ‘피라미드 신경세포’가 어떤 학문의 대상인지 혹은 제품이나 서비스로서 상품이 될 수 있는지 검색해야 하는데 쉽지 않을 것이다. 그러나 논리의 전개를 위해 어떤 식이든지 검색할 수 있다고 하자. 그런 후 다시 그 회사들의 투자은행을 검색하고 마지막으로 다시 자본이 1조 원 이상되는 회사를 검색해야 하는 데 현재의 웹 구조로는 이런 식의 정밀한 검색을 할 수 있는 방법이 없다.
우리가 이 어떤 검색 결과에서 특정 정보를 추출하고 다른 검색과 연결해 연산하고 싶다고 하면 우리가 할 수 있는 것은 인간의 눈과 손으로 하는 수밖에는 없다. 결론적으로 우리가 필요로 하는 정보가 여러 문서에 분산되어 존재한다고 할 때 이를 추출하고 종합하는 일은 현재의 웹 기술 수준으로 보면 사람이 하는 수밖에 없다.
어휘에 지나치게 민감하다
어떤 검색을 할 때 검색한 단어가 웹페이지와는 같은 의미이지만 다른 단어를 선택했기 때문에 원하는 페이지를 못 찾는 일이 있다. 의미론적으로 유사한 단어들이 유사한 검색결과를 보여주지 않는다. 이로 인해 우리는 비슷한 단어를 바꿔가면서 여러 번 검색을 수행해야 하는 경우가 많다.
가령 프랑스어에는 강을 뜻하는 단어가 2개다. 하나는 ‘플레베’고 다른 하나는 ‘리버(혹은 리비에르)’다. 플레베는 바다로 흘러 들어가는 강이다. 그런데 우리가 프랑스의 강을 검색할 때 플레베까지 검색해 낼 수 있을까?
현재의 웹은 어휘의 단어 자체에 민감해 플레베를 포함해 결과를 낼 수 없다. 검색엔진이 단지 단어를 검색하는 것뿐만이 아니고 어휘의 구조를 알고 있어서 유사한 단어를 선택해 검색할 경우 유사한 결과를 낼 수 있도록 설계하는 것이 필요하다.
물론 유사한 결과를 내는 것이 항상 유저가 원하는 것은 아닐 수 있다. 유저가 특정한 단어를 검색할 때 그와 유사한 단어를 포함시킬지 아닐지까지도 구분해 검색할 수 있다면 이것은 큰 욕심일까?
데이터가 나를 검색해 주지 않는다
이미 서술한 바와 같이 매 초 간 생성되는 데이터의 양이 인간이 읽고 이해할 수 있는 한계를 지났음을 이해하는 것은 중요하다. 사실 기존의 검색엔진인 구글과 야후는 놀라운 성능을 보이고 있다. 그럼에도 불구하고 위에서 열거한 네 가지 검색의 문제가 해결될 수 없다는 것은 자명하다.
게다가 위에서 열거된 문제들이 다 해결된다고 하더라도 실시간으로 초당 30TB씩 생성되는 데이터를 검색해 자신이 원하는 것을 찾을 수 있다고 생각하는 것은 무리다. 조금 과장해서 극단적으로 말하면 이제는 누구든지 자기에게 꼭 필요한 데이터를 검색하는 것이 거의 불가능해졌다. 그렇다면 이제는 꼭 필요한 데이터를 찾는 컴퓨터 프로그램이 있어서 생성되는 데이터를 실시간으로 감시하고 필요한 사람에게 바로 찾아주는 기술이 필요하다. 사람이 데이터를 검색하지 않고 데이터가 사람을 검색하는 기술이 필요한 것이다.
이미 말한 바와 같이 웹페이지는 누군가가 가지고 있는 데이터를 인간이 보기 편하게 만들어 놓은 것이다. 그 전에 있는 데이터에 대한 액세스를 할 수 있도록 하고 그 데이터들을 다른 사이트들과 연결하고 그 연결을 통해 우리가 원하는 정보를 얻을 수 있고 그것들을 분석하고 사용하고자 개발된 것이 새로운 웹 기술인 웹3.0 기술이다.
새로운 웹에 대한 기술적 이해
정리하면, 우리는 현재의 웹페이지나 검색엔진으로는 다음과 같은 질문에 대해 좋은 결과를 얻을 수 없다.
- 피라미드 신경 세포와 연결되어 있는 신경전달 물질에 관여하는 유전자
- 적어도 12암페어를 출력하는 태양광 소자 패널을 판매하는 회사
- 20년이 넘은 낡은 TV를 수리할 수 있는 수리점
어쨌든 위에 예시된 것과 같은 문제점을 개선하고 승수적으로 증가하고 있는 웹사이트에서 사람이 웹을 읽고 이해하기보다는 컴퓨터를 이용해 웹의 데이터들을 효율적으로 검색해 우리가 원하는 일들을 처리하고 사용하는 것이 필요하다. 이를 위해 컴퓨터가 읽고 처리할 수 있는 데이터의 웹이 출현하게 되었다. 새로운 웹의 기본 구조는 종래의 사람만이 읽을 수 있는 웹 문서인 웹페이지를 연결하는 구조에서 컴퓨터 프로그램이 처리할 수 있도록 데이터를 연결하는 구조를 함께 포함한다. 종래의 웹이 사람이 읽고 이해할 수 있는 웹 문서인 웹페이지를 연결하는데 비해 새로운 웹은 컴퓨터가 읽고 처리할 수 있는 데이터가 연결된 웹이라는 것을 이해하는 것이 중요하다.
웹에서 데이터가 연결된다는 것은 무슨 말일까? 웹상에서 데이터를 연결한다는 말을 생각하기 전에 먼저 데이터라는 말을 생각해 보자. 먼저 어떤 초등학교 동창 웹사이트에 있는 ‘장인성’이라는 데이터를 생각해 보자. 사람들은 ‘장인성’이라는 데이터를 보는 순간 이것이 어떤 ‘이름’이라는 것을 알게 된다. 이때 기술적으로는 ‘장인성’은 데이터라고 말하고 ‘이름’은 데이터의 데이터, 곧 메타데이터라고 한다. 이 메타데이터 ‘이름’은 ‘장인성’이라는 데이터가 어떤 의미를 갖는 데이터인지 알려준다.
문제는 사람들은 ‘장인성’이라는 데이터의 메타데이터가 ‘이름’이라는 것을 다른 설명이 없어도 쉽게 아는 반면, 컴퓨터 프로그램은 그것을 명시해 미리 넣어주지 않는다면 알 수 없다는 점이다. 만일 웹에서 컴퓨터에 ‘장인성’이라는 데이터와 ‘이름’이라는 메타데이터를 명시해 연결한다면 어떨까?
메타데이터의 명시
<리스트 1> 한 치과의 HTML 웹페이지 예
<h1>옥돌 치과의원</h1> 옥돌 치과의원에 방문해 주셔서 감사합니다. 옥돌 치과의원은 좀 더 진보적인 시스템을 이루기 위해 기존의 종합병원과는 차별화된 분과형 협진 시스템을 축으로 고객의 다양한 수요를 충촉시키기 위해 노력하고 있습니다. 임플란트 담당 장인성 박사님, 잇몸 건강 및 스케일링 담당 남기선 간호사 등이 각 분야를 담당하고 여러분을 친절하게 안내할 조영숙 사무장이 여러분의 치아 건강을 위해 성심껏 봉사하고 있습니다. <h2>진료시간 안내</h2> |
종래의 웹페이지는 HTML이라는 언어를 쓰는데 이 언어는 어떻게 사람이 읽기 좋도록 포맷할 수 있게 하는가에 집중해 디자인된 언어다. 가령 예를 들어 어떤 치과의원의 HTML 웹페이지는 다음과 같을 것이다. 참고로 이 예제는 시맨틱웹 프라이머(AntoniouGrigoris & Frankvon, 시맨틱웹 프라이머, 2004)에 나오는 예제를 우리에게 맞도록 한국말로 고친 것이다.
<화면 2> 옥돌 치과의원 웹페이지
<리스트 1>의 HTML 페이지는 웹 브라우저에 올려보면 <화면 2>의 웹페이지와 같이 보인다. 이 웹페이지는 사람이 읽기에 편하도록 모든 정보가 포맷되어 보이고 있으므로 사람들이 읽기에는 적절한 웹페이지임이 확실하다. 하지만 컴퓨터를 자동화해 읽고 이해하도록 한다면 어떻게 될까?
한마디로 ‘옥돌 치과의원’ 웹페이지의 정보를 컴퓨터가 이해하는 데는 문제가 있다. 물론 종래의 구글이나 야후 등이 사용하고 있는 키워드 검색을 한다면 ‘옥돌 치과의원’과 ‘분과형 협진 시스템’ 같은 단어 정도는 식별해 검색에 사용할 수는 있다. 그러나 의사, 간호사와 사무장을 정확하게 구분하고 또 담당 분야까지도 구분해 내기는 매우 어렵다. 더군다나 정확한 진료 시간을 찾는 것은 더욱 어렵다. 종교 휴일의 링크를 따라가 특정 종교의 휴일이 언제인지 알아야 하기 때문이다.
컴퓨터 프로그램이 옥돌치과의 진료시간을 찾는 것이 어렵다면 우리는 웹에서 자동화된(보통 에이전트라고 부르는) 프로그램들이 우리를 위해 약속시간을 찾도록 시킬 수 없게 된다. 그렇다면 어떻게 해야 컴퓨터 프로그램이 이를 읽고 이해하고 처리하게 할 수 있을까?
이 문제를 해결하기 위한 접근 방법은 인간의 언어를 이해할 수 있는 엄청난 지능을 가진 인공지능 에이전트의 개발이 아니다. 단지 웹에 인간이 데이터와 메타데이터를 명시해 표시하면 그것을 읽고 처리할 수 있는 프로그램이다.
다시 말해서 사람이 읽기 쉽게 화면에 보여주도록 웹페이지의 포맷 정보만을 중시하는 언어인 HTML을 더 적절한 언어로 바꾸어 웹에서 데이터와 메타데이터를 명시하고 컴퓨터 프로그램이 데이터를 읽고 이해하고 처리할 수 있도록 하면 된다.
<리스트 2> 데이터와 메타데이터를 명시
<사업체> </사업체> |
이렇게 표현된 정보는 컴퓨터에 의해 수월하게 처리될 수 있다. <리스트 2>의 예에서 <의사>나 <이름> 등은 메타데이터로 표시되고 있고 ‘장인성’ 혹은 ‘임플란트’ 등은 데이터임을 나타내고 있다. 이제는 컴퓨터가 옥돌 치과의원의 데이터를 읽고 처리할 수 있다. 이것이 XML(eXtensible Markup Language)이라는 언어다.
XML은 유연해 메타데이터를 표시할 수 있고 확장성이 매우 좋은 언어다. 그러나 웹상에 존재하는 모든 것들을 연결하고 관계를 표시하기에는 한계가 있다. 사실 우리는 웹상에 존재하는 모든 문서, 데이터, 혹은 개념까지도 모두 연결해 컴퓨터가 읽고 이해하고 처리하기를 원하는 것이다. XML의 한계를 극복하기 위해 RDF(Resource Description Framework)와 OWL(Web Ontology Language)이라는 언어가 개발되었다.
이를 통해 새로운 웹은 데이터와 메타데이터를 서로 연결해 컴퓨터 프로그램이 읽고 처리할 수 있게 되었다. 이것이 새로운 웹의 기본이다. 이제 서로 연결된 데이터는 컴퓨터 프로그램(에이전트)으로 하여금 우리가 원하는 데이터 처리를 할 수 있게 한다. 결과적으로 컴퓨터 에이전트는 우리가 생각하지도 못했던 결과를 찾아내기도 한다.
웹의 구조
이제 다시 앞으로 돌아가면, 인간을 위한 공간이었지만 승수적으로 증가하고 있는 웹은 컴퓨터에 의한 데이터 처리가 필요하다. 이를 위해 데이터를 위한 웹을 만들어서 컴퓨터의 도움을 받을 수 있게 하는 것이 필요하다.
<그림 1> 종래의 웹 : 인간을 위한 1개의 버스만이 존재
다시 설명하면 <그림 1>에서 보듯 종래의 웹은 인간을 위한 웹페이지의 연결만이 존재하는 구조였다. 과거의 웹에서는 대부분의 콘텐츠는 사람이 읽도록 만든 것이고 컴퓨터 프로그램이 의미를 처리하도록 되어 있지 않았다. 레이아웃과 루틴 프로세싱(‘이게 헤더고 저게 다른 페이지로 링크하는 것이다’와 같은 일들)에 관한 한 컴퓨터 프로그램은 능숙하게 파싱(Parsing)하고 보여줄 수 있다. 과거의 웹에 있어서 콘텐츠는 사람을 위한 것이고 컴퓨터가 읽게 하기 위한 것은 아니었다.
<그림 2> 새로운 웹 : 컴퓨터 프로그램을 위한 데이터 연결 버스가 추가되어 2개의 버스 구조 존재
새로운 웹에서는 <그림 2>에서 보듯이 컴퓨터 프로그램이 읽고 프로세스할 수 있는 웹의 데이터 연결 버스를 만들어서 2개의 버스 구조로 만들게 된다. 이 웹 데이터 연결 버스에 데이터가 어떤 데이터인지 알 수 있게 하는(의미를 알 수 있는) 메타데이터를 연결하면 컴퓨터 프로그램들이 콘텐츠를 ‘이해’하고 준비된 작업을 수행할 수 있게 된다. 이 구조의 변화로 말미암아 컴퓨터 프로그램은 다른 데이터들과 연결해 복잡한 작업을 수행하거나 쿼리하거나 추론할 수 있게 한다.
이런 구조를 만든 것은 시맨틱웹이라는 이름으로 제안된 기술이다. 시맨틱웹 기술은 현재 우리의 웹을 새로운 세상으로 이끌고 있다. 새롭게 연결되는 데이터의 연결버스를 이들은 데이터의 웹(Web of Data)이라고 부른다. 데이터의 웹을 통해 1011개나 되는 웹페이지에 들어 있는 인간의 지식을 최대한 극대화해 통합하려는 기술적인 해법이 바로 웹3.0이다.
웹상에서 데이터의 연결
웹에 있는 컴퓨터 프로그램을 이용해 정보들을 찾고 처리하기 위해 데이터를 서로 연결하고 그것을 구현한 것이 새로운 웹, 즉 웹3.0이다. 그런데 데이터를 연결한다는 것은 어떻게 할 수 있는 것일까?
RDF(Resource Description Framework)는 웹상에서 데이터를 연결하고 그것들 간의 관계를 설명할 수 있는 컴퓨터 언어로서 고안되었다. RDF는 웹상의 모든 것(문서, 데이터, 개념, 이름 등)을 리소스로 파악한다. 웹상에 존재하는 이들 리소스들 간의 관계를 정의하고 연결하고자 하는 프레임워크가 RDF이다.
RDF는 기본적으로 주어, 술어, 그리고 목적어로 구성되어 인터넷상의 리소스가 어떤 값을 갖는지 서술하는 형식을 갖는다.
<그림 3> RDF 그래프 모델
이를 보통 <그림 3>과 같은 그래프 모델로 나타낸다. ‘주어-서술어-목적어’로 나타내는 RDF의 문장을 ‘트리플’이라고 부른다.
<그림 4> 리소스 간의 관계 표시 예 1
예를 들어 ‘이영환이 건국대학교에서 일한다’라고 하려면 <그림 4>와 같은 그래프를 그려서 표시한다. 이 그래프는 개념적으로 ‘이영환’이라는 리소스와 ‘건국대학교’라는 리소스간의 관계를 나타낸다. 즉 ‘이영환’이라는 리소스는 ‘건국대학교’라는 리소스에 대해 ‘일한다’는 관계를 갖는다.
<그림 5> 리소스 간의 관계 표시 예 2
‘이영환이 1958년에 태어났다’고 하면 <그림 5>와 같이 그래프로 나타낸다. 이 그래프는 ‘이영환’이라는 리소스가 ‘1958’이라는 값에 대해 ‘태어나다’라는 관계를 갖는다.
<그림 6> 리소스 간의 관계 표시 예 3
마찬가지로 ‘건국대학교는 화양동에 있다’는 사실을 알면 <그림 6>과 같이 나타낼 수 있다.
<그림 7> RDF 트리플을 연결한 그래프 모델
위의 사실에 ‘이영환이 서울에 산다’는 것과 ‘화양동이 서울에 소재한다’는 사실도 안다면 우리는 모든 트리플을 연결해 <그림 7>과 같은 그래프로 나타낼 수 있다. <그림 7>을 보면 우리는 ‘이영환’은 ‘건국대학교’에서 일하고 있다는 사실에서 ‘이영환’이 ‘화양동’에서 일하고 ‘서울’에서 일한다는 사실을 추론 가능함을 알게 된다. 추론이 가능해지는 것이다. 우리는 인공지능에서 말하는 거대한 추론 엔진이 필요한 것이 아니다. 그저 그래프를 따라가면 추론할 수 있는 구조가 되는 것이다.
이런 생각을 조금 더 확장해 생각해 보자. 만일 세상의 우리가 아는 모든 사실들을 트리플로 나타내고 그것들을 연결한다면 어떻게 될까 하는 생각까지 가능하게 된다. 거대하고 어마어마하게 스마트한 인공지능의 추론엔진이 아니고 그저 조그만 추론기로 어느 정도의 추론을 할 수 있지 않을까?
물론 문제는 그렇게 간단하지만은 않다. 위의 예제에서 문제가 되는 것은 ‘이영환’이 살고 있는 ‘서울’과 ‘화양동’이 있는 ‘서울’이 같은 단어(혹은 같은 리소스)라는 보증이 있어야 하는데 이 보증을 어떻게 할 수 있을까? 이를 위해 우리는 웹상에 단 하나만 존재하는 URI(Uniform Resource Identifier)라는 아이디를 정의해 사용한다. 다음과 같이 URI는 리소스를 발견할 수 있는 장소를 지정해 정의한다.
http://nl.ku.ac.kr/example/NickLee/nicklee#Seoul
2개의 리소스가 같은 URI를 갖는다면 같은 리소스로 간주한다. RDF는 인터넷에 있는 리소스들의 관계를 정의할 수 있다는 점에서 매우 유용하다. 하지만 주어-서술어-목적어로 만들어지는 소위 트리플에 의해 웹의 모든 리소스와 그 관계를 정의하고자 하는 RDF의 능력은 매우 제한적이다.
사실 인터넷에서 2개의 리소스가 같은 URI를 가질 경우는 거의 없다. 이 뿐만이 아니고 URI가 같지 않다면 2개의 단어가 같은 리소스일 것이라는 보증도 없다는 것이 문제다. 위의 예에서 ‘이영환’이 살고 있는 ‘서울’과 ‘화양동’이 소재하는 ‘서울’이 서로 다른 URI를 가지고 있다고 하면 그 2개의 서울은 같은 리소스라고 할 수 있을까? 서울의 경우는 같은 이름을 가진 도시가 없겠지만 같은 이름을 가진 도시는 얼마든지 있다. 가령, ‘파리’라는 도시에 대해 설명할 때 우리는 그것이 프랑스의 수도인 ‘파리’일지 미국 일리노이 주의 소도시인 ‘파리’일지 구분해 알기가 어렵다.
이것만이 아니다. 한 언어의 개념이 다른 언어의 개념과 같은지 아닌지 구분해야 할 때는 더 어려운 난관에 부딪히게 된다. 가령 프랑스어의 ‘강(riviere)’과 우리 말의 ‘강(江)’이 정확하게 같은 뜻이라고 할 수 없다. 프랑스어의 ‘강(riviere)’은 바다로 흘러 들어가는 강을 제외한 개념이다. 강이 바다로 흘러 들어가면 ‘플레베(fluever)’라고 부른다. 따라서 프랑스어의 ‘강(riviere)’을 우리 말의 ‘강(江)’과 같은 뜻으로 쓰고 싶으면 ‘강(riviere)’과 ‘플레베(fluever)’를 합쳐야 한다.
이제 우리는 RDF의 트리플로 정의할 수 있는 의미의 세계는 매우 제한적이라는 것을 이해할 수 있다. 이런 제한적인 단어의 문제를 해결하기 위해 컴퓨터공학에서는 단어의 개념을 분류하고 정의하는 연구를 했는데 이것이 온톨로지라는 분야다. 온톨로지라는 용어는 존재론이라는 말로 본래 철학에 기원을 두고 있는 존재의 본질과 존재의 범주에 관한 학문이다. 형이상학의 한 분야인 온톨로지는 실제 존재하는 것들의 종류를 식별하고 그것들의 계층적 관계를 규명하고 설명하는 것이 관심 분야다.
컴퓨터공학 특히 인공지능학에서 온톨로지는 주제 영역 안에서 개념 집합의 정식 표현 방법과 그 개념들 사이의 관계가 규정된 어휘의 집합을 말한다. 쉽게 말해서 온톨로지는 개념간의 관계를 규정해 추론하는 데 사용될 수 있는 공식적 표현을 제공하는 방법론이다.
앞으로 돌아가서, XML과 RDF에서 규정할 수 없는 개념 간의 관계와 차이를 온톨로지를 이용해 규정한다고 하면 우리가 당면했던 문제를 해결할 수 있게 된다. 즉 ‘이영환’이 살고 있는 ‘서울’과 ‘화양동’이 소재하는 ‘서울’을 같은 단어로 처리할 수 있게 되는 것이고 프랑스의 수도 파리와 일리노이의 소도시 파리가 다른 단어임을 규정할 수 있게 되며 프랑스어의 ‘강(riviere)’과 우리말의 ‘강(江)’이 서로 다름을 규정할 수 있는 것이다. 이런 온톨로지를 위해 사용하는 언어가 웹 온톨로지 언어(Web Ontology Language; OWL)다.
이제 우리는 XML을 이용해 메타데이터를 지정하고, RDF를 이용해 리소스 사이의 관계를 규정하고 트리플에서 정의되지 않은 단어들 사이의 관계를 규명할 수 있도록 온톨로지를 사용할 수 있음을 알았다. 이를 이용하면 우리는 웹상에 존재하는 단어들과 리소스들을 서로 연결해 데이터의 웹을 만들 수 있다.
이런 과정을 통해 지금까지 사람을 위한 구조를 가지고 있던 웹이 아니라, 이제는 사람이 아닌 컴퓨터가 웹에서 메타데이터와 단어의 의미를 이해하고 리소스를 연결해 액세스할 수 있게 된다. 그래서 웹이 더 이상 인간을 위한 공간이 아니고 컴퓨터 프로그램과 인간이 동시에 액세스함으로써 협력하고 소통할 수 있는 공간으로 만들 수 있는 프레임워크가 탄생하는 것이다.
시장의 변화 - 산업이 바뀌고 있다
앞에서 설명한 대로 기술적인 문제에 대한 해결책으로서 데이터의 웹의 출현은 필연적이다. 그런데 이와 같은 기술적인 문제에 대한 해결책만이 아니고 종래의 웹은 이미 많은 부분 시장의 요구에 의해 달라지기 시작했다.
특히 카메라와 GPS까지 장착된 모바일 기기가 등장하고 웹에 연결되면서 웹은 책상 위만이 아니고 주머니 속으로 들어왔다. 게다가 RFID 등 각종 센서와 액추에이터가 웹과 연결되면서 웹은 우리의 일상생활에 밀착되어 버렸다. 이제 웹은 언제 어디에서나 필요하다. 우리의 카메라와 전화기는 집단지성을 위한 애플리케이션을 위해 눈과 귀가 되도록 연결되었다. 동작과 위치센서는 우리가 어디 있는지 알려주고 우리가 보고 있는 것과 얼마나 빨리 움직이고 있는지도 알아낸다.
이렇게 많은 데이터가 실시간으로 수집되어 저장되고 있는데다가 우리 생활의 거의 모든 가전 가구들까지도 웹에 연결되어 데이터를 생성하는 기기가 되었다. 이렇게 많은 데이터들은 종래의 웹에서처럼 인간의 손으로 처리하고 인간의 눈으로 이해하는 웹이 처리할 수 있는 한계를 이미 지났다.
이렇게 폭발적으로 증가하는 기기들이 수집하는 데이터는 컴퓨터에 의해 분석되고 연결되어 인간이 이해할 수 있는 형식으로 정제되어 보여주고 보내야 한다. 웹상에서의 컴퓨터 애플리케이션(에이전트라고 불리기도 하는) 프로그램들은 이 데이터들을 읽고 이해하고 분석해 인간이 읽거나 보거나 들을 수 있는 형식으로 정제해 보여주게 된다. 이는 사람에 의해 수(手)작업으로 만들어지는 현재의 웹페이지와는 확연히 다르다.
이렇듯 시장의 필요에 의해 탄생한 새로운 웹에서는 컴퓨터에 의해 서로 종류가 다른 데이터가 서로 연결되어 읽히고 분석되고 처리되어 우리 인간에게 필요한 정보의 형식으로 전달되기 시작했다.
예를 들어 어떤 환자가 있다고 하면 그의 과거 병력과 치료 과정은 사실상 그가 다닌 많은 병원에 각각 저장되어 있을 것이다. 그러한 데이터를 읽고 분석해 의사에게 정리된 형태로 보여줄 수 있다면 의사들은 훨씬 더 현명한 치료 방법을 선택할 수 있을 것이다. 물론 각 병원에 존재하는 데이터들은 각기 다른 포맷일 것이고 각기 다른 형태로 저장되어 있을 것이다. 우리는 데이터를 연결하는 기술이 새로운 웹의 기술이라고 설명한 바 있다. 환자 개인에 대한 맞춤형 처방이 가능해지는 것이다.
그런데 사실은 이것뿐만이 아니다. 만일 개인에 대한 유전자 정보를 분석할 수 있다면 이 유전자형은 어떤 약에 대해 물리적 반응을 하는지 독특한 성질을 알 수 있다. 만일 이것이 가능하다고 하면 맞춤형 처방이 아닌 고객에 대한 맞춤형 치료가 가능해질 것이다.
<그림 8> 동적/정적 데잍가 승수적으로 증가하는 중임
이 새로운 웹은 <그림 8>처럼 서로 다른 데이터가 연결되어 컴퓨터 애플리케이션에 의해 읽히고 분석되는 것을 가능하게 한다. 새로운 형태의 애플리케이션들이 만들어지기 시작하는 것이다. 이제 막 걸음마를 시작한 단계이기는 하지만 이들이 새로운 산업으로 등장하기 시작했다.
<그림 9> 종류가 다른 데이터가 연결되어 새로운 애플리케이션 산업이 시작됨.
사실 이러한 애플리케이션은 다른 산업으로의 파급효과로 인해 더욱 흥미롭다. 앞선 예에서 생명과학 분야의 예를 들기도 했지만 생명과학 분야는 의약기관들의 적극적인 참여로 다른 분야에 비해 가장 많은 데이터가 인터넷에 공개되어 사용될 수 있는 형태로 존재한다. 실제로 이 데이터들에서 만들어진 정보로부터 제약에 대한 힌트를 얻은 의학계의 사람들이 창업을 시작했다고 한다(NuemannEric, 2005). 이것은 일과성 사건이 아니다. 엄청난 타 산업으로의 파급효과가 이제 일어날 것이다. 이러한 데이터의 웹은 매우 많은 산업의 구조를 바꾸게 될 것으로 본다. 이 새로운 웹의 기술에 적응하는 조직과 사람은 크게 성공할 기회를 갖게 될 것이지만 적응하지 못한다면 도태될 수도 있다.
새로운 웹, 웹3.0
이미 이렇게 달라지고 있는 웹을 우리는 무엇이라고 불러야 할까? 흥미로운 사실은 웹3.0 기술을 검색엔진에 장착한 야후는 유저들의 클릭이 15% 증가했다고 보고하고 베스트 바이(Best Buy)는 검색엔진을 통해 들어온 트래픽이 30%가 증가했다고 주장한다. 이렇듯 웹3.0 기술을 사용했더니 시장의 반응이 종래의 웹보다 뚜렷해졌다고 단언하기에는 아직은 조심스럽다. 다만 우리는 새로운 웹이 시장에 많은 변화를 이제 가져오기 시작할 것이라고 말하는 것에는 주저함이 없다.
처음 웹을 발명한 버너스-리는 이 새로운 웹을 월드와이드웹을 뜻하는 WWW 대신 GGG라고 부르자고 제안했고 웹2.0이라는 개념을 주장해서 주목을 받았던 오라일리는 이를 웹2라고 부르자고 제안했다. 이들이 웹2.0을 자연스럽게 뒤따르는 웹3.0이라는 단어 대신에 조금은 괴상하기까지 한 단어를 제안하는 것은 이 새로운 웹이 과거의 웹과 확연히 다르다고 보고 있는 증거다. 그들은 아마도 이것이 시장에 미칠 영향력이 매우 중대함을 강조하고 있는 것이다.
어쨌든 우리가 원하거나 원하지 않거나 새로운 웹은 시작되고 있다. 필자는 다른 대부분의 연구자들과 함께 이 새로운 웹을 웹3.0으로 부른다. 그 이유는 첫 번째로 버너스-리나 오라일리가 다른 이름으로 부르자고 제안할 만큼 이 새로운 웹은 웹2.0과 확연히 다르다는 점에 동의하기 때문이다. 웹1.0과 2.0 사이에는 기술적인 차이가 확연하지 않았으나 웹2.0과 웹3.0 사이에는 현격한 기술적인 차이가 있고 또한 시장의 변화가 있다는 점에서 다른 이름이 필요하다는 것은 자명하다.
그러나 버너스-리나 오라일리가 파악하듯이 웹2.0과 전혀 다른 차원의 웹이라는 생각에 필자는 동의할 수 없다. 이 새로운 웹은 전혀 새롭게 갑자기 창조되어 나온 것이 아니고 기존의 웹2.0이 진화되는 연장선상에 있다는 점에서 웹3.0이라고 부르는 것이 개념적으로 옳다고 본다. 그러나 필자는 웹3.0이 웹2.0과는 충격적일 만큼 크게 다른 웹이라는 점에서 GGG라고 부르자고 제안한 팀 버너스-리나 웹2라고 부르자고 제안한 팀 오라일리와 전적으로 같은 의견을 가진다. 또 시장에 큰 변화가 오고 있다는 점에서 버너스-리와 오라일리의 제안에 전적으로 동의하고 있음을 밝혀둔다.
기억해야 하는 것은, 나중에 설명하지만 미국 백악관의 기술 자문들은 이러한 변화 중 데이터 공개와 그것들의 연결에 주목하면서 이것이 미국의 새로운 성장 엔진이 될 것이라고 예측했다는 사실이다. 이것이 새로운 성장동력이 실제로 될 수 있을 것인지는 두고 봐야 할 것이다. 그러나 한 가지 확실한 것은 이것이 가져올 시장의 변화가 작지 않을 것이라는 세계적인 공감대가 형성되고 있다는 점이다.
이 새로운 웹이, 이 글에서 설명하는 웹3.0이 버너스-리의 제안처럼 GGG로 불리게 될지 혹은 팀 오라일리의 제안처럼 웹2로 불리게 될지 알 수 없다. 다만 확실한 것은 세상이 변하고 있다는 것이고 그 변화의 핵심은 바로 웹의 변화란 점이다. 이 글은 바로 그러한 웹의 기술적인 변화와 시장상황의 변화를 설명하기 위해 쓰여졌다.
이 글의 시작 명제는 바로 이것이다. 세상은 변하고 있고 그 변화의 중심에 웹3.0이 있고 바로 태풍의 눈이 되고 있다. 팀 오라일리는 새로운 웹을 웹2라고 부르자고 제안하면서 과격한 표현을 쓴다.
‘웹이 바로 세상이다.’
- 팀 오라일리(O’ReillyTim & BattelleJohn, Web Squared: Web 2.0 Five Years On, 2009)
다시 한 번 결론을 내면, 세상은 변하고 있고 그 가운데 웹이 있다. 그 웹을 중심으로 세상이 공전하기 시작했다. 이 글은 변하고 있는 세상을 더 많은 이들에게 이해시키는 데 그 목적이 있다.
참고자료
1. 바보들을 위한 인터넷 해설서,『웹3.0, 세상을 바꾸고 있다』, 이영환 (보문각)