'매시업'에 해당되는 글 1건

  1. 2008.05.13 오픈(Open)API와 매시업(Mashup)서비스 5
Computing2008. 5. 13. 15:06

웹의 도약을 위한 새로운 발판
- 오픈(Open)API와 매시업(Mashup)서비스 -


작년 국내 주요 포탈인 NHN과 다음커뮤니케이션이 자사의 주요 서비스를 오픈 API로 개방하면서 큰 기대를 모았다. 이와 관련하여 오픈 API를 이용해 손쉽게 새로운 서비스를 창출해 내는 매시업(mashup)은 웹을 도약시킬 또 하나의 발판으로 꼽히고 있다. 하지만 처음의 기대와는 달리 오픈 API는 아직 큰 반향을 불러일으키지 못하고 있는 것도 사실이다. 이 글에서는 오픈 API와 매시업의 기술적인 특성과 의미를 재점검해보고 이를 활용할 방안을 고민해보려 한다.


글 · 서광열| kwangyul.seo@gmail.com



지난 2월부터 이달 말까지 ‘2007 대한민국 매시업경진대회’ 행사가 진행 중이다. 국내 주요 포탈 기업인 NHN과 다음커뮤니케이션이 개최한 이 행사는 국내에 오픈 API 기술을 다시 한 번 알리고, 이들을 이용한 새로운 서비스를 발굴하기 위한 노력이다. 하지만 반대로 말하면 작년 이들이 공개한 오픈 API가 화려한 서막에 비해 별다른 이득을 얻지 못했다는 뜻이기도 하다. 오픈 API는 무엇이며 어떤 파급 효과를 가졌기에 이처럼 많은 기대와 실망이 교차하고 있는 걸까?



오픈 API



우선 API는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)의 약자로 애플리케이션을 작성하기 위해 필요한 기본적인 기능(운영체제, 프로그래밍 언어, 표준 라이브러리 등에서 제공)을 정의해놓은 것이다. 예를 들어 C 프로그래밍 언어에서 sin 값을 알고 싶다면, C 표준 API(math.h에 정의)의 하나인 sin 함수를 이용하면 된다. sin 함수에 어떤 값을 넘겨주면 sin을 취한 값을 돌려준다. 비슷한 기능을 하는 함수로는 con, tan 등도 있을 것이다. 이렇게 프로그램 작성에 필요한 일련의 기능을 모아 놓은 것이 API이다.


오픈 API는 전통적인 API의 개념을 웹으로 확장한 것이다. 특정한 기능이나 서비스를 제공하는 사이트에 접속해서 필요한 데이터를 요청하고 받아오는 행위를 기존 컴퓨터에서 함수를 호출하고 결과를 받는 것과 동일하게 생각한 것이다. 예를 들어, 기상청 사이트가 사용자들을 위해 날씨 정보를 얻을 수 있는 오픈 API를 만들었다면, 다른 사이트에서는 별다른 노력 없이 기상청에서 날씨 정보를 얻어와 고객들에게 보여줄 수 있다.


오픈 API는 인터넷 서비스 회사가 자사에서 독점적으로 사용하던 서비스, 정보를 외부에 열어주겠다는 뜻이다. “오픈”의 의미는 인터넷 상의 API라는 뜻이기도 하지만, 자사의 독점적인 정보를 외부로 열어주겠다는 뜻도 포함되어 있는 것이다. 실례로, NHN이 오픈 API를 제공하기 시작했다는 것은 원래 네이버 사이트에서만 열람할 수 있었던 지식IN, 블로그, 전문자료 검색 등을 네이버 홈페이지에 접속하지 않고서도 외부에서 직접 이용할 수 있게 되었음을 뜻한다.



오픈 API 관련 기술



앞에서 설명한 오픈 API는 그 정의가 다소 추상적이다. 구체적으로 오픈 API가 어떤 외형을 지니는지 이해하려면 오픈 API를 구현하는 기반 기술을 간단하게나마 살펴볼 필요가 있다. 오픈 API는 “API”라는 단어에서 알 수 있듯이 인터넷을 통해 필요한 정보를 요청(주로 웹페이지를 받아오는데 사용하는 HTTP 프로토콜을 이용)하고 결과를 받는 행위를 의미한다.


정보 요청 시에는 구체적으로 누구에게 어떤 정보를 받기를 원하는지 지정할 방법이 필요하다. 또한 결과에는 요청한 정보가 알기 쉽게 정리되어 있어야 한다. 이를 위해 오픈 API는 보통 REST, XML-RPC, SOAP 등의 기술을 사용한다.


[1] REST


REST(Representational State Transfer)는 2000년 로디 피들링(Roy Fiedling)의 박사 학위 논문에서 처음 제안되었고, 대규모 네트워크 시스템을 구축하는데 유용한 아키텍처 스타일(architecture style)이다. REST는 현재의 웹과 같이 대규모 분산 네트워크 구축 시에 지켜야할 원리와 원칙을 의미한다.


이러한 원칙 중에 하나가 “작고 어디서나 통용되는 인터페이스를 가진다(HTTP의 GET, POST, PUT, DELETE)”인데, 오픈 API에서 말하는 REST는 이런 인터페이스를 잘 따르는 간단한 접근 방식을 말한다. 예를 들어 블로그의 내용을 읽어오는 데는 GET을, 블로그 글을 생성하는 데는 PUT을, 블로그 글을 갱신에는 POST를, 글을 삭제하는 데는 DELETE를 쓰는 식이다.


실제로 다음의 신지식 검색 API를 보면 요청 방법을 REST라고 명시하고 있다. 검색은 ‘읽기’에 해당되는 기능이므로 GET을 이용해 원하는 정보를 요청하면 다음의 오픈 API가 결과를 돌려준다. 다음 신지식인에서 GET 방식으로 생성한 URL의 예제는 다음과 같다. 여기서 q는 검색할 질의(여기서는 daum을 검색), result는 결과로 받을 답변의 수, sort는 정렬 방법, range는 검색 범위를 뜻한다.



http://apis.daum.net/search/knowledge?q=daum&result=20&pageno=1&sort=accu&range=progress&apikey=xxx










[표] REST방식의 다음 신지식인 API호출


[2] XML-RPC


XML-RPC는 오픈 API를 사용하기 위한 또 다른 방법이다. RPC는 원격 프로시저 호출(Remote Procedure Call)의 약자로, 분산 컴퓨터 환경에서 이기종의 컴퓨터 자원을 사용하는 기술이다. RPC는 원격의 컴퓨터도 마치 자신의 컴퓨터에 존재하는 함수를 호출하는 것처럼 프로그램할 수 있게 만들어준다. XML-RPC는 이 개념을 웹으로 옮겨온 것으로 프로그램에서 함수 호출을 하듯이 원격에 있는 사이트에 정보를 요청하고 받아올 수 있게 해준다. 이때 주고받는 인자와 리턴 값은 XML로 인코딩하고, 실제로 데이터를 전송하는 수송 수단(transport)으로는 범용적인 HTTP(POST)를 사용한다.


XML-RPC는 이름에서 느껴지는 바와 달리 매우 간단한 기술이다. 명세서의 길이도 7페이지 남짓 밖에 안 되며 누구나 쉽게 이해하고 쓸 수 있다. XML-RPC로 인코딩할 수 있는 정보는 배열, 베이스64 인코딩된 바이너리, 이진값, 날짜/시간, 실수(double), 정수(integer), 문자열, 구조체로 한정되어 있다.


국내에서 다음이 자사의 블로그 API를 XML-RPC 형태로 제공하고 있다. 이 API를 이용하면 블로그 개설, 중복여부 검사, 글 올리기 등의 일을 다음 블로그에 접속하지 않고도 외부에서 처리할 수 있게 된다. 이를 이용하면 워드 프로세서나 전문 에디터 같은 데스크톱용 리치 어플리케이션을 이용해 글을 작성하고 곧바로 블로그에 게재할 수도 있게 된다.

















[그림1] XML-RPC의 모식도



[3] SOAP


SOAP(Simple Object Access Protocol)은 XML-RPC가 발전한 프로토콜이다. 앞서 소개한 XMl-RPC는 기본적인 데이터 타입만을 표현할 수 있기 때문에 복잡한 사용자 정의 타입을 정의하는 데는 어려움이 따른다. 이에 따라 좀 더 복잡한 데이터 구조를 표현하고 이에 특화된 처리를 지원하기 위해 SOAP이라는 프로토콜을 만들게 되었다. SOAP은 REST나 XML-RPC에 비해 복잡도가 상당히 높으며, 주로 엔터프라이즈 솔루션의 웹 서비스(web service) 구현에 자주 사용되고 있다.


기업 솔루션 시장과 달리 인터넷에서는 간단한 프로토콜이 대세이다. 실제로 아마존의 경우 HTTP+XML 형태의 API와 SOAP API를 모두 제공했는데, HTTP+XML 형태의 API가 8:2로 우위를 점했다고 한다. 즉 인터넷 개발자들은 복잡하고 어려운 프로토콜보다는 간단한 XML 데이터를 HTTP 프로토콜로 보내고 쉽게 결과를 얻을 수 있기를 바란다는 것이다.


국내의 경우 이 사실을 잘 알고 있는지 SOAP을 이용해 오픈 API를 접근할 수 있게 한 사례는 없었다. 다음커뮤니케이션즈는 REST와 XML-RPC를, 네이버의 경우 일종의 REST(HTTP GET을 이용)를, 알라딘도 GET, POST를 이용해 질의를 던질 수 있게 되어 있다. [GET과 POST를 모두 질의에 사용하는 방식은 정확한 의미에서 REST라고 볼 수 없다]



매시업이란?



매시업은 오픈 API와 이야기가 나오면 빠지지 않고 나오는 주제이다. 매시업은 여러 오픈 API를 사용하여 새로운 서비스를 창출하는 것을 말한다. PC 환경에서 그래픽스 API, 수학 API 등을 이용해 화면에 그래프를 그릴 수 있는 것처럼, 매시업은 서로 다른 오픈 API를 이용해 시너지를 낼 수 있는 새로운 서비스를 만드는 행위이다.


네이버 지도 API를 이용한 국내 매시업 사례로는 XWIRE(http:// www.xwire.co.kr)가 있다. 해당 사이트를 접속해 보면 지도가 뜨고 위치를 지정하면 해당 위치의 지명에 대한 설명을 볼 수 있다. 필요하면 지도에 메모를 남기고 해당 메모의 URL을 얻을 수 있다. 여기서 XWIRE가 제공하는 서비스는 지도에 메모를 남기고 다른 사람과 공유하는 것인데, 지도는 네이버 가져오고 지명에 대한 정보는 구글에서 가져와 처리한다. ‘핵심’이라고 할 수 있는 메모 남기기 기능만 직접 구현해 넣은 것이다.


XWIRE가 오픈 API를 사용하지 않고 이 기능을 구현하려 했다면 상당한 시간이 걸렸을 것이다. 지도를 제작하거나 구글 같은 검색 엔진을 만드는 수고가 필요하기 때문이다. 그렇다고 임의로 네이버 지도를 긁어오면 저작권 문제에 부딪힐 것이다. 오픈 API가 없다면 구글이나 네이버와 개별적으로 계약 관계를 맺고 연동을 위한 작업을 하는 등의 불편함과 비용을 감수해야 한다.


오픈 API와 매시업이 보여주는 청사진은 서비스 아이디어만 뛰어나면 누구라도 쉽게 기존의 인프라(오픈 API)를 이용해 유용한 사이트를 구축할 수 있다는 것이다. 반대로 오픈 API를 제공하는 업체는 자신들의 콘텐츠의 제공 범위를 넓히고, 협력 관계를 구축해 궁극적으로는 새로운 수익 모델을 만들 수 있을 것이다.


[그림2] XWIRE.COM, 지도는 네이버, 검색은 구글에서 가져왔다



오픈 API가 넘어야 할 벽



결과부터 말하면 작년 장밋빛 청사진에 비해서 지금 국내 오픈 API는 정체 상태나 마찬가지다. 매시업 사이트의 수도 예상보다 저조하고(그나마 있는 매시업도 사업이 되기는 힘든 데모 수준이다), NHN과 다음커뮤니케이션, 알라딘의 오픈 API 사이트를 제외하고는 오픈 API 개발과 관련된 자료를 찾아보기도 어렵다.


앞에서 언급한 오픈 API의 매력과 새로운 사업 모델로서의 매시업 서비스가 주는 장밋빛 환상에도 불구하고 국내 오픈 API가 시작도 해보기 전에 정체되어 있는 이유는 무엇일까?


[1] 기술적 측면


일단 어떤 기술이 널리 쓰이기 위해서 가장 중요한 조건은 사용하기 쉽고 편리해야 한다는 점이다. 국내 오픈 API 사이트들을 보면 제공하는 API는 비교적 간결하고 이해하기 쉽다. 하지만 오픈 API를 이용하기 위한 관련 라이브러리 제공에는 아직까지도 부족한 점이 많다.


국내보다 오픈 API를 먼저 시작한 야후의 경우 자바스크립트, 플래시, 닷넷, PHP, 파이썬, 루비 등을 직접적으로 지원하고 있으며 편리한 라이브러리와 함께 풍부한 문서를 제공하고 있다. 이에 비해 국내 오픈 API 사이트들은 API의 명세서만 간단명료하게 나열하고 있을 뿐 이를 쉽게 이용할 수 있는 라이브러리 제공은 아직까지 찾아보기가 힘든 형편이다.


물론 고급 개발자라면 이런 부분들은 알아서 해결할 수 있을 것이라고 생각할 수도 있다. 하지만 매시업의 주체는 재미난 아이디어를 가진 ‘어떤 누구’라도 될 수 있어야 한다. 기술적인 진입 장벽에 묻혀서 창의적인 아이디어를 살릴 기회를 날린다면 이는 매시업의 발전을 저해하는 요소로 작용하기 때문이다. 따라서 전문적인 웹 개발자가 아니라도 쉽게 매시업을 만들어 볼 수 있을 정도로 쉬운 인터페이스를 제공할 필요가 있다.


[2] 정책적 측면


앞에서 언급한 기술적 측면보다 더 중요한 것은 정책적 측면이다. 현재 국내에서 오픈 API를 이용하기 위해서는 다음과 네이버 모두 사용자 키를 생성하고 이를 이용해 API를 호출해야 한다. 현재 두 업체 모두 하루 질의 수를 5000번으로 제한하고 있다. 그리고 공개된 오픈 API의 사용을 엄격히 비상업적인 용도로만 제한하고 있다. 두 곳 모두 상업적인 용도의 이용을 원할 경우 별도의 협상을 원하고 있다.


이 정책은 오픈 API의 보급을 가장 저해하는 부분이다. 네이버나 다음이 자사의 서비스를 오픈 API를 통해 열었다고는 하지만, 이런 열린 정책이 언제까지 계속될 것인지 아무도 장담할 수 없기 때문이다. 매시업 사이트 입장에서는 좋은 아이디어로 성공적인 사업 모델을 만들어내도 언제든지 대형 포탈의 이권에 따라 휘둘릴 수 있는 상황이기 때문이다. 갑자기 오픈 API 사용에 막대한 사용료를 부가한다면 매시업 사이트 입장에서는 속수무책인 셈이다.


국내 매시업 사이트는 결국 오픈 API를 제공하는 일부 대형 포탈에 종속될 수 있는 상황이다. 비슷한 규모의 오픈 API를 제공하는 곳이 단 두 곳뿐이고, 아직까지 ‘베타’라는 이름을 내걸고 명확한 운영 원칙도 발표하지 않은 상태이다. 상업적인 이용에 대한 가격 정책도 공개적으로 알려진 바가 없고, 그때그때 상황에 따라 유동적일 것이다. 이 환경에서 매시업 사이트는 영속성을 보장할 수 없는 위험한 사업이 된다.


반대로 오픈 API를 제공하는 업체의 입장도 다분히 이해가 간다. NHN과 다음이 제공하는 오픈 API는 대부분의 자사의 콘텐츠를 찾아서 보여주는 검색 API이다. 현재의 오픈 API는 필요한 데이터만 구조화된 데이터(XML, JSON 등)에 담아서 보내기 때문에 이들 포탈의 주 수입원인 광고를 실을 여지가 없다. 콘텐츠를 널리 알리고 매시업 사이트를 아군(홍보자)로 끌어들이는 부가 효과가 있다고 하더라도, 결국 이들 포탈의 오픈 API 제공은 광고 수익을 줄이는 효과가 있다.


결국 매시업 사이트는 오픈 API의 영속성과 독립성(한 번 공개한 오픈 API를 서비스 제공 업체의 상황에 따라 언제든지 바꾸거나 폐지하는 상황을 방지)을 원하고, 오픈 API 제공자는 안정적인 수익 모델을 원하는 셈인데 아직까지는 이 두 요구사항이 맞아떨어지지 않고 있는 것이다.



현재의 대안은?



사실 오픈 API와 매시업의 성공 사례는 미국에서도 많지 않다. 매시업 관련 자료를 제공하는 ProgrammableWeb의 자료를 인용하면 현재 총 1455개의 매시업 사이트가 등록되어 있다. 하지만 실제로 제대로 된 수익 기반을 마련한 곳은 많지 않고 대부분은 초보적인 수준의 실험에 머물고 있다. 이런 와중에 오픈 API의 가장 성공적인 사례로 꼽히는 곳은 다름 아닌 아마존이다.


아마존은 아마존 웹서비스(AWS, Amazon Web Service, http://www.amazon.com/webservices)를 2002년 7월에 이미 공개하고 성공적인 수익 모델까지 만들어 냈다. 그 결과 현재 아마존은 14만 명의 개발자와 수십만 협력 업체가 공존하는 아마존 생태계를 만들어낼 수 있었다.


아마존 생태계의 성공 요인은 아마존 제휴사(affiliate)들에게 수익을 배분해 주었다는 사실에 있다. 아마존 오픈 API를 통해 상품을 검색하고, 이들 제휴사를 통해 책을 구입할 경우 제휴사들에게 매출의 일정 부분을 나누어주는 구조를 만들었다. 이에 따라 수십만 개의 업체가 아마존 API를 이용해 아마존이 직접 닿지 못하는 고객들에게까지 상품을 보여주고, 판매해서 수익을 만들 수 있는 인프라를 구축한 것이다.


국내에서도 유사한 가능성을 보고 오픈 API를 내놓은 곳이 알라딘이다. 명확한 수익 구조가 없는 네이버, 다음과는 달리 알라딘은 도서 검색이라는 오픈 API가 곧바로 도서 구매라는 수익과 연결되는 구조를 가지고 있다. 현재 알라딘도 수익 배분 모델(TTB)을 가지고 있다. 아마존처럼 다른 매시업 사이트들이 사용하기 쉬운 API와 개발 환경을 만들어준다면 충분히 승산이 있을 것이다.


아직 오픈 API를 공개하지 않았지만 국내 인터넷 쇼핑몰들은 오픈 API를 이용해 직접적인 이득을 볼 수 있다. 상품을 쉽게 검색할 수 있는 API를 제공하고, 제휴 사이트들에게 적절하게 수익을 배분해주면, 이들 제휴사를 통한 매출 상승효과가 있을 것이다. 이처럼 오픈 API는 단기적으로는 포탈보다는 쇼핑몰 회사들이 더 관심을 가져야하는 기술이 아닌가 싶다.



지도 기반의 매시업?



많은 사람들이 매시업의 킬러 애플리케이션으로 지도 기반 매시업을 이야기하고 있다. 실제로 지금까지 구현된 매시업의 절반 이상이 전부 구글 맵(Google Maps), 야후 맵(Yahoo Map), 버추얼 얼스(Virtual Earth), 네이버 맵과 같은 지도 기반 오픈 API를 바탕으로 다른 부가 정보를 제공하는 방식이다. 예를 들어 하우징맵스(http://www.housingmaps. com/)는 구글 맵의 지도를 바탕으로 각종 부동산 정보를 제공한다.


[그림3]HOUSINGMAP.COM 지도 위에서 부동산 정보를 제공


하지만 난립하는 지도 기반 매시업들을 보고 있으면 매시업에 대한 또 다른 의구심이 든다. 누구나 아이디어만 있으면 쉽게 구축할 수 있는 바꿔 말해서 매시업 사이트는 진입 장벽이 매우 낮다는 말이다. 누구나 좋다고 생각하는 간단한 아이디어라면, 다른 사람들도 얼마든지 같은 오픈 API를 이용해 짧은 시간 안에 비슷한 사이트를 구축할 수 있기 때문이다.


매시업 사이트는 결코 ‘핵심’이 없이 다른 사이트의 정보를 적절히 짜깁기하는 사이트가 아니다. 매시업의 개념은 어디까지나 핵심 기능만 집중적으로 개발하고 부가적인 기능은 외부 데이터를 이용하는 데 있다. 예를 들어 지도 정보를 가져와서 부동산 정보를 제공하는 매시업 사이트를 만들고 싶다면, 부동산 정보를 잘 정리해서 보여주는 핵심 역량을 갖춰야만 성공할 수 있다. 그렇지 않다면 멋진 아이디어로 출발한 블루 오션이 순식간에 레드 오션으로 바뀌는 경험을 하게 될 것이다.


지도 서비스는 어느 정도 수익 모델이 마련된 상태이다. 구글 맵의 경우 지도를 검색하면 스폰서 링크 등을 통해서 지도에 광고를 보여주고 있다. 아직 구글 맵 API를 통한 지도에는 광고를 보여주지 않고 있지만, 이는 광고를 통해 충분히 수익을 낼 수 있는 부분이다. 키워드를 통한 광고보다 특정 지역 광고가 더 광고 대상을 정확하게 지정할 수 있기 때문이다.


현재 오픈 API의 또 다른 문제점은 오픈 API에 상응하는 오픈 플랫폼이 없다는 사실이다. 매시업 사이트가 아닌 일반 개인들은 오픈 API의 혜택을 매시업 사이트를 통해 간접적으로 얻을 수밖에 없다. 예를 들어 앞서 소개한 블로그 작성 오픈 API를 이용하면 데스크톱 용 리치 어플리케이션에서 글을 작성하고 블로그에 바로 전송할 수 있지만, 아직까지 데스크톱에서 오픈 API를 쉽게 이용할 수 있는 프로그램은 많이 나와 있지 않다.


한 걸음 더 나아가면 PDA나 개인화된 단말에서도 풀브라우징 없이 원하는 정보를 쉽게 읽어오는데 오픈 API가 유용할 수 있다. 오픈 API는 렌더링에 필요한 HTML이나 CSS 같은 부가 정보 없이 원하는 정보를 정확히 주기 때문이다. 이처럼 다양한 장비에서 웹 접근성 향상을 위한 방안으로서 오픈 API도 적극적으로 검토해야 할 것이다.



■ 참고 문헌


[1] 알라딘 도서 상품 검색 API

http://www.aladdin.co.kr/ttb/wguide.aspx?pn=apiguide

[2]네이버 오픈API

http://openapi.naver.com/index.nhn

[3]다음 오픈 API

http://dna.daum.net/apis/about

[4]Yahoo! Serch Web Services

http://developer.yahoo.com/search/




























Posted by 버터백통