
다음커뮤니케이션과 NHN이 공동으로 “
2007 대한민국 매쉬업 경진대회”를 개최합니다. 이번 대회의 개최를 적극 환영하며, 이전 “
정체되어있는 Open API와 Mashup 서비스” 포스트에서 밝혔던 아쉬움이 이번을 기점으로 많이 변하기를 기원합니다.
스마트플레이스에서는 이번 대회에 조금이나마 도움이 되고자 기획 포스팅을 준비하고 있습니다. 기본적인 설명을 비롯한 실전 예제들을 개발하고, 여러분들께 코드까지 공개하고자 합니다. 오늘은 그 첫 번째로 국내 Open API의 현황에 대해 이야기하고자 합니다.
API vs. Open API
고전적인 의미의 API(Application Programming Interface)는 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지를 의미합니다. 즉, 일종의 블랙박스로 볼 수 있는 기능들의 집합인 것입니다. 실제 내부의 구현은 어떻게 되는지 알 수 없으나 API가 요구하는 값을 전달하면, 그에 맞는 결과값을 반환해주는 구조로 되어 있습니다. 그렇기 때문에 프로그래머들은 이들 API만 조합하여도 원하는 프로그램을 제작할 수 있습니다.
이런 API가 하나의 PC를 벗어난 모습이 바로 Open API라 할 수 있습니다. Open API는 특정기능 또는 콘텐츠를 가진 서비스 업체가 자신들의 서비스에 접근할 수 있도록 외부에 접근방법을 공개하는 것을 의미합니다. 이는 해당 서비스 업체를 중심으로 새로운 인터넷 생태계를 구축한다는 중요한 의미를 가집니다. 더불어 API를 이용하여 새로운 프로그램을 만드는 것처럼 매쉬업은 이런 Open API를 이용하여 새로운 서비스를 개발하는 형태를 의미합니다.
즉 Open API는 해당 서비스로 접근하기 위한 규약 또는 표준적인 인터페이스를 의미하는 것이고, 매쉬업은 이들 Open API를 이용하여 새로운 서비스를 만드는 것을 의미합니다.
Google, Microsoft, Amazon에서는 이미 여러 Open API를 공개하였고, 이들을 활용한
많은 수의 매쉬업 서비스를 찾아볼 수 있습니다. 국내에도 네이버, 다음, 알라딘과 같은 업체들이 자사의 콘텐츠를 외부에서 사용할 수 있도록 2006년부터 Open API를 공개하고 있습니다. 각 서비스 사이트를 통해 이들 API를 활용하는 예제들을 살펴볼 수 있습니다.
국내 Open API 비교하기
현재 가장 많이 알려져 있는 네이버, 다음, 알라딘에서 제공하는 Open API들을 간단히 비교해 보겠습니다.
실제 매쉬업 서비스를 구축할 때 사용할 수 있는 유용한 API들만 정리해 보았습니다. 서비스 제공 업체가 포털 사이트이기 때문에 자사의 콘텐츠를 접근할 수 있도록 다양한 검색 API를 제공하고 있는 것을 확인할 수 있습니다.
각 업체별 Open API의 특징적인 항목을 살펴보면 다음과 같습니다. 네이버의 경우 방대한 네이버의 지식iN 검색, 현재 시간의 네티즌 의견을 보여주는 실시간 검색어, 지도 API가 있습니다. 다음의 경우 카페 검색, 뉴스 검색, 설명문까지 출력되는 일본어 사전이 있습니다. 알라딘의 경우 자사 서비스에 축적된 모든 상품을 노출하고, 이를 TTB 서비스에 연계하고 있습니다.
Open API를 실행하기 위해서는 GET/POST 방식으로 해당 서비스 URL에 요청해야 합니다. 이때 일반적으로 각 서비스에서 할당 받은 Key 값을 전달해야 합니다. 다음과 네이버의 경우 해당 서비스의 쿼리를 하루에 5,000회로 제한하고 있는 부분도 실제 서비스 구축에 주의해야 하는 부분입니다.
이들 Open API의 실행결과는 보통 RSS, XML, JSON 방식 중 하나로 반환해 줍니다. 네이버의 경우 RSS 형식으로만 결과 값을 반환하고, 다음의 경우 RSS, XML, JSON을 모두 지원하며, 알라딘의 경우 RSS와 JSON 방식을 지원합니다. 이들 Open API가 공통적으로 지원하는 반환 형식은 RSS 형식이므로 추후 구현에 참고하시기 바랍니다.
왜 Open API인가?
그렇다면 왜 Open API를 사용하고, Open API의 중요한 의미는 무엇일까요? 외형적으로 본다면 자신의 서비스 안에서 Open API를 제공하는 곳의 콘텐츠나 기능을 구현할 수 있는 장점을 가집니다. 예를 들어, 이곳 스마트플레이스에서 네이버나 다음의 검색 결과를 사용할 수 있는 것입니다.
Open API가 없다면 해당 서비스 사업자와 직접 계약을 맺어 서비스를 제공하던가, iFrame과 같은 편법으로 구현하여야만 했던 부분들입니다. 자신의 서버에서 어떠한 언어로 구현하더라도 네이버, 다음, 알라딘의 콘텐츠를 가져와 사용자들에게 보여줄 수 있다는 것은 상당히 매력적인 일인 것입니다.
예를 들어 여행사이트를 개발한다고 생각해 봅시다. 사이트를 방문하는 고객들에게 보다 편리한 서비스를 제공하기 위해 항공권, 렌터카, 보험, 호텔 예약과 같은 부가 서비스를 개발할 예정입니다. 하나의 여행 사이트 개발에 이들 외부 서비스를 직접 개발한다면 아마 엄청난 비용이 발생할 것입니다.
그러나 각각의 서비스 업체들이 예약과 관련된 Open API를 제공한다면, 이 여행 사이트에서 다른 서비스 사이트로의 이동 없이 해당 기능을 구현할 수 있습니다. 이런 환경이 될 때 여행 사이트는 예약 업무 이외의 자신들의 고유 서비스 개발에 충실할 수 있고, Open API를 이용한 예약 서비스도 편리하게 개발하여 제공할 수 있는 것입니다.
아래의 네이버, 다음, 알라딘의 책 검색 예제를 실행하여 보십시오. 이들 모두 스마트플레이스에서 호스팅되는 페이지입니다. 그러나 각 서비스 업체에서 제공하는 정보를 가져오고, 검색할 수 있습니다. 이것이 바로 Open API를 사용하는 이유인 것입니다. 더불어 Open API를 제공하는 업체는 자신들의 콘텐츠를 소비하는 대상을 넓히고, 나아가 추가적인 수익을 발생할 수 있는 접점이 되는 것입니다.
[
네이버책검색]
[
다음책검색]
[
알라딘책검색]
이번 포스팅을 통해 국내 Open API에 대해 알아보았습니다. 더불어 실제 예제 페이지를 통해 어떻게 실행되는지 그 결과를 살펴보았습니다. 매쉬업을 위한 첫 걸음을 내디딘 것입니다. 다음 포스팅에는 이번 포스팅에 사용한 예제들의 코드를 여러분들에게 소개하고, 매쉬업을 위한 서비스 모델을 검토해 보도록 하겠습니다.