[마소 2007년 9월] 시맨틱 웹을 향한 첫 걸음 ‘마이크로포맷’

박지강 jkwave@gmail.com|개발 및 번역 프리랜서로 활동하다 최근 SK 커뮤니케이션즈로 자리를 옮겼다. 역서로는 ‘프로젝트 데드라인(한빛미디어)’이 있으며, 최근 ‘당신은 웹2.0 개발자입니까?(한빛미디어)’를 집필하였다. 기술을 이용한 기획과 전략, 열린 전략적 제휴, 일인 기업에 관심이 많으며, 현재 목표는 스스로 기획하고 개발하고 디자인한 서비스를 대중들에게 공개하는 것이다.

시맨틱 웹(Semantic Web)이란 웹을 창시한 팀 버너스 리가 고안한 차세대 웹 기술로 컴퓨터가 이해할 수 있는 웹을 말한다. 팀 버너스 리는 시맨틱 웹을 “정보에 잘 정의된 의미를 부여하여 컴퓨터와 사람이 더욱 협력하여 일할 수 있는 웹의 확장 개념”이라고 설명했다. 예를 들어 일기 예보 사이트에 오늘의 날씨 중 기온 정보가 있다고 가정하자. 사람이 페이지를 방문하면 주변 정보를 파악한 후 비로소 숫자가 기온임을 파악하게 된다.

컴퓨터는 그렇지 않다. 이 숫자가 길이인지 번호인지 가격인지 알아채지 못한다. 컴퓨터에게 숫자는 단지 숫자일 뿐이다. 하지만 시맨틱 웹의 범주에서는 기온이라는 의미(Semantic)를 숫자에 부여하고 컴퓨터가 사람처럼 숫자를 기온으로 이해하게 한다. 그리고 좀 더 나아가 컴퓨터가 웹 페이지의 정보를 수집하고 분석하여 자율적으로 정보를 처리할 수 있는 자동화 시스템을 구현할 수 있다. 시맨틱 웹이 구현되면 사람의 지시 없이 컴퓨터 스스로 현재 위치에서 가장 가까운 중국집을 찾거나 개인의 스케줄에 맞춰 레스토랑 예약을 할 수 있단다. 놀랍지 않은가?



물론 이런 미래가 현실화되려면 적잖은 장애물을 해결해야 한다. <그림 1>에서 알 수 있듯이 시맨틱 웹을 제대로 실행하기 위해서는 RDF(Resource Description Framework)와 OWL(Web Ontology Language) 등 많은 기반 기술이 필요하다. 심지어 컴퓨터의 자동화 처리를 위한 인공지능 알고리즘까지 요구될 수도 있다. 이처럼 무거운 구조로 인해 시맨틱 웹의 현실화는 아직도 구체화되지 않고 있다. 실효성에 대한 논의도 뜨겁다. 상황이 이렇다보니 시맨틱 웹처럼 강력하지는 않지만 손쉽게 사람도 이해하고 컴퓨터도 이해할 수 있는 마이크로포맷이 컴퓨터 중심의 시맨틱 웹과 사람 중심의 웹을 아우르는 시발점으로 인식되고 있다.

마이크로포맷

브라우저에 표현할 레이아웃을 정의하는 용도로 사용하는 HTML과 달리 마이크로포맷은 간단한 방법으로 웹 페이지 내의 특정한 목적의 의미를 부여할 수 있어 다양한 용도로 HTML을 활용할 수 있다. 예를 들어 웹 페이지 안에 마이크로포맷을 적용함으로써 주소록을 공개하고 인맥 관계를 찾아가거나 일정을 공유하는 등 다양한 응용이 가능하다. 검색 엔진 등의 자동화 프로그램은 마이크로포맷이 삽입된 웹 페이지에서 특수한 목적의 데이터를 수집하여 HTML 이상의 가치 있는 정보를 사용자에게 전달할 수도 있다.

HTML은 페이지의 레이아웃을 정의하는 태그 외에도 다른 목적의 정보를 담을 수 있는 방법을 제공한다. 다음과 같은 HTML 표준 속성을 이용해 웹 페이지 내에 마이크로포맷을 삽입할 수 있다.




● class : 마이크로포맷의 가변적인 정보를 정의하는 기본 속성

● rel : 링크와 연결되어 있는 문서와의 관계를 정의하는 속성

● rev : 링크와 연결되어 있는 문서와의 역관계를 정의하는 속성

마이크로포맷은 이러한 기본적인 속성을 이용해 주소록이나 이벤트, 리뷰 등과 같이 특수한 목적의 정보를 HTML 안에 삽입할 수 있다. 다음은 class 속성을 이용해 연락처 정보를 표현하는 마이크로포맷인 hCard의 예이다.

<span class=“vcard”>
      <span class=“fn”>홍길동</span>
      <span class=“org”>유명 주식회사</span>
      <span class=“tel”>02-111-1111</span>
      <a class=“url” href=“http://microformats.org”>http:// microformats.org </a>
  </span>

여기서 일반적인 HTML 태그와 class 속성을 함께 사용해 fn, org, tel, url과 같은 특수 정보를 저장하고 있다. fn은 이름, org는 소속회사, tel은 연락처, url은 홈페이지 주소를 의미하며, 이는 vcard라는 class 속성 안에서 연락처 정보를 형성하고 있다. hCard는 컴퓨터가 이해할 수 있도록 정해진 규약으로 정보를 저장하는 반면 사용자 역시 웹 페이지에서 정보를 시각적으로 확인할 수 있는 장점이 있다.

class 속성이 다양한 속성 값을 부여해 hCard와 같이 풍부한 포맷을 HTML 안에 저장한다면, rel과 rev 속성은 <link>나 <a href> 태그에 관계 정보를 부여해 좀 더 간단한 방법으로 마이크로포맷을 구현한다. XFN(XHTML Friends Network)은 링크에 rel 속성을 이용해 인맥을 저장한다.

<a href=“http://www.jerryis.com/tt” rel=“friend met colleague”>제리</a>

<a href=“http://www.pixie.co.kr” rel=“friend met”>픽시</a>

rel 속성의 friend는 “친구”를 뜻하며, met은 “만난 적이 있는 관계”, colleague는 “같은 직종의 동료”를 의미한다. 그러므로 픽시라는 링크는 “만났던 친구”의 홈페이지를 뜻하며, 제리는 “만났던 같은 직종의 친구”를 의미한다. 이처럼 XFN을 통해 간단하게 홈페이지나 블로그간의 인맥관계를 저장할 수 있다. 자세한 스펙은 http://gmpg.org/xfn/을 살펴보기 바란다.

Vote Links는 rev 속성을 사용하여 링크를 웹 페이지의 정보에 대한 지지나 추천에 대한 의사 표현으로 처리하는 마이크로포맷이다.

<a href=“http://happybean.naver.com” rev=“vote-for”>해피빈</a>

<a href=“http://microformat.com” rev=“vote-abstain”>마이크로포맷</a>

<a href=“http://...” rev=“vote-against”>악질사이트</a>

rev 속성의 vote-for는 “찬성”, vote-abstain은 “중립”, vote-against는 “반대”를 뜻한다. 똑같은 관계임에도 불구하고 rel이 아닌 rev를 사용하는 이유는 rel은 현재 페이지를 기준으로 관계를 표현하는 속성이고 rev는 그 반대의 관계를 표현하는 속성이기 때문이다. 그러므로 다른 페이지의 정보에 대해 찬성이나 반대를 표현하는 행위는 rev 속성을 사용해야 한다. Vote Links는 링크에 대한 사용자들의 평가를 저장하여 링크 정보의 질을 높이는 효과를 발휘한다.

geo는 위도와 경도와 같은 지리적인 수치를 HTML 안에 저장하여 위치를 표시하는 마이크로포맷이다. 이 마이크로포맷을 이용하면 구글 맵과 같은 웹 지도에 정확히 위치를 표시할 수 있다.

<div class=“geo”>GEO: 
 <span class=“latitude”>37.386013</span>, 
 <span class=“longitude”>-122.082932</span>
</div>

이렇게 마이크로 포맷은 HTML 페이지 안에 특수한 목적의 정보를 삽입하여 HTML의 활용성을 높이는 개방형 데이터 구조 표준이라 용도에 따라 쉽고 다양한 형태로 고안될 수 있다. 다음은 특수한 목적의 마이크로포맷들이다.

● hCalendar : 일정 정보를 저장한다.

● hCard : 주소록 정보를 저장한다.

● hReview : 영화나 음악 등에 관한 리뷰 정보를 저장한다.

● hResume : 이력서 정보를 저장한다.

● geo : 위도와 경도를 저장한다.

● XOXO : 리스트와 요약 정보를 저장한다.

● rel-directory : 링크가 디렉토리 정보임을 명시한다.

● rel-nofollow : 검색 엔진과 같은 에이전트에 분석될 필요가 없는 링크임을 명시한다. 링크를 포함한 악성 댓글과 같은 전문적인 스팸 방지할 때 사용할 수 있다.

● rel-tag : 링크가 태그 정보임을 명시한다.

● xFolk : 쇼셜 북마킹을 위한 정보를 저장한다.

● XFN : 링크에 인맥을 저장하여 웹 페이지에 인간관계를 설정할 수 있다.

● XOXO : 리스트와 요약 정보를 저장한다.

물론 이외에도 많은 마이크로포맷이 있다. 현재에도 지속적으로 추가되고 있는 중이다. 생산자를 hCard, 위치를 geo로 저장하고 맛, 색깔, 생산년도 등을 표시하는 와인(Wine) 관련 마이크로포맷까지 논의될 정도로 활발하다.

마이크로포맷, 과연 어디에 사용할까?

마이크로포맷은 웹에서 다양한 형태로 서비스될 수 있다. 국내에서는 마이크로포맷을 적극적으로 사용하는 사이트가 없기에 해외에서 적절한 예를 찾을 수 있다.

1. 마이크로포맷 수집 사이트

일반적으로 사용자는 특정 사이트를 직접 방문하여 데이터를 입력한다. 그리고 사용자가 입력한 정보는 사이트 방문객에 의해 웹 전반에 걸쳐 퍼진다. 즉 사용자는 자신의 정보를 퍼트리기 위해 선호하는 사이트를 방문하여 데이터를 남긴다. 하지만 마이크로포맷과 블로깅이 합쳐지면 다른 패턴으로 웹을 활용할 수 있다. 다른 사이트를 방문할 필요 없이, 내 블로그에 정보를 남기면 다른 사이트가 블로그에 접근하여 그 정보를 가져간다.

예를 들어 무언가를 팔고 싶다면, 상품정보를 저장하는 마이크로포맷인 hListing을 이용하여 블로그에 그 내용을 남긴다. edgeio(http: //www.edgeio.com)와 같은 상품정보 수집 사이트는 그 블로그의 상품 정보를 수집하여 적절한 카테고리에 전시한다. 이와 비슷한 케이스로 hReview 태그를 통해 블로그에 작성된 영화평은 영화정보 사이트에서 수집해 갈 것이고, 인맥관계를 지정하는 XFN 태그는 인맥정보 사이트에서 수집할 것이다. 이처럼 기업은 곳곳에 퍼진 다양한 마이크로포맷을 수집해 또 다른 비즈니스 사이트가 생성할 수 있고, 개인은 자신의 블로그에 글만 하나 남겼음에도 불구하고 다른 사이트에 그 내용이 자동으로 배포하는 효과를 누릴 수 있다. 마치 블로그를 다양한 목적의 RSS처럼 활용할 수 있는 것이다.

2. 특정한 커뮤니티에서 정보를 공유하기

산악자전거 동호회는 다른 사람들과 즐길 수 있는 하이킹 코스를 공유하고 싶을 것이다. 하이킹 코스에 관련된 지리 정보를 블로그에 포스팅하고 그 정보를 지오캐스팅(geocasting) 해보자. geocast란 podcast와 유사한 개념으로 RSS에 지리정보를 포함한 geo 포맷을 포함시킨 형태의 웹 피드이다. 동호회의 다른 사람들은 이 피드를 구글 어스와 같은 지도 프로그램에 등록하여 하이킹 코스를 공유하고 확인할 수 있다.

3. 전문 검색

만약 누군가 웹 툰을 그려서 많은 사람들에게 공개하고 싶다고 하자. 웹 툰 정보를 명시하는 마이크로포맷을 따라 만화를 포스팅한다면 많은 사용자가 검색을 통해 웹 툰을 읽게 될 것이다. 그림이나 동영상은 내용의 텍스트화가 되지 않아 검색의 어려움이 있다. 하지만 만화 속의 대사를 마이크로포맷과 함께 제공한다면 대사 안의 키워드와 매칭되는 만화를 검색할 수 있게 된다. 검색 엔진은 이벤트 정보를 담은 hCalendar를 수집하여 구글 맵과 같은 지도 정보에 지역별 이벤트를 비주얼하게 표시할 수도 있다. 마치 요즘 각광받고 있는 전문 검색 엔진(Vertical Search En gine)처럼 말이다.

4. 인터넷 브라우저를 통해 개인 용도로 활용

마이크로포맷이 삽입된 웹 페이지는 다양한 애플리케이션에 의해 사용될 수 있다. hCard는 연락처를 다루는 국제 표준인 vCard를 HTML 안에 표현한 포맷으로, vCard는 이미 대부분의 주소록 소프트웨어에서 기반 데이터로 활용되고 있다. 그렇다면 HTML에 존재하는 hCard 마이크로포맷을 수집한 후 vCard로 변환하여 주소록 소프트웨어에 자동 추가하는 편리한 기능이 가능하게 된다.

파이어폭스의 확장 기능인 테일즈 익스포트(Tails Export)는 브라우저로 접근한 HTML 페이지 안의 마이크로포맷을 아웃룩 같은 PIMS(Personal Information Management System)가 사용할 수 있는 포맷으로 자동 변환해 주는 기능을 가지고 있다. 특정일의 이벤트 정보를 담은 웹 페이지를 클릭하여 한 번에 일정관리 프로그램에 추가할 수 있게 되는 셈이다.





<그림 3>은 태일즈 익스포트의 실행 화면으로 오른쪽에는 웹 페이지, 왼쪽에는 웹 페이지에 담긴 전자 명함과 일정 정보를 자동으로 보여준다. 사용자는 왼쪽의 마이크로포맷 정보를 몇 번의 클릭만으로 아웃룩에 쉽게 옮길 수 있다. 또 다른 파이어폭스의 확장 기능인 오퍼레이터(Operator)는 좀 더 많은 마이크로포맷을 분석할 수 있다. 오퍼레이터를 설치한 후 Yahoo! Local (http ://local.yahoo.com), Upcoming.org, Flickr(http://www. flickr.com)을 돌아다니다보면 주소록과 지도, 스케줄 등이 상단 툴바에 자동으로 나타나는 것을 확인할 수 있다.



이처럼 수많은 가능성은 마이크로소프트와 같은 유명한 IT 기업들이 앞으로의 프로젝트에 마이크로포맷을 활용하기로 결정하게 만들었다. 현재로선 브라우저의 플러그인으로 마이크로포맷을 활용될 뿐이나 앞으로 출시될 마이크로소프트의 인터넷 익스플로러 8.0이나 모질라의 파이어폭스 3는 마이크로포맷을 기본으로 지원할 예정이라고 한다. 브라우저를 통한 간단한 활용이 가능하게 된다면 마이크로포맷의 영향력은 더욱 더 커질 것이다. HTML의 쉬운 활용이 웹의 부흥을 일으켰듯이.

컴퓨터? 결국은 사람이다

시맨틱 웹은 폭발적으로 늘어나는 데이터를 좀 더 가치 있는 정보로 활용하기 위한 미래지향적인 목표이다. 기술이 아닌 목표다. 컴퓨터를 이해시킬 수 있는 정보를 생산해 내는 기술이 중심이 아니라 웹에 존재하는 데이터를 좀 더 가치 있게 만들어 일상생활을 윤택하게 하여야 한다. 하지만 시맨틱 웹은 온톨로지나 RDF와 같이 다소 난해하고 복잡한 개발 기술로 인해 실질적으로 삶의 질을 향상시키는데 아무런 결과물을 내놓지 못하고 실정이다.

반면 마이크로포맷은 사람이 자주 접하는 웹 페이지에 컴퓨터가 “읽을 수” 있는 정보를 저장하여 활용도를 높인다. 물론 컴퓨터가 “이해할 수” 있는 데이터베이스를 목표로 삼는 시맨틱 웹에 비하면 그 비전은 초라할 지도 모른다. 하지만 마이크로포맷은 사용자의 자발적인 참여를 유도한다는 점에서 더 큰 힘을 가진다. 사용자를 스스로 움직이게 하는 것은 그리 어려운 일이 아니다. 즉 그들이 자신에게 이익이 된다는 사실을 깨닫게 된다면 동기를 가지고 자발적으로 참여할 수 있다. 예를 들어 마이크로포맷은 hCard나 hCalendar와 같이 개인정보관리 소프트웨어에서 활용하던 정보를 웹 페이지에서도 공유할 수 있다는 점에서 사용자의 참여를 유도한다. 이렇게 쌓인 마이크로포맷은 다양한 목적의 메타데이터로 형성되어 대중을 만족시키는 새로운 유형의 서비스를 탄생시킬 것이다. 여기서 끝이 아니다. 컴퓨터가 읽을 수 있는 데이터가 사용자에 의해 점점 더 많이 쌓일수록 자연스레 시맨틱 웹이 형성된다. 컴퓨터가 일단 무언가를 읽을 수 있어야 이해할 수 있는지 테스트도 하고 새로운 시도를 할 수 있지 않겠는가?

컴퓨터 중심의 시맨틱 웹 기술이 좀 더 사용자에게 다가설 수 있는 겸손함을 보일지, 아니면 사용자 중심의 웹이 좀 더 발전하여 컴퓨터를 이해시킬 수 있는 웹의 비전을 보여줄 것인지에 촌각을 곤두세우는 것은 무의미하다. 이미 마이크로포맷을 통해 미약하지만 사용자와 컴퓨터가 함께 이해할 수 있는 시맨틱 웹 2.0이 시작되고 있다.

by 마음속폭풍 | 2007/11/27 00:55 | 컬럼 | 트랙백 | 덧글(0)

[마소 2007년 8월] SEO - 검색 엔진과 친구되기

박지강 jkwave@gmail.com|개발 및 번역 프리랜서로 활동하다 최근 SK 커뮤니케이션즈로 자리를 옮겼다. 역서로는 ‘프로젝트 데드라인(한빛미디어)’이 있으며, 최근 ‘당신은 웹2.0 개발자입니까?(한빛미디어)’를 집필하였다. 기술을 이용한 기획과 전략, 열린 전략적 제휴, 일인 기업에 관심이 많으며, 현재 목표는 스스로 기획하고 개발하고 디자인한 서비스를 대중들에게 공개하는 것이다.


검색 엔진 최적화는 사이트의 검색 결과 순위를 높이는 방법을 말한다. 간단히 말하면 검색 엔진을 이용한 마케팅 방법 중 하나이다. 사이트의 방문자 수를 늘리기 위해서는 일단 검색 사이트에 보다 많이 노출되어야 한다. 검색 사이트는 인터넷에서 정보를 찾기 위한 중요한 수단이기 때문이다. 검색 사이트를 통해 들어온 방문자들은 일단 강한 동기를 가지고 해당 사이트를 방문했을 확률이 크다. 검색 사이트에서 직접 키워드를 입력하여 들어온 방문자는 단순히 호기심에 의해 다른 곳의 링크를 통해 들어온 방문자보다 어떤 명확한 목적을 달성하기 위해 사이트를 방문했을 것이다. 그 사람은 방문한 사이트의 열광적인 팬이 될 가능성이 크다.

검색 사이트의 결과에 가장 높은 위치로 노출시키는 가장 쉬운 방법은 검색 사이트에 돈을 지불하여 상위로 올리는 것이다. 하지만 예산이 넉넉하지 못한 사이트라면 검색 엔진의 특성에 맞는 사이트를 구성해야 한다. 물론 생각만큼 간단한 일을 아니다. 검색 결과를 만드는 알고리즘은 검색 엔진마다 각기 다르고, 핵심적인 기능은 경쟁력 약화를 우려해 기업마다 일급 비밀로 하고 있다. 하지만 검색 기업들의 다양한 조취에도 불구하고 검색 엔진이 분석해야 할 것은 HTML이라는 텍스트 기반의 저작 언어로 한정이 되어있다. 그러므로 우리는 검색 엔진이 HTML의 어떤 문법과 텍스트를 집중적으로 분석할지 상당 부분 예측 가능한 것이다.  

내 사이트와 검색 엔진을 친하게 만들자.

지금부터 설명할 검색 엔진 최적화 방법은 주로 구글과 같이 고성능의 검색 엔진을 이용한 검색 사이트에 큰 효과를 거둘 수 있다. 국내의 검색 사이트는 스폰서 링크나 키워드 구매 같이 비즈니스에 의해 검색 결과 위치가 좌우되거나 내부에서 사용하는 지식 데이터, 블로그, 뉴스를 먼저 보여주는 검색 모델을 가지고 있기 때문에 큰 효과를 거두지는 못할 것이다. 그러나 구글과 같은 웹 페이지 전문 검색 사이트는 국내에서도 많이 이용되고 있으며 국내 검색 사이트 역시 웹 페이지만을 검색하는 섹션을 따로 제공하고 있다. 검색 사이트의 비즈니스 모델로 인해 인위적으로 검색 결과가 달라지는 것에 거부감을 느끼는 사용자들은 여전히 검색 엔진을 이용한 웹 페이지 검색을 이용할 것이다. 그렇기 때문에 검색 엔진 최적화는 여전히 그 위력을 발휘할 수 있다. 다음은 사이트의 검색 순위를 높여 트래픽을 올리는데 많은 도움을 주는 항목들이다. 
 
1. 텍스트 위주의 컨텐츠를 구성해라

 앞서 말했다시피 검색 엔진은 텍스트를 분석하여 의미있는 데이터를 추출한다. 이미지나 플래쉬로 도배가 된 사이트는 검색 엔진으로 인한 방문자 증가 효과를 누릴 수 없다. 사용자는 크리스마스 선물을 검색하기 위해 “크리스마스 선물”을 검색 사이트에 입력하지만, 화려한 크리스마스 트리가 있는 플래시와 선물이 그려져 있는 이미지로 공들여 만든 페이지는 공교롭게도 검색 결과에 나오지 않을 것이다. 물론 모든 것을 텍스트로만 구성하라는 것은 아니다. 텍스트를 위주로 적절하게 이미지를 가미한 디자인은 보기에도 좋을뿐더러 브라우저에도 빠르게 로딩되는 등 이로운 점이 많다.

부득이하게 플래쉬와 이미지 같은 그래픽 요소가 많이 필요한 사이트는 검색 엔진이 분석할 수 있는 “ALT” 태그를 사용하여 이미지에 대한 텍스트 설명을 첨부하는 것이 좋다. 또한 사이트에 존재하는 모든 페이지의 하단에 중요 페이지들에 대한 텍스트 링크를 나열하는 것도 좋은 대안이다.

 2. 사이트의 타이틀을 명확히 해라

웹 페이지들은 자신이 담고 있는 내용을 타이틀(TITLE) 태그에 함축하여 표현해야 한다. 대부분의 검색 엔진은 검색 알고리즘의 매우 중요한 정보로 타이틀 태그를 활용한다. 사용자가 검색에 사용할 키워드를 미리 예측해서 타이틀에 넣는다면 검색 순위를 올리는데 큰 도움을 줄 것이다.

국내에서는 타이틀의 중요성이 그다지 부각되지 않은 것 같다. 사이트의 모든 타이틀이 똑같은 사이트는 곳곳에서 찾아볼 수 있으며 이는 검색 엔진 최적화 마케팅의 관점에서 굉장히 큰 실수이다. 한 예로 쇼핑몰을 들어보자. 국내 쇼핑몰에 등록된 상품 상세 페이지의 타이틀은 대부분 상품명을 표시하는 것이 아니라 쇼핑몰 이름만을 표시한다. 이는 상품의 상세 페이지를 검색 엔진에서 제대로 검색할 수 없게 한다. 해외의 쇼핑몰들은 대부분 상품명이 타이틀에 표시되어 검색 엔진에서 다양한 쇼핑몰의 상품을 바로 검색할 수 있다.

<그림 1> 국내 쇼핑몰의 상품 상세 페이지 타이틀

위의 그림은 국내 유명 쇼핑몰들의 상품 상세 페이지 타이틀이다. 그림을 보면 확인할 수 있듯이 대부분이 쇼핑몰의 이름과 홍보 문구를 적고 있을 뿐이다. 국내 유명 쇼핑몰들 중에선 그림 중 맨 아래의 옥션이 거의 유일하게 상품 정보를 타이틀에 표시하고 있다. 아래에는 해외 유명 쇼핑몰들의 타이틀이 있다.

<그림 2> 해외 쇼핑몰의 상품 상세 페이지 타이틀

이처럼 아마존이나 이베이, 노드스톰같이 해외의 유명한 쇼핑몰들은 대부분 상품 정보를 타이틀에 표시하여 검색 사이트에 상품을 노출시키고 있다. 이 상품들은 사용자가 구글과 같은 검색 사이트에 상품명을 입력해서 쉽게 찾을 수가 있다.

3. 의미 있는 이름을 부여해라.

주소의 도메인 명이나 디렉토리 명, 파일 명을 검색 엔진이 알아볼 수 있는 키워드로 구성하는 것이 좋다. 주소는 검색 엔진에 매우 큰 영향을 주는 정보이다. 가장 중요한 페이지는 root 디렉토리에 가깝게 두고, 디렉토리 이름은 검색 키워드를 염두에 두고 정해라. 검색 엔진은 키워드에 적합한 페이지를 찾는데 주소를 중요한 정보로 참고한다. 국내에서는 한글을 사용하기 때문에 이 방법을 활용하기 위해서 한글로 주소를 작성해야 한다는 한계가 있다. 한글로 작성된 디렉토리 명이나 파일 명은 브라우저의 UTF-8 옵션의 선택 여부에 따라 안보일 수 있기 때문에 영어로 작성하는 것이 일반적이다. 하지만 국내에서 사용하는 영어 고유명사는 충분히 검색에 활용할 수 있다. 예를 들어 BMW같은 고유명사 같은 경우, “http://www.bmw.co.kr/bmw.html” 처럼 주소에 BMW라는 키워드를 사용한다면 검색 엔진은 상위의 검색 결과로 위의 사이트를 올려놓을 것이다.

4. 링크

사이트에 대한 링크가 외부에 많이 존재하면 할수록 검색 결과 순위는 높아진다. 인터넷에 많이 존재하는 링크일수록 중요한 정보를 담을 가능성이 크기 때문이다. 물론 외부에 링크를 많이 퍼트리는 방법은 훌륭한 컨텐츠를 만드는 것이다. 컨텐츠가 매력을 가지고 있다면 별다른 노력 없이도 링크의 확산 속도는 기하 급수적으로 늘어나고 곧 검색 결과 상위권에 오르게 될 것이다. 그와 반면에 인위적인 방법을 사용해도 컨텐츠가 매력이 없다면 링크의 확산 속도는 늘지 않을 것이다. 하지만 경쟁력 있는 컨텐츠가 존재한다는 가정하에 좀 더 링크의 확산을 가속화시킬 수 있는 방법이 있다. 같은 관심사를 가진 사이트들끼리 웹 링(*주석)을 구성한다거나 링크를 컨텐츠안에 개재하여 다른 사이트로의 개시를 허용한다면 좀 더 많은 링크가 외부에 확산되어 검색 결과로 반영될 것이다.

5. 사이트 맵을 가져라

사이트 맵은 검색 결과 순위에 지대한 영향을 미친다. 왜냐하면 검색 엔진이 여러분의 사이트의 중요 메뉴를 모두 훑어볼 수 있게 만들기 때문이다. 사이트 맵은 일단 사이트에 대한 간략한 설명과 중요 페이지에 대한 텍스트 링크를 거는 것이 중요하다. 그렇다고 모든 페이지의 링크를 사이트 맵에 표시하는 것은 옳지 않다. 검색 엔진은 특정 개수 이상의 링크가 존재하면 기준 개수를 넘는 링크는 더 이상 분석하지 않기 때문이다. 일반적으로 한 페이지 내에 100개 이상은 넘지 않는 것이 좋을 것이다.

사이트 맵에 대한 링크는 페이지 맨 위에 두는 것이 좋다. 검색 엔진은 페이지의 위에서부터 아래로 분석하기 때문에 위에 위치한 단어나 링크에 좀 더 가중치를 부여하여 분석한다. 또한 사이트 맵에 연결된 링크나 그 안의 내용을 플래쉬나 이미지 맵, 자바스크립트로 구성해서는 안된다. 검색 엔진은 텍스트를 분석하는 알고리즘을 사용한다. 사이트 맵은 기본적인 태그로도 충분히 디자인 요소를 살려서 만들 수 있다. 검색 엔진에 사이트가 좀 더 알려지고 싶다면 사이트 맵 내의 링크를 자바 스크립트 함수나 플래쉬 메뉴가 아닌 텍스트 링크로 만드는 것이 좋을 것이다. 이 법칙은 일반적인 페이지도 마찬가지로 적용된다.

6. 에러 페이지를 활용해라

검색 사이트는 검색 엔진을 이용해 페이지를 분석한 결과와 주소를 별도의 데이터에 저장한다. 이를 전문 용어로 인덱싱이라고 한다. 실제로 사용자의 검색 키워드가 입력된 순간 웹 페이지가 아닌 인덱싱 데이터를 검색하게 된다. 그러므로 검색 엔진이 인덱싱한 후에 변경된 웹 사이트의 내용을 실시간으로 감지하지 못한다. 검색 결과 중 특정 링크를 누르면 브라우저에서 “페이지를 찾을 수 없습니다” 라는 에러 메시지가 나오는 경우가 바로 웹 사이트의 변경 사항을 실시간으로 감지하지 못하기 때문에 발생하는 경우이다.

<그림 3> 전체 메뉴를 유지하는 야후의 에러페이지

 웹 사이트는 항상 변하게 되어있다. 링크가 변경될 수도 있고, 페이지 자체를 없앨 수도 있다. 이 경우에 검색 사이트를 통해 힘들게 들어온 고객을 그냥 쫓아버릴 수 있다. 하지만 잘못된 페이지 주소로 들어왔을 때 그에 상응하는 에러 페이지를 출력한다면 고객을 붙잡을 확률을 좀 더 높일 수 있다. 사이트의 전체 메뉴나 이벤트를 에러 페이지에 출력한다면 고객은 좀 더 사이트를 둘러보고 싶어할 수도 있다. 물론 유실된 페이지와 유사한 페이지로 이동시키는 에러 페이지를 구성한다면 더할 나위 없을 것이다.

7. 페이지 컨텐츠

페이지 안의 내용에 중요한 키워드를 보다 강조한다면 검색 엔진이 분석하기 쉬울 것이다. 헤더 태그(<H1>, <H2>, <H3>)를 이용해 강조된 텍스트는 분석에 있어 좀 더 가중치를 받을 수 있다. 또한 헤더 태그 외에도 본문에 특정 키워드에 대한 일관된 내용을 담는 것도 텍스트를 강조하는 효과를 발휘한다. 본문에 여러 가지 주제에 대한 내용을 모두 담고 있는 것보다는 한가지 주제에 대한 내용을 기승전결에 따라 담는다면 주제에 대한 중요 키워드가 자연스레 반복되어 출현하게 되므로 사용자와 검색 엔진 모두 강조하려는 부분을 쉽게 이해할 수 있다. 

8. 검색 엔진에 사이트 등록

물론 지금까지 말한 지침들은 검색 엔진이 사이트 자체를 찾을 수 없다면 아무 부질없는 내용일 뿐이다. 대부분의 검색 사이트는 사이트를 무료로 등록할 수 있도록 지원하고 있다. 사이트 주소와 웹 마스터 이메일과 같은 정보를 등록하면, 검색 엔진은 정해진 스케줄에 의해 직접 사이트를 분석할 수 있다.

<그림 4> 네이버의 홈페이지 주소 등록 화면

 1번부터 4번까지는 대부분의 검색 엔진이 중요한 정보로 사용하는 항목임과 동시에 사이트 설계를 할 때 쉽게 반영할 수 있는 부분이다. 이 밖에도 검색 엔진 최적화를 위한 더 많은 항목이 있지만 간단하게 실행할 수 있는 방법 위주로 설명하였다.

내 사이트와 검색 엔진을 친하게 만들자.

검색 엔진의 분석에 긍정적인 영향을 주는 방법이 있는 반면, 부정적인 영향을 주는 기술적 요인도 있다. 검색 엔진의 원활한 분석 활동을 위해서 지켜야 할 일반적인 사항들은 다음과 같다.

1.과도한 그래픽 요소를 피해라.

과도한 플래쉬나 이미지는 검색 엔진이 사이트를 분석하는데 방해요소가 된다. 검색 엔진은 기본적으로 텍스트로 이루어진 링크나 내용을 최고의 정보로 활용한다. 플래쉬나 이미지 같은 바이너리 데이터는 검색 엔진이 쉽게 분석할 수 있는 대상이 아니다.

2. 프레임을 피해라.

페이지를 프레임으로 구성하지 마라. 프레임은 검색 엔진이 제대로 수집하고 분석하기에 매우 성가신 구조이다. 검색 엔진이 사이트 분석을 통해 전체 프레임이 아닌 일부 프레임에 대한 주소만 저장할 수 있기 때문이다. 검색 사이트를 통해 들어온 사용자는 레이아웃이 망가진 일부 프레임만을 보게 될 수 있다.

3. 쿠키를 피해라.

웹 사이트로 접근을 허락하기 위해 쿠키나 세션을 사용하지 마라. 검색 엔진의 접근을 막기 때문이다.

4. 자바스크립트 사용을 아껴라.

자바스크립트로 이루어진 메뉴는 굉장히 많이 사용되는 웹 인터페이스 요소 중 하나이지만 검색 엔진의 링크 분석을 방해하는 요인을 가지고 있다. 링크를 www.?.co.kr과 같은 텍스트 주소로 걸지 않고 자바스크립트 함수로 걸면 검색 엔진이 함수를 분석해가며 주소를 찾아야 하기 때문이다. 검색 엔진에서 잘 수집되는 사이트는 대개 텍스트 링크 위주로 구성되어있다.  

물론 검색 엔진을 위해서 위와 같은 항목을 모두 지켜야 하는 것은 아니다. 적절한 그래픽 요소나 자바스크립트 사용은 사이트를 풍요롭게 하는 중요한 요소이다. 하지만 페이지가 가지고 있는 중요한 링크나 컨텐츠는 텍스트로 구성하고 그 외의 것들은 그래픽 요소를 고려하는 디자인 방법은 보편적인 관점에서 훌륭한 페이지 설계 방법이다.

검색 엔진과 전략적 제휴를 맺어라.

검색 엔진 최적화(SEO)는 간단한 실천으로 큰 효과를 볼 수 있는 훌륭한 마케팅 비법으로 보이지만, 어두운 면도 가지고 있다. 미국에서는 이미 검색 엔진 최적화를 비즈니스의 한 시장으로 보고 있으며, 검색 엔진 최적화를 전문으로 수행하는 기업들이 많이 있을 정도이다. 문제는 이 기업들이 검색 엔진 최적화를 사이트가 담고 있는 컨텐츠를 기반으로 하지 않고 단지 검색 결과 순위를 올리기 위해 인위적인 편법을 사용하는데 있다. 예를 들어 검색 엔진 최적화를 악용하자면 컨텐츠와 상관없는 링크나 인기 키워드를 페이지에 구석구석에 보이지 않게 숨겨놓아 검색 엔진이 페이지의 중요도를 높게 착각하도록 유도할 수 있다. 하지만 구글과 같은 경우 이미 이런 편법을 발견하면 검색 결과 순위를 낮추는 대처를 기술적으로 하고 있으며, 인위적인 유도를 통해서 들어온 방문자가 해당 사이트를 다시 방문할 확률은 많지 않기 때문에 검색 엔진 최적화를 악용하는 것은 시간낭비일 뿐이다.

검색 엔진 최적화는 단순히 검색 엔진을 속이는 속임수가 아니다. 검색 엔진 최적화는 엄밀히 말하자면 검색 엔진과 전략적 제휴를 맺기 위해 최대한 웹 표준에 맞게 페이지를 작성하는 것을 의미한다. 검색 엔진은 웹 표준을 기반으로 어떤 기준을 세우고 텍스트를 분석하기 때문이다. 우리가 문법이 정확한 언어를 쉽게 알아들을 수 있듯이, 컴퓨터도 해석할 수 있는 문법으로 작성된 데이터만을 분석할 수 있다. 검색 엔진 역시 다르지 않다. 사용자가 입력한 키워드에 맞춰 정확히 검색 순위를 정하려면 웹 표준이라는 문법에 맞게 작성한 웹 페이지가 필요하다. 물론 웹 표준 문서를 참조하며 정확히 페이지를 만들지 않아도 검색 결과에 노출될 수 있다. 우리가 사투리나 외국인이 하는 서툰 우리말을 일정 부분 알아들을 수 있듯이 컴퓨터도 마찬가지이다. 하지만 보다 정확히 의사를 전달하려면 어떻게 해야 하는가? 간단하다. 표준말을 구사하면 된다. 이처럼 웹 페이지가 담고 있는 내용을 정확히 검색 엔진에 전달하고 싶으면 웹 표준을 지킬 필요가 있다. 검색 엔진 최적화를 실행함으로써 검색 엔진은 좀 더 나은 검색 결과를 얻게 되고, 사이트는 검색 결과에 높은 순위로 노출될 수 있기 때문에 서로의 이해 관계가 맞아 떨어지는 전략적 제휴가 가능한 것이다. 또한 검색 엔진 최적화는 검색 엔진에 쉽게 수집되는 사이트를 만드는 것 이상의 부가가치를 만들어 준다. 웹 표준을 지키는 것은 사용자의 웹 접근성도 강화시켜주기 때문이다. 사용자와 컴퓨터가 모두 이해할 수 있는 웹 페이지는 웹 2.0의 특징 중 하나이다. 이처럼 검색 엔진 최적화는 사용자와 컴퓨터를 동시에 만족시키는 웹 2.0다운 마케팅 방법이라 할 수 있다.

검색 엔진 최적화는 지금 당장 실행해서 큰 효과를 볼 수 있는 마법 같은 마케팅 기술은 아니다. 검색 알고리즘은 계속 진화하고 있으며 검색 엔진 최적화 역시 지속적인 관심과 보강이 필요하다. 또한 국내에서 시도하기엔 부족한 점이 많다. 국내 검색 사이트는 검색 결과를 만들 때 지식 데이터나 스폰서 링크 같은 내부 데이터베이스에 많이 의존하며 해외 검색 사이트는 아직도 검색 엔진을 이용한 웹 페이지 검색을 위주로 한기 때문이다. 하지만 국내 검색 사이트들도 검색 엔진 기능 강화의 중요성을 인식하고 NHN이 첫 눈을 인수하고 SK커뮤니케이션이 엠파스를 인수하는 등 제각기 검색 기능의 업그레이드에 힘쓰고 있다. 또한 구글과 같은 강력한 검색 엔진을 기반으로 하는 검색 사이트가 여전히 국내에서도 힘을 발휘하고 있다.

검색 엔진 최적화는 검색 엔진을 무료로 활용할 수 있는 마케팅이지만 동시에 사용자의 웹 접근성을 강화시켜주는 기술적인 방법이기도 하다. 게다가 큰 비용이 아닌 작고 간단한 실천으로 효과를 거둘 수 있다. 사이트를 만들었다면 검색 엔진 최적화를 주저할 아무런 이유가 없다. 모자란 능력을 채우고 경쟁자들보다 우위에 서려면 끊임없이 아군을 찾아 제휴해야 한다. 웹 2.0을 통해 사용자와 제휴했다면 이젠 막강한 검색 엔진과 제휴를 맺을 차례다.

by 마음속폭풍 | 2007/11/27 00:06 | 컬럼 | 트랙백 | 덧글(1)

[마소 2007년 7월] 웹 2.0 기술 다시 보기

박지강 jkwave@gmail.com|개발 및 번역 프리랜서로 활동하다 최근 SK 커뮤니케이션즈로 자리를 옮겼다. 역서로는 ‘프로젝트 데드라인(한빛미디어)’이 있으며, 최근 ‘당신은 웹2.0 개발자입니까?(한빛미디어)’를 집필하였다. 기술을 이용한 기획과 전략, 열린 전략적 제휴, 일인 기업에 관심이 많으며, 현재 목표는 스스로 기획하고 개발하고 디자인한 서비스를 대중들에게 공개하는 것이다.

웹2.0의 출현으로 다시 한 번 실리콘 밸리와 인터넷 비즈니스가 후끈 달아오르고 있다. 이처럼 과열된 시장에서 웹2.0 관련 사이트나 제품들은 ‘웹2.0 기술사용’ 이라는 홍보 문구로 순진한 사용자를 현혹시키고 있다. 웹2.0 기술이란 과연 무엇이며 그런 용어가 과연 존재하기는 할까? 또는 속칭 웹2.0 기술이라 불리는 정체불명의 도구를 이용하여 개발한 서비스가 모든 이들이 그토록 원하는 웹2.0 애플리케이션이 될 수 있을까?

일반적으로 웹2.0 기술을 명확하게 정의하기란 힘들다. 웹2.0은 누군가 그 단어를 창조한 시점을 기준으로 웹2.0 시대라는 시기를 구분할 수 있을 뿐, 웹2.0 정의에 속한 서비스는 웹1.0 시대에도 존재했다. 웹2.0 관련 정의의 시간 흐름표를 보자(<그림 1> 참고).


이 그림에서 알 수 있듯이 웹2.0의 기본적인 개념과 서비스는 웹2.0 이전에도 존재한다. 웹2.0 기술도 마찬가지다. 웹2.0이란 개념이 정의되면서 주목을 받거나 새롭게 떠오르고 있는 일련의 기술이 존재할 뿐이다. 서버 소프트웨어, 콘텐츠 신디케이션(사이트 콘텐츠의 일부 또는 전체를 다른 서비스에서 이용할 수 있게 해주는 것. RSS가 대표적), 웹 표준, 리아(RIA), 웹 서비스, 여러 가지 클라이언트 애플리케이션 등 웹2.0 기술은 매우 다양한 범주의 기술을 포함하고 있다.

웹2.0을 개발하려는 사람들은 이처럼 다양한 기술을 보고 상당히 혼란스러워하거나 배신감을 느낄 수 있다. 일반적으로 웹 애플리케이션을 개발하는데 기본 바탕이 되는 기술과는 다른 성격과 기능을 가지고 있기 때문. 과연 웹2.0 기술들을 전부 적용해야 성공적인 웹2.0 애플리케이션을 만들 수 있는지, 아니라면 그 중 무엇을 적용해야 하는지의 판단이 애매모호하다. 이런 기술적 결정은 프로젝트의 성패에 큰 영향을 미친다. 과연 어떤 선택이 올바른 결정일까? 올바른 결정을 내리기 위해서는 먼저 웹2.0 기술의 사용 목적을 명확히 이해해야 한다.

웹2.0 기술의 눈에 띄는 네 가지 변화

다음 항목들은 웹2.0 기술로 불리고 있다.

● X/HTML과 CSS

● Ajax(Asynchronous Javascript And Xml)

● RSS/Atom

● OPEN API와 매시업(Mashup)

● 마이크로포맷(Microformat)

● 어도비 플래시(Adobe Flash)와 플렉스(Flex)

● XUL(XML User Interface Language)

● SVG(Scalable Vector Graphics)

● 태그(Tag)와 태그 클라우드(Tag Cloud)

언뜻 보기에 서로 아무런 연관성이 없어 보일뿐더러 생소한 단어와 영어 약자로 인해 머릿속이 복잡해진다. 여기에 열거된 항목이 전부가 아니다. 이외의 기술들도 웹2.0 기술이라는 타이틀을 달고 인터넷 커뮤니티에서 거론되고 있다. 이 기술 가운데 일부는 웹2.0이라는 신드롬에 걸맞지 않은 영향력을 가지고 있기도 하다. XUL과 SVG는 비즈니스에 사용되기엔 아직 설익은 마크업 랭귀지(Markup Language)이고, 플래시는 전통적인 클라이언트 기술 중 하나이다.

하지만 중요한 것은 각 기술들의 스펙이 아니라 왜 이 기술을 사용해야 하는지에 대한 당위성이다. 웹2.0이 ‘좀 더 나은 웹’을 서비스하기 위해 ‘콘텐츠 생산력’을 강화하는 방법을 열거했듯이 웹2.0 기술도 ‘좀 더 나은 웹’을 개발하기 위해 무엇을 할 수 있는지 이해할 필요가 있다. 2.0이란 버전은 서비스 제공자나 서비스 사용자의 입장에서 모두 ‘좀 더 나은’ 환경을 제공해야 한다는 의무를 뜻한다. 웹2.0 기술이 지금껏 웹을 이끌어 왔던 핵심 영역들의 개선에 어떤 영향을 주는지 이해한다면 복잡한 용어와 기술들의 난립에도 기죽지 않고 올바르게 활용할 수 있는 토대를 마련할 수 있을 것이다.

데이터 유통 흐름의 변화 - 콘텐츠 신디케이션
기존 웹은 사용자가 원하는 정보를 얻으려면 사이트를 직접 방문해야 했다. 하지만 웹2.0은 굳이 그럴 필요가 없다. 콘텐츠 신디케이션이라는 새로운 방식의 정보 제공 방식이 생겼기 때문이다. 콘텐츠 신디케이션은 사용자가 사이트를 방문하지 않고도 정보를 얻을 수 있도록 데이터를 정해진 규약으로 모두에게 공개하는 방법이다. 웹2.0은 RSS와 Atom이라는 기술을 이용해 콘텐츠 신디케이션이라는 새로운 데이터 유통 채널의 중요성을 강조하고 있다.

콘텐츠가 경쟁력인 인터넷 비즈니스에서 콘텐츠의 유통 채널이 새로 생긴다는 것은 커다란 변화를 의미한다. RSS와 Atom은 어려운 기술이 아니다. 단순히 데이터를 HTTP를 통해 XML로 제공하는 간단한 규약이다. 모두에게 공개하려면 누구나 쉽게 이해할 수 있는 데이터 포맷이 필요한데 그 조건을 충족시키는 것이 바로 XML을 이용한 RSS와 Atom이다. 이 간단한 데이터 포맷으로 웹의 데이터 유통 방식은 또 하나의 강력한 옵션을 가지게 되었다.

웹 클라이언트의 변화 - 리아(RIA : Rich Internet Application)
리아는 ‘Rich Internet Application’의 줄임말로 인터넷에서 데스크탑 애플리케이션처럼 풍부한 사용자 인터페이스를 구현한 애플리케이션을 말한다. 기존의 리아는 Active X나 자바 애플릿 같은 별도의 클라이언트 엔진을 사용한 탓에 개발이 어렵고 속도가 느리며 플랫폼 종속적이라는 단점을 가지고 있다. 이는 외부의 변화에 쉽게 적응하고 사용자의 참여를 종용하는 웹2.0 애플리케이션에 위배되는 기술적 특성이다.

그에 반해 Ajax를 이용한 리아는 더 많은 사용자에게 풍부한 사용자 인터페이스를 지원할 수 있는 기회를 제공하였다. 자바스크립트라는 가벼운 웹 기반 기술사용으로 기존 웹 시스템과 통합이 용이하며 대부분의 사용자를 대상으로 쉬운 서비스가 가능하다. 플래시 역시 많이 사용되고 있는 웹 클라이언트 엔진이다. 인터넷이 가능한 PC의 약 97% 가량이 플래시를 볼 수 있다는 통계가 이를 말해준다. 국내만 하더라도 사이트의 필수 요소인 배너 광고의 대부분은 플래시를 이용하므로 통계학적 수치가 상당부분 수긍이 간다. Ajax와 플래시는 많은 사용자가 쉽게 이용할 수 있다는 장점을 바탕으로 웹2.0의 사용자 인터페이스가 진화하는데 큰 공을 세우고 있다.

시멘틱 웹(Semantic Web)으로의 변화 - 태그와 마이크로포맷
시맨틱 웹은 웹의 창시자인 팀 버너스 리(Tim Berners-Lee)에 의해 제안된 웹의 미래상으로 사람이 아닌 컴퓨터가 이해할 수 있는 웹을 말한다. 다시 말해 사람이 웹에서 만들고 이용하는 데이터를 컴퓨터가 이해할 수 있는 형식으로 표현해 컴퓨터끼리 의사소통할 수 있는 자동화된 지능형 웹이다. 태그와 마이크로포맷은 이처럼 컴퓨터가 이해할 수 있는 시맨틱 웹의 의미를 웹에 구현할 수 있는 웹2.0 기술이다.

태그는 사용자가 콘텐츠를 생성할 때 함께 입력한 키워드를 말한다. 태그를 이용하면 기존에 정해진 카테고리 분류 방식에서 벗어나 사용자가 직접 자신이 생성한 콘텐츠에 대한 꼬리표를 달 수 있게 된다. 사용자가 콘텐츠에 부여한 태그들이 쌓이면 컴퓨터에 의해 자동으로 체계화될 것이다. 태그는 컴퓨터에 카테고리라는 의미(Semantic)이기 때문이다. 마이크로포맷은 태그와 달리 HTML 안에 간단한 의미(Semantic)를 담을 수 있다.

마이크로포맷에는 일정 정보를 표현하는 hCalendar, 명함 정보를 표현하는 hCard 등 다양하고 쉬운 포맷들이 존재한다. 이 마이크로포맷들은 브라우저나 검색엔진에서 HTML 안에 담긴 일정이나 인적 정보과 같은 특정한 목적의 정보를 쉽게 가져와 재사용할 수 있도록 도와준다. 시맨틱 웹의 생존을 위한 변화는 웹2.0을 통해 조용히 진행되고 있다.

웹 개발방법론의 변화 - OPEN API를 이용한 매시업
OPEN API는 말 그대로 모두에게 공개된 프로그래밍 인터페이스이다. 구글이나 야후, 아마존, 이베이 같은 메이저 인터넷 기업들은 물론 중소규모의 벤처기업까지 무수히 많은 기업들이 자사의 서비스를 OPEN API로 공개하고 있다. 사용자들은 각 기업의 서비스들이 제공하는 OPEN API를 조합하거나 활용하여 매시업이라는 또 다른 서비스를 쉽게 창출해 낼 수 있다.

예를 들어 지도 정보를 제공하는 구글 맵의 API와 사진 공유 사이트인 플리커의 API를 조합하면 여행 정보 매시업 서비스를 만들 수 있다. 이런 개발 방법은 웹2.0 시대에 등장한 것은 아니다. SOA(Service Oriented Architecture)는 ‘서비스 지향 아키텍처’의 약어로 서비스의 인터페이스를 제공하는 웹 서비스 기술을 통해 기업이나 서비스 단위간에 새로운 서비스를 창출하는 개발방법론이다. 이 기업 중심의 서비스 지향 개발 모델이 사용자 중심의 웹2.0으로 좀 더 쉽고 간단하게 변화된 것이 OPEN API이다. 사용자가 OPEN API를 통해 여러 가지 데이터를 조합해 또 다른 콘텐츠를 창출하는 매시업은 사용자의 참여와 콘텐츠를 중시하는 웹2.0의 기반 기술로 활용하기에 손색이 없다. ‘플랫폼으로서의 웹’을 구현하는 미래지향적 기술이라 할 수 있다.


참여, 공유, 개방을 중심으로 하는 웹2.0은 이처럼 네 가지 기술적 변화들을 통해 서비스를 좀 더 풍요롭게 만들고 있다. 웹2.0 기술은 갑자기 떠오른 혁신적인 분야의 기술이 아니다. 웹2.0이 사람을 중시하는 웹의 기본정신을 강화하고 개선하고 있듯이, 웹2.0 기술 역시 웹을 구성하고 있는 여러 기술적 모델을 계승하고 진화시키고 있다.



단순한 것이 최고다(Simple is best)


웹2.0 기술은 웹 서비스 모델의 각 부분을 확장하고 개선하는데 큰 도움을 주지만 그에 앞서 주목해야 할 공통적인 특징이 있다.

● 간단한 기술 : 대부분이 텍스트를 이용한 웹 기반 기술이기 때문에 기술의 습득이 쉽고, 기존 시스템과 통합이 용이하다.

● 가벼운(Loosely Coupled) 기술 : 쉬운 인터페이스로 기술간의 결합도가 낮기 때문에 다른 기술과의 다양한 조합이 가능하다. 대부분의 기술이 XML를 통해 요구를 처리한다.

● 공개 데이터(Open Data) 기술 : 사이트에 있는 데이터를 쉽게 공개하고 처리할 수 있다. 그러므로 서로 다른 사이트간의 데이터를 조합하여 새로운 서비스를 창출할 수 있다. 웹2.0이 데이터를 공유하고 개방하는 서비스 모델이듯이 웹2.0 기술 역시 대부분 데이터를 공유하고 개방하는 방법에 대해 다루고 있다.

● 순수한 웹 기반 기술 : 웹2.0 기술은 대부분 순수한 웹 기반 기술로 이루어져 있다. 그만큼 인터넷이 연결된 컴퓨터만 있다면 웹2.0 기술로 개발한 애플리케이션을 사용할 수 있다. 예를 들어 자바스크립트 기반의 Ajax를 이용하면 브라우저를 통해 데스크탑 애플리케이션만큼의 풍부한 기능을 제공할 수 있다.

이러한 특징은 웹의 시발점인 인터넷과 HTML, 하이퍼링크, HTTP의 기술적 특징을 그대로 계승하고 있다. 웹 역시 HTML과 하이퍼링크처럼 쉽고 가벼우며 데이터 중심적인 기술을 통해 급속한 발전을 이루지 않았는가. 닷컴버블 시절의 웹 기술은 폐쇄적인 경향을 지니고 있었다.

인터넷 산업이 발달함에 따라 서비스보다는 기술을 이용해 독점적인 위치와 그에 상응하는 수익을 얻으려는 IT 기업들의 비즈니스 전략에 의해 기술 산업이 발전했기 때문이다. 기술의 내부는 경쟁을 위해 감추고 제휴는 기업 논리를 통해 이뤄졌다. IE의 Active X나 비표준 태그 지원 등 마이크로소프트의 국제 비표준 기술의 지원을 통한 시장 지배 방식은 이미 대중들에게 유명하다. 독점이라는 지배구조는 인터넷 산업에도 지대한 영향을 발휘하는 듯 보였다.

하지만 웹 기술 생태계의 씨앗은 HTML의 단순함(Simple) 이었듯이, 단순하고 사용하기 쉬운 기술은 조용히 그 영향력을 펼쳐나갔다. 모든 생태계의 생존 비법은 외부의 변화에도 살아남을 수 있는 적응력과 번식력이다. 웹 기술도 마찬가지이다. 몸집만 거대하고 무거워진 기술과 소프트웨어는 도태되고 비교적 가볍고 쉽지만 본연의 임무에 충실한 기술은 웹 기술 생태계에서 살아남았다. 웹2.0 기술은 이 같은 웹 기술의 생존과정을 온몸으로 증명하고 있다.

● Active X, 자바 애플릿 → Ajax : 별도의 언어를 이용해야 하는 클라이언트 엔진에 비해 Ajax는 자바스크립트를 이용하므로 기존 웹 시스템과 통합이 쉽고 개발이 용이하다.

● 시맨틱 웹 → 태그, 마이크로포맷 : 다소 난해한 온톨로지 언어를 이용해야 하는 시맨틱 웹은 기업과 개인에게 환영받지 못하고 있으나, 태그와 마이크로포맷은 간단한 메타데이터를 이용해 시맨틱 웹의 정신을 웹2.0에 반영하고 있다.

● SOA → OPEN API : 기업 중심의 서비스 지향 아키텍처인 SOA는 SOAP이나 XML-RPC 같은 어려운 서비스 프로토콜로 인해 널리 보급되지 못했다. OPEN API는 REST라는 간단한 프로토콜을 통해 소비자 중심의 서비스 지향 아키텍처로 성공을 거두고 있다.

● CGI → Script 언어(php, jsp, asp) : 기존의 CGI 방식은 초창기 웹에 주도적 개발 방식이었지만 개발이 어렵고 운영체제 의존적이라는 단점이 있었다. 반면 배우기 쉽고 개발이 용이한 스크립트 언어는 현재 대부분의 웹 개발에 사용되고 있다.

물론 모든 기술은 쉽고 간단해야 한다는 어리석은 주장을 하는 것은 아니다. 목적에 맞게 설계되어야 하고 또한 용도에 맞게 사용되어야 한다는 것이다. 좀 더 강력한 기능을 원한다면 단순함을 포기하고 복잡함을 선택할 수도 있다. 하지만 웹은 사용자의 참여와 공유, 개방이 원동력이 되는 열린 공간이다. 웹 기술을 이용한 개발이 쉽고 간단하다면 기업들은 서비스를 빨리 만들어 사용자의 콘텐츠를 남보다 먼저 확보하고, ‘영원한 베타’의 정신을 살려 사용자의 변덕스러운 요구를 만족시킬 수 있을 것이다.

반면 웹 기술이 어렵고 무겁다면 새롭게 기획된 서비스는 오랜 시간에 걸쳐 발표될 것이고 그 사이 경쟁 사이트의 출현으로 미처 꽃피우기도 전에 사그라질 수 있다. 게다가 사용자의 지속적인 개선에 대한 요구는 묵살되고 영원히 완성되지 못한 채 베타 서비스로 전락할지도 모른다. 이처럼 기존 기술에 비해 비교적 쉽고 간단한 웹2.0 기술은 마치 웹2.0의 쉬운 사용자 참여를 통한 폭발적인 데이터 생산 능력처럼 서비스를 생산하는 능력을 높여준다. 더불어 개발자의 보다 많은 참여를 유도해 인터넷 산업의 파이를 키우기에 충분한 역할을 하고 있다. 웹2.0과 웹2.0 기술은 무척이나 많이 닮아있다.

플랫폼으로서의 웹과 윈도우 SDK

웹2.0 기술의 또 다른 특징은 다양한 종류의 기술들이 모여 하나의 플랫폼을 구성하고 있다는 점이다. 웹2.0에서의 플랫폼은 사용자가 자유롭게 참여하여 콘텐츠를 생산하거나 서비스를 이용할 수 있는 공간을 말한다. 웹2.0 기술에서의 플랫폼 역시 몇몇 단어의 의미를 제외하고는 같은 의미를 가진다. 기술의 입장에서 사용자는 개발자이고, 콘텐츠는 애플리케이션이다. 웹2.0의 플랫폼이 “사용자의 참여로 콘텐츠를 생산해 낼 수 있는 공간”이라면 웹2.0 기술에서 의미하는 플랫폼은 “개발자가 자유롭게 참여해서 애플리케이션을 생산해낼 수 있는 공간”을 말한다.

웹2.0 기술은 특정한 목적을 위한 기술이자 자유로운 활용을 위한 기반 기술이다. 초기의 Ajax는 서버에 있는 XML을 호출하는 것이 주목적이었지만 지금은 웹에서 풍부한 인터페이스를 구현하기 위한 기반 기술로 활용되고 있다. RSS나 OPEN API의 경우에도 데이터의 외부 공개라는 무한한 가능성을 이용해 여러 가지 창의적인 시도가 이루어지고 있다. 마이크로포맷이나 태그 역시 메타데이터로 활용해 다양한 서비스를 창출할 수 있다. 마치 웹2.0 기술이 개발 플랫폼의 SDK(Software Develop ment Kit)처럼 여겨지지 않는가?

지금까지 거론한 웹2.0 기술의 공통적 특징은 경쟁력 있는 플랫폼을 구성하기에 모자람이 없다. 지금부터 웹 플랫폼에서 실행되는 서비스를 소프트웨어라 불러보자. 웹2.0 기술의 특징 중 간단하고 쉽다는 장점은 소프트웨어를 빨리 개발할 수 있는 얘기이다. 가볍고 다른 사이트의 데이터를 가져올 수 있다는 특징은 다른 소프트웨어의 라이브러리와 쉬운 결합을 의미한다. 즉 웹은 소프트웨어를 생산하는 개발 플랫폼으로서 상당한 경쟁력을 갖추고 있다는 결론에 다다른다. 웹2.0이 콘텐츠 생산력을 증가시키는 당연한 수순을 밟고 있듯이, 웹2.0 기술 역시 소프트웨어 생산력을 증가시키는 ‘더 나은 웹 기술’의 수순을 밟고 있다. 또한 웹 플랫폼은 비즈니스적 관점에서 운영체제 플랫폼에 비해 다음과 같이 장점을 가지고 있다.



웹 플랫폼은 이러한 잠재성을 가지고 있음에도 불구하고 아직 운영체제 플랫폼에 비해 떨어지는 성능이 단점이다. 하지만 네트워크 대역폭의 확대와 컴퓨터 성능의 발전은 웹 플랫폼의 밝은 미래를 기대케 한다. 이미 구글이 구글 닥스 앤 스프레드시트(Google Docs & Spreadsheets : http://docs.google.com)를 통해 웹 브라우저 환경에서 구현되는 오피스 소프트웨어를 제공하고 있다. ‘플랫폼으로서 웹’이 조용하지만 빠르고 강력하게 진행되고 있다.

종종 플랫폼으로서의 웹을 말하며 어디에 사용해야 할지, 어떻게 수익모델을 만들어야 할지 모르겠다며 거품 기술로 치부하는 이들도 있다. 하지만 우리는 이미 윈도우라는 개발 플랫폼을 통해 수없이 많은 소프트웨어를 경험했다. 윈도우 SDK를 거론하며 그러한 불평을 하는 사람은 없다. 소프트웨어로 수익을 낼 수 있는 간단한 비결은 세상 어디에도 존재하지 않는다.



하지만 소프트웨어로 부를 창조한 사람은 많다. Ajax와 RSS, OPEN API와 같은 웹2.0 기술이 수익을 가져다주지 않는다고 불평하며 낭비하는 시간에 어떤 괴짜는 ‘유레카!’를 외치며 웹2.0 기술 기반의 사용자가 원하는 킬러 애플리케이션을 만들고 있을 것이다. 성공과 실패의 명암은 늘 그런 식으로 아무도 눈치 채지 못하게 다가온다. 웹2.0이 모두가 실패를 경험했을 때 불현듯 찾아왔듯이 말이다.

실패의 역사는 성공의 밑바탕이다

지금까지 설명했듯이 웹과 웹 기술은 타 플랫폼과의 경쟁에서 비교우위를 점하기 위해 치열하게 변화해왔다. 우리는 웹이 처음 등장했을 때 그 충격적이고 급격한 변화의 흐름 속에서 웹의 진정한 가치를 꿰뚫어보지 못했다. 오프라인적인 사고방식에 길들여져 있던 기업과 사용자들은 정보의 공유와 참여에 대해 인색했고, 결국 닷컴버블이라는 지독한 산통을 겪으며 웹2.0이란 2세를 낳았다.

그리고 웹2.0은 인터넷이라는 모두에게 평등한 사회 속에서 공개하고 공유하며 참여하면서 스스로 성장해가고 있다. 물론 우리는 여전히 웹2.0 안에서 과거의 실패를 반복하기도 한다. 사용자 참여의 소중함을 잊은 채 이기적이고 독선적인 서비스가 수없이 나왔다 사라지를 거듭하고 있으니 말이다. 웹2.0에서 중요한 것은 ‘2.0’이라는 미래가 아닌 ‘웹’이라는 과거와 현재라는 사실을 잊고 있는 탓이다.

웹2.0 기술도 마찬가지의 고통스러운 진화를 거듭해왔다. 다양한 기능을 제공하나 난해하고 사용이 어려운 기술들은 점점 도태되어 갔고, 뚜렷한 목적을 지닌 간단하고 쉬운 기술들은 그 틈을 파고들어 웹 구석구석에 빠르게 퍼져나갔다. Ajax가 액티브X와 자바애플릿의 난립 속에서 조그만 싹을 키워 어마어마한 영향력을 떨치고 있지 않은가.

이러한 기술의 치열한 전쟁의 역사는 우리에게 중요한 교훈을 준다. 중요한 것은 기술의 스펙이 아니라 기술의 목적이라는 사실을 잊어서는 안 된다. 요즈음 웹2.0 기술을 사용하면서도 더 나은 웹을 구현하는 데는 별 관심이 없는 서비스를 자주 접한다. RSS는 정보의 공개와 공유가 얼마나 큰 파생력을 가지고 있는지 스스로 증명했다. 하지만 국내 포털 사이트는 RSS를 제공함에도 불구하고 내부의 데이터는 공개하지 않은 채 꽁꽁 묶어두고 있다.

Ajax를 HTML로 구현이 가능한 구태의연한 인터페이스에 적용하여 시스템을 무겁게 하는 경우까지 있다. OPEN API가 현대사회에서 신속한 전략적 제휴가 얼마나 큰 힘을 발휘하는지 기술로 증명하고 있지만, 국내 기업은 단지 몇 개의 API만을 공개한 채 다른 기업과의 제휴에는 인색하다. 수없이 많은 실패를 경험하며 성장한 기술들을 통해 아무것도 배우지 못하고 있는 셈이다.

훌륭한 엔지니어는 기술의 스펙보다는 기술이 탄생한 배경과 역사, 그리고 그 목적을 충실히 이해하는 것이 필요하다. 과거의 실패를 되풀이하지 않기 위해 역사를 공부하듯이 말이다. 실패의 역사는 현재에도 미래에도 계속 되풀이 되어 우리를 좀 더 나은 방향으로 나아가게 만든다. 단 실패를 겸허히 받아들이는 자세를 가진다는 전제하에서 가능하다. 하루가 멀다 하고 쏟아지는 웹 기술들을 실패한 과거를 되새겨 겸손하게 맞이할 자세를 갖추어야 할 것이다. 바로 그 순간 웹2.0 기술은 조용하지만 강하게 효력을 발휘한다.


by 마음속폭풍 | 2007/11/26 22:17 | 컬럼 | 트랙백 | 덧글(2)

Technical Writing

솔트룩스(Saltlux)는 시멘틱 웹 기술 기업이자 번역 전문 기업이다.

이 회사 블로그에는 테크니컬 라이팅(Technical Writing)에 대한 좋은 글들이 올라와 있어서 참조할만하다.

솔트룩스 블로그


이 회사는 시멘틱과 번역이라는 어찌보면 아무 상관없는 분야를 전문적으로 하는 특이한 기업이다.

하지만 번역은 과거의 경험이 매우 중요한 역할을 한다는 점을 볼 때, 인터넷 속에 지속적으로 쌓여온 방대한 글로벌 시멘틱이 번역 또는 글로벌 커뮤니케이션에 획기적인 진보를 이뤄내는 날을 기대하는 것은 무리일까.

by 마음속폭풍 | 2007/09/28 01:11 | 호기심 | 트랙백 | 덧글(2)

변역 전문 소프트웨어

과거에 필드에서 뛰엇던 경험도 있고해서 평소에 번역에 대해서 관심이 많다.

물론 번역을 적극적으로 하고 싶은 마음은 없다. 변역속도가 느려서 그런지 몰라도 투자시간 대비 수익이 만족스럽지 못하기 때문이다. 과거 "프로젝트 데드라인"이란 책을 번역하며 너무 고생했던 기억으로 인해 번역일을 벌리기가 쉽지 않다. 물론 내 실력이 부족해서 고생을 했던 것이었겠지만..

하지만 그 책을 번역하면서 직역하지 않기 위해 책의 전문을 계속 반복해서 읽어야만 했고, 그 덕분에 책의 핵심 내용은 내 인생안에 고스란히 들어있다. 그 보람됨을 알기 때문에 지금도 평소 배우고 싶은 주제의 책을 찾게되면 번역해 보리라고 소극적이지만 마음먹고 있다. 아마도 지금으로선 UX관련 책이 될 가능성이 크다.

자 다시 주제로 돌아와서.. ^^

번역에 관심이 있는터라 번역관련 카페에 가입하여 번역을 생업으로 삼는 분들의 글을 종종 읽고는 하는데, 트라도스(Trados)라는 번역 전문 툴이 있다는 사실을 알게되었다. 물론 일반적인 사람들은 번역 툴하면 기계가 전문을 자동으로 번역하는 툴을 떠올릴지도 모르겠다. 다들 한번쯤은 번역버튼을 눌러 이상한 말도 안되는 번역 결과를 경험이 있을 것이다. 하지만 트라도스는 TM(Translation Memory)을 사용하는 번역 지원 툴이다.

TM은 한마디로 번역에 필요한 데이터베이스이다. TM을 사용하면 과거에 번역했던 단어나 문장을 저장하여 나중에 그 내용이 반복해서 나왔을 때 취사 선택할 수 있으며, 사전에 용어 세팅을해서 공동 작업을 할때 번역의 일관성을 유지할 수 있다. 한마디로 다양한 번역 지원 기능을 통해 번역에 드는 비용과 시간을 단축시킬 수 있는 것이다. 물론 이런 툴은 반복적인 문장이나 단어가 자주 나오는 소프트웨어나 하드웨어 Localization에 좀 더 많은 효과를 발휘하겠지만..

암튼 전에는 기계가 전문을 내부적인 룰에 따라 번역을 하는 툴만 있는 줄 알았는데, 알고보니 트라도스와 같은 TM을 활용한 번역 보조 툴이 많고 크게는 그 시장까지 형성되어 있다는 사실을 최근에 알게 되었다. 트라도스와 같은 경우는 번역 전문 회사에서 대부분 사용하고 있고, 프리랜서에게 외주를 줄때도 이 툴을 사용해줄 것을 요구한다고 한다. 번역 소프트웨어 시장이 진작부터 형성되어있다는 사실은, 세계화 시대에서 글로벌 커뮤니케이션이 얼마나 중요한지 새삼 느끼게 해준다. 지난 연말 뉴욕타임즈는 EU가 회원국들을 위해 협정과 조약을 번역하는데만 1조억원을 넘게 썻다고 한다. 정말 어마어마한 비용이 아닌가!

다음에 번역을 하게 된다면, 트라도스와 같이 TM을 사용하는 번역 툴을 사용해 맨 땅에 헤딩하는 일이 없도록 할 작정이다. FTA가 확대되면 점점 더 번역시장이 커지게 됨은 자명한 사실이고, 공부와 더불어 적잖은 용돈벌이가 될지도 모르겠다. 또한 번역은 글로벌 커뮤니케이션의 강력한 수단이기에 세계라는 바다에 뛰어들 때 소프트웨어라는 안전 장치 몇 개쯤은 내 스스로 가지고 있어야 하지 않겠는가?

by 마음속폭풍 | 2007/09/28 00:56 | 호기심 | 트랙백 | 덧글(3)

◀ 이전 페이지다음 페이지 ▶