대한민국 매쉬업경진대회

매쉬업을 만들어 보자! 본문

2007년 행사

매쉬업을 만들어 보자!

알 수 없는 사용자 2007. 2. 10. 22:39
지난번에 매쉬업을 위해서는 좋은 아이디어가 필요하다고 이야기했습니다. 오늘은 오픈 API를 통해 매쉬업을 만들기 위해서 어떤 '기술 지식'들이 필요한지 설명해 드리겠습니다. 매쉬업은 여러 오픈 API를 사용하는 것이긴 하지만 각 오픈 API는 대개 '공개 표준(Open Standards)'을 따르고 있기 때문에 두어 가지 기술만 익히고 나면 개발이 그리 어렵지 않습니다.

우선 매쉬업도 일종의 SW 개발에 포함되므로 '개발 언어' 지식이 필수적입니다. 웹 서비스로 만들기 위해서는 ASP, PHP, Ruby on Rails, Java, Python 같은 언어를 사용합니다. 위젯이나 플러그인을 만들기 위해 JavaScript만으로도 개발하기도 합니다. 좀 더 안정성이 높고 대용량의 서비스를 만들려면 조금 더 고급 지식이 필요하지만, 기본적인 지식 만으로 오픈 API를 다루는 데 문제가 없습니다. 저는 시작 단계에서 PHP나 JavaScript 같은 언어를 추천합니다.

우리가 생각한 아이디어는 회사 근처에 있는 맛집을 찾아 내는 서비스를 만드는 것이었습니다. 이 아이디어를 구현하기 위해 어떤 절차를 거쳐야 할지 상세하게 알아보겠습니다.

단계 1. API 선택 및 인증 키 받기
자! 우리의 아이디어에 맞는 오픈 API는 무엇일까 한번 생각해 볼까요? 오픈 API 종류를 한번 쭉 훑어 보면 대략 괜찮은 API를 선택할 수 있습니다. 네이버 지도 위에 표시한 식당에 대해 Daum 카페의 검색결과를 통하면 일단 좋은 식당을 찾을 수 있을 것 같습니다.

대개 오픈 API 서비스 제공자들은 자신들의 오픈 API를 사용하는 사람들을 확인 하기 위해 인증키라는 것을 발급하고 오픈 API를 이용할 때 마다 이것을 제시하도록 하고 있습니다.

Daum 오픈 API 인증키
Naver 검색 및 지도 API 인증키 신청 화면을 통해 인증키를 받을 수 있습니다. 각 인증키는 개인별 인증을 거쳐 서비스 마다 발행되기도 하고 일일 사용 트랙픽을 제한하기도 합니다. 이는 서비스 제공자가 이용자를 식별하고 최적의 서비스를 제공하기 위한 것입니다.

그렇다면, Daum과 Naver에 각각 지도 API카페 검색 API의 인증키를 하나씩 골라야 합니다. 만약 그 위치를 위성 사진으로도 보고 싶다면 Google Maps API의 인증키도 하나 더 받아야 겠지요.

단계 2. 호출과 응답
이제 각 오픈 API를 사용하는 방법을 간단하게 살펴 봅시다. 오픈 API는 표준적인 방식을 거쳐 호출과 응답을 하도록 구성되어 있습니다. 흔히 Give and Take입니다. 뭘 달라고 요청 하면 결과를 보내 주는 식이지요.

호출을 할 때 사용하는 가장 흔한 방식은 흔히 CGI 호출에 사용하는 REST 방식입니다. 예를 들어 http://get/give?what=query 라고 하면 what이라는 값에 query에 해당 되는 것을 달라는 의미입니다. 각 개발 언어에서 REST를 처리하는 것은 일반적인 CGI 처리와 똑같으며 매우 쉽습니다. (PHP에서는 $_GET['what']이라는 변수에 query라는 값이 담겨져 있습니다.) 또 다른 방식은 XML-RPC 방식입니다. 이것은 기존 HTTP 프로토콜에 호출하는 내용을 XML 메시지를 전달하는 방식 입니다.

흔히 사람들은 적게 주고 많이 받기를 좋아합니다. 오픈 API도 간단한 호출에도 많은 종류의 데이터 응답을 해 줍니다. 그런 경우 좀 더 프로그램 언어로 이해하기 쉽도록 표준화된 방식으로 응답합니다. 가장 흔한 것이 XML 방식으로 제공해 주는 것이지요. HTML도 일종의 XML입니다. 또 다른 방식은 우리가 블로그에서 최신 정보를 전달해 줄 때 사용하는 RSS 방식입니다. 이 또한 우리가 읽기 쉬운 방식으로 데이터를 정리해서 보내 줍니다. 결과를 좀 더 빠르게 해석하게 간단한 규칙만을 가지고 만든 JSON이라는 방식도 최근에 유행하는 방법입니다.

아래 두 가지 예제는 아주 간단한 몇 가지 처리 방법입니다.

단계 3. 오픈 API 골고루 섞기 (Mash-up)
자! 이제 오픈 API들을 잘 다룰 수 있게 되었습니다. 그 다음 할일은 각 오픈 API를 잘 섞는 일입니다. 사용자들이 이 서비스를 이용하기 쉽도록 만드는 것입니다. 각 오픈 API를 호출하고 응답을 해석하는 공통 인터페이스를 만들어 두면 매우 쉬울 것입니다.

그렇게 해두면 언제든지 서비스 중간 중간 데이터를 받아 올 때 간단한 함수 재사용으로만도 쉽게 API를 사용할 수 있겠지요. XML, RSS, JSON을 간단하게 해석하는 라이브러리를 찾아서 사용하면 매우 유용할 것입니다.

단계 4. 가장 중요한 나만의 것 만들기
오픈 API를 섞기만 했다면 그게 매쉬업 일까요? 물론 기존의 오픈 API가 제공하는 서비스가 아닌 독창적이고 유일한 서비스이니 창의적인 서비스라고 부를 수 있습니다. 하지만, 여러분 만의 아이디어를 가미한다면 더 좋겠지요.

우리의 아이디어는 회사 근처에 맛있는 식당을 찾는 것입니다. 네이버 지도 위에 식당을 표시하고 Daum 카페 검색 결과로 그 식당을 어느 정도 평가할 수는 있지만, 그렇게 추천 받은 사람이 다녀와서 후기를 올릴 수 있다면 더 좋겠지요. 그렇게 되면 여러분의 회사 근처 맛집 찾기 서비스는 더욱 더 빛을 발하게 되고 사용자가 늘 수 있습니다.

아직도 어렵고 이해가 잘 안되실 겁니다. 하지만, 모르는 것을 알아간다는 즐거움에 동참하셔서 나의 아이디어를 구현해 보는 짜릿한 감동을 느껴보시기 바랍니다. 여러분이 공부한 것을 매쉬업 캠프에서 직접 확인해 보세요.