본문 바로가기

닷컴's_IT/Web

코드로 살펴보는 Open API 프로그래밍과 매쉬업 준비하기

본 내용은 스마트플레이스에 등록된 네오비스님의 글입니다.

다음과 네이버가 함께하는 첫 번째 매쉬업 캠프가 성공리에 진행되었다고 합니다. 국내 개발자들의 Open API와 매쉬업에 대한 높은 관심을 보여준 행사라 할 수 있습니다. 그렇다면 매쉬업 서비스를 개발하고자 한다면 무엇부터 시작해야 할까요? 바로 Open API에 대한 이해와 이를 활용한 프로그래밍이라 할 수 있습니다.
 
이전 포스트를 통해 국내 Open API의 현황과 필요성에 대한 이야기를 하였습니다. Open API에 대해 이해하였다면 그 다음으로 사용하고자 하는 Open API가 어떻게 정의되어 있고, 동작하는지 확인하여야 합니다. 이전 포스트에서 소개한 네이버, 다음, 알라딘의 Open API를 이용하는 책 검색 페이지를 통해 하나씩 살펴보도록 하겠습니다.
 
Open API를 이용한 개발 순서는 다음과 같습니다.
1) Open API 확인: Open API는 해당 서비스 제공자마다 모두 다릅니다. Open API를 제공하는 서비스 사이트를 찾아 자신에게 적합한 API를 확인하여야 합니다. 대부분 예제 페이지를 제공하기 때문에 직접 실행 결과를 확인해 보시기 바랍니다. 이번 예제에서는 책 검색 API를 사용하였습니다.
 
2) 서비스별 인증키 발급: 대부분의 Open API 서비스 제공 업체들은 자사 서비스에 대한 사용자 관리를 위해 인증키를 부여하고 있습니다. 더불어 이 인증키를 기준으로 하루에 실행할 수 있는 쿼리수를 제한하기도 합니다. 다음과 네이버의 경우 일반적인 하루 쿼리 수는 5,000회로 제한되어 있는데 이 인증키가 그 식별의 역할을 하고 있습니다. 또한 인증키가 있어야만 Open API가 실행되니 각 서비스 사이트에서 해당 정보를 확인한 후 인증키를 발급받으시기 바랍니다.
 
3) Open API 스펙 확인: Open API를 제공하는 업체마다 데이터의 커스텀 네임스페이스(Namespace)를 정의하고 있습니다. RSS 스펙에 없는 필드에 대해서는 업체별로 이름 정의가 다르기 때문에 코드 작성 이전에 미리 확인해야 합니다. 유사한 Open API라고 할지라도 특정 필드에 대해서는 데이터가 제공되지 않는 경우와 동일한 데이터이지만 필드 이름이 다른 경우가 있습니다. 그러므로 각 서비스 업체가 제공하는 스펙을 확인하고, 그에 맞는 이름을 사용하여야 합니다.
 
4) 구현 및 테스트: 실제 코드를 작성하는 단계입니다. 대부분의 Open API가 RSS, XML, JSON과 같은 XML 기반의 데이터 형식으로 출력하고 있습니다. 어떤 언어를 사용하여도 무방하나 XML과 RSS 스펙에 대한 기본 지식은 가지고 작업하는 것이 필요합니다. 이런 과정을 거쳐 코드 작성이 완료되었다면 해당 Open API는 그에 적합한 데이터를 출력하고, 화면을 통해 실행 결과를 확인할 수 있습니다.
 
그럼 실제 코드를 한번 살펴보도록 하겠습니다. 이번 예제는 ASP.NET과 C# 언어로 작성해 보았습니다. 어떠한 언어를 사용해도 무방하니 전체 코드 흐름을 이해하는데 참고하시기 바랍니다.
 
네이버, 다음, 알라딘에서 공통적으로 사용할 수 있는 출력 포맷은 RSS입니다. 이를 위해 RSS 출력 결과를 수집하는 코드를 작성하였으며, 추후 매쉬업 활용을 위해 단순 데이터 출력이 아닌 각 항목(Item)을 클래스로 정의하여 컬렉션(Collection) 형식으로 저장하고 있습니다. RSS 수집과 관련된 주요 함수는 다음과 같습니다.

 
RssChannel은 RSS의 헤더부분인 <channel> 노드 저장을 위한 클래스이며, RssItem은 RSS의 반복되는 <item> 노드 저장을 위한 클래스입니다. LoadFromUrl() 함수를 통해 Open API를 호출하고, PopulateRssData() 함수를 통해 각 데이터를 해당 클래스의 인스턴스에 저장합니다.
 
화면 구성을 위해 사용한 주요 함수들은 다음과 같습니다.
 
 
네이버 책 검색 페이지의 코드입니다. 앞서 소개한 인증키를 key 변수에 정확하게 입력하여야만 Open API가 동작하니 주의하시기 바랍니다. searchUrl은 Open API 호출을 위한 URL로 서비스마다 별도 URL을 제공하고 있습니다. 각 API별로 호출 URL이 다를 수 있으니 사전에 꼭 확인해야 하는 항목입니다. 이외의 다른 코드들은 다음과 알라딘의 예제와 동일합니다.
 
네이버 책 검색 – [실행하기] [소스코드다운로드]
다음 책 검색    – [실행하기] [소스코드다운로드]
알라딘 책 검색 – [실행하기] [소스코드다운로드]
 
이렇게 하여 Open API를 사용하여 실제 코드를 작성하는 과정까지 살펴보았습니다. 이제 매쉬업 서비스 개발을 위한 첫 걸음을 시작하였습니다. 이번 예제와 같이 Open API 하나를 단순히 이용하는 서비스를 매쉬업이라고 이야기하기에는 조금 무리가 있습니다. 진정한 의미의 매쉬업이란 Open API에서 제공하는 데이터와 자신의 아이디어를 결합하여 새로운 서비스 모델을 만들어 내는 것입니다.
 
다음 포스팅에서는 실제 매쉬업 서비스 개발을 위해 2개 이상의 Open API를 섞어서 새로운 페이지를 만들어 보겠습니다. 네이버의 실시간 인기 검색어 API와 다음의 여러 검색 API를 활용하는 모델이 될 것입니다.
 
Open API와 매쉬업은 서비스 제공자와 개발자 모두에게 큰 의미를 제공합니다. 개발 자체도 물론 중요하지만 그 뒤에 숨은 정보 공유와 서비스 제공자를 중심으로 한 새로운 인터넷 생태계가 생성된다는 의미를 다시 한번 새겨 보시기 바랍니다.
 
참고. Windows XP Professional 이상 버전에서 IIS 6.0과 .NET Framework 2.0이 설치되어 있다면 이번 예제를 바로 실행할 수 있습니다. 이번 예제 소스코드는 CC 라이선스에 따라서 사용할 수 있습니다.

'닷컴's_IT > Web' 카테고리의 다른 글

MS Live Writers 발표~~^^  (0) 2008.04.13
국내에서 웹 2.0 사이트들이 없는 이유  (0) 2008.03.28
미니블로그 '트위터'  (2) 2008.03.28
me2day  (0) 2008.03.28
웹 개발 도구 : X-인터넷  (0) 2008.03.28