- Open API Introduction: Yahoo! Pipes - 2008 컴퓨터공학실험( I ) 9주 실습강의 - Open API Introduction: Yahoo! Pipes - 2008 컴퓨터공학실험( I )
Before Open API 특정 기능 혹은 컨텐츠를 보유하고 있는 웹 서비스를 사용자가 원하는 다른 형태로 접근하고자 할 때, 해당 정보를 요청하여 받아올 수 있는 방법 서비스에 의존적인 출력결과를 분석, Parsing 하여 원하는 정보만을 추출하는 방법을 알아야 함 이를 위해 요청 과정과 결과물을 사전에 분석하거나 편법을 사용해야 함 분석은 많은 시간과 노력을 필요로 함 이러한 분석으로 데이터를 얻는다고 할 지라도, 최악의 경우 해당 서비스의 유지 보수를 위한 변경이 일어날 시 분석을 다시 해야 함 일종의 Hack으로 인한 법적인 문제를 피해가기 힘들다 사용자는 자신이 원하는 의도로 서비스를 사용하기 위해 많은 장애물을 넘어야 함 여담으로, 법적인 문제를 피해가기 위해서는 업체와 직접 계약을 맺는 경우가 가장 일반적이라고 할 수 있습니다.
Open API API – Application Programming Interface 운영체제 – 응용 프로그램 간 통신에 사용되는 언어 / 메시지 블랙박스 : 내부 구조를 알 수는 없지만 인터페이스에 맞추어 값을 전달하면 결과를 반환 개방형 프로토콜을 사용하여 웹 사이트와 상호작용을 가능하게 하는 기술의 집합 원격지에 존재하는 특정 서비스로 접근하기 위한 규약을 외부에 공개하는 것 Social Media, Web 2.0에 대한 트렌드가 형성되면서 웹 사이트가 사용자 친화적인 방법으로 상호작용 할 수 있는 솔루션의 의미로 사용 6주차 실험에서 있었던 Web Service의 인터페이스를 만들고 이 인터페이스에 접근할 수 있는 요청 방법을 외부에 공개하면 이 역시 Open API가 됩니다 왜 서비스를 접근하는 방법을 밖으로 알리느냐에 대한 이유는 다음과 같은 것들로 설명할 수 있습니다: 첫째, 서비스 업체의 기준점에서 보았을 때, 자신의 컨텐츠를 소비하는 대상을 넓힐 수 있습니다. 둘째, 서비스 개발자의 기준점에서 보았을 때, 외부 서비스 업체와의 연동을 위해 각각의 업체를 위해 무리하게 설계와 인터페이스를 재 구성하는 것을 피할 수 있습니다. (을의 입장이라면 이야기가 다르긴 합니다만..) 셋째, 사용자의 기준점으로 보았을 때, 자신이 원하는 형태로 컨텐츠를 손쉽게 가공하여 사용할 수 있습니다. 물론 단순한 최종 소비자의 입장보다는, 이를 적극적으로 받아들이고 가공하려는 프로슈머의 입장을 대변하긴 합니다만, 이러한 가공 결과가 더 많은 최종 소비자로 연결될 수 있다는 점을 감안하면 충분히 매력적인 사항입니다. 물론 이에 대한 Side effect 역시 존재하기 때문에, 서비스 제공자의 입장에서는 이를 적절하게 제약하는 기준을 가지고 있어야 하겠지요.
국내의 Open API 제공 서비스 검색 분야는 Naver, Daum에서 제공 Social Network Service 분야에서도 Open API를 제공 Micro Blogging / SNS, 미투데이 : http://me2day.net (API 사용설명서 : http://codian.springnote.com/pages/89009) 도서 / 음반 판매 서비스 및 리뷰 사이트 알라딘 TTB : http://blog.aladdin.co.kr/ttb/1631066 레뷰(revu) : http://www.revu.co.kr/OpenAPI 지도 네이버, 야후! 지도 API 사용, 국내 지도 사용 가능 국외를 대상으로 하는 제공 서비스는 제외했습니다
Mashup (Web application hybrid) 일반적인 응용 프로그램 해당 운영체제 / 라이브러리의 API를 사용하여 프로그래밍 Mashup Open API를 사용하여 만든 새로운 서비스 또는 이러한 서비스를 개발하는 형태를 총칭 대표적인 예로는 Google Maps를 사용한 HousingMaps(http://www.housingmaps.com)가 Google Open API의 폭발적인 사용을 일으킨 점을 들 수 있음 Open API 제공 업체가 받는 주목 효과가 작용 HousingMaps의 경우 초창기 Open API(~2005년)의 대표적인 활용예가 되었기 때문에 언급한 것이고, 이제는 수 많은 Mashup이 존재하기 때문에, 다른 예를 주변의 웹사이트에 충분히 볼 수 있습니다. 외국의 활용 예는 http://www.programmableweb.com/mashups 페이지를 참조하시면 도움이 될 것입니다. 매시업을 제공하는 사이트들의 목록 등을 볼 수 있거든요.
Open API 접근 Open API의 호출은 대부분 HTTP GET을 사용 인자(Arguments)의 전달은 예약어(?, &) 와 인자 명, 값을 사용 HTTP POST를 통해 인자를 전달하는 경우도 있음 예) http://search.naver.com/search.naver?where=nexearch&query=Open+API (→ where에 nexerch 값을, query에 Open API 라고 전달) 컨텐츠 제공자는 무분별한 API 호출을 막기 위한 여러가지 수단을 사용 API key : Open API를 사용하는 개발자/사용자에게 부여하는 Unique한 키 값으로, 이를 통해 사업자는 사용자 확인 및 제한, 응용 프로그램 확인 등을 할 수 있음 필요에 따라 사용자 key, Application key 등을 추가로 발급받아서 접근하기도 함 호출시에 이러한 Key를 인자로 전달하지 않으면 요청을 거부 가입자 개개인 마다 사용자 키를 받게 하여, ID + Password를 사용하는 대신 손쉽게 생성/변경할 수 있는 사용자 key를 부여하여, 해당 서비스의 매시업 사용자가 추가적인 인증을 거치지 않고 매시업을 통해 즉각적으로 서비스를 사용할 수 있도록 하기도 함
Yahoo! Pipes (1) Mashup editor의 일종 Google Mashup Editor, Microsoft Popfly, IBM Assemble Zero 코드를 직접 작성하지 않고 Mashup을 개발 할 수 있도록 도와주는 플랫폼
Yahoo! Pipes (2) The Library : 사용할 수 있는 모듈들의 집합소
Yahoo! Pipes (3) Library의 모듈을 Drag-and-Drop으로 배치 각각의 모듈은 입력 및 출력을 가짐 User Inputs 의 경우는 입력 포인트가 없음 각각의 모듈은 입 / 출력을 연결하여 연동 만들어진 Pipe는 저장하여 언제든지 사용할 수 있음
Yahoo! Pipes (4) 예제: 간단한 RSS Feed Reader User Inputs → URL Input 선택, Sources → Fetch feed 선택 Operators → Sort 사용하여 내림 차순 정렬 Sort 결과를 Pipe Output으로 연결, 상단의 Run Pipes로 실행가능
이 주의 실험 Google 뉴스 한국 검색 Pipe 작성 사용자의 입력을 받아 검색된 뉴스를 표시하는 pipe 작성 제목 중복 기사 제거, 날짜에 대해 내림차순 정렬