• 프로 웹 2.0 매쉬업

  • 레이몬드 이 지음
  • 박천구 옮김

  • 오픈소스 & 웹 시리즈 _ 012
  • ISBN: 9788990939218
  • 35,000원 | 2009년 08월 27일 발행 | 824쪽



매쉬업의 세계로 여러분을 초대합니다.

구글맵, 아마존, 플리커 같은 웹사이트는 여러 유용한 정보들을 재조합해서 서비스하는 수천 개의 매쉬업을 제공하고 있습니다. 여러 사이트에서 제공하는 요소들을 조합함으로써 훨씬 다양하고 재미있고 편리한 정보를 얻을 수 있습니다. 바로 이러한 매쉬업은 기존의 웹이 나아갈 방향을 제시해 주고 있습니다.

『프로 매쉬업 2.0』에서는 여러분이 개발하는 애플리케이션에서 URL, 태그, RSS 피드를 어떻게 사용하는지, 또 어떻게 API와 데이터를 조합하여 매쉬업을 생성하는지 등 매쉬업 서비스를 만드는 방법을 다양한 예제를 통해 쉽고 체계적으로 알려줍니다. 이 책을 끝까지 읽었을 때쯤이면 웹에 존재하는 어떠한 데이터 소스라도 여러분 마음대로 사용할 수 있게 될 것이며, 이러한 데이터를 조합하여 독특하고 흥미로운 여러분만의 매쉬업을 개발할 수 있게 될 것입니다.

특별부록으로는 국내 저자가 쓴 『아이폰 매쉬업 사이트 만들기』와 『트위터 기반 매쉬업 개발하기』를 추가하였습니다. 부록의 예제를 통해 최근 이슈가 되고 있는 아이폰과 트위터를 이용한 매쉬업 개발에 대한 이해를 한층 높여 줄 것입니다.

최근의 프로그래밍 환경은 다양한 데이터를 제공하는 오픈 API들이 늘어남에 따라 어떻게 데이터를 찾아내느냐보다는 어떻게 데이터를 조합하느냐 하는 주제로 옮겨가고 있습니다. 조금 늦긴 했지만 이제 국내 서비스 환경에서도 해외 서비스들의 변화에 발맞추어 오픈 API들을 제공하여 오픈 플랫폼으로의 진화를 시도하고 있고, 심지어 엔터프라이즈 환경의 솔루션들 역시 API를 사용한 매시업을 도입하고 있습니다.

『프로 매쉬업2.0』은 이러한 오픈 API를 사용하여 유용한 서비스를 빠르게 생성해내는 매쉬업에 대한 내용을 다룹니다. 책에서 설명하는 API로는 구글(구글 맵, 구글 어스, 구글 캘린더, 구글 스프레드쉬트, 블로거, 피드버너), 마이크로소프트(버추얼 어스, 라이브 서치), 야후(야후 맵, 야후 로컬 검색, 야후 업커밍), 아마존 Associates Web Service, 플리커, 딜리셔스, 위키피디아, 오픈오피스 등의 API와 국내 사용자들에게는 잘 알려져 있지 않은 하우징맵, 크래이그리스트, 캐노티, 카약, 30boxes.com 등의 API도 다룰 정도로 실로 방대합니다. 하지만 간결하고 깔끔한 예제를 들어 설명하므로 너무 어렵지도 복잡하지도 않게 잘 풀어가고 있습니다. 가히 현재까지 출판된 매쉬업 관련 서적 중에 가장 깊이 있고 폭넓은 내용을 다루고 있다고 해도 과언이 아닐 듯합니다.

이뿐만 아니라 여러분의 서비스를 매쉬업과 공유에 최적화시킬 수 있는 방법과 RSS, Atom, 마이크로포맷, RDFa 등의 포맷, 태깅과 포크소너미와 같은 주제도 놓치지 않고 설명하고 있습니다. 이 책의 약점이라면 오히려 너무 방대하다는 것이 아닐까 싶습니다.

이 책은 매쉬업을 개발하려는 개발자, REST 기반 오픈 API를 설계하려는 아키텍트 등을 염두에 두고 쓰여졌습니다. 예제에 사용된 코드는 주로 PHP, Ajax, Python이지만 HTML, CSS, 자바스크립트, 그리고 적어도 하나의 서버 측 프로그래밍 언어에 대한 지식이 있는 개발자라면 언어에 구애 받지 않고 쉽게 읽을 수 있을 것입니다.

이 책은 각 주제들에 대해 다음과 같은 네 가지 구성으로 설명하고 있습니다.

  1. 프로그래밍하지 않고 정보를 조합하기

    제목에서 알 수 있듯이, 이 섹션은 프로그래밍 관련 지식을 필요로 하지 않습니다. 예제를 통해 매쉬업 등에 사용되는 용어를 설명하고 플리커나 딜리셔스와 같은 사이트가 어떻게 동작하는지 설명하여 여러분이 이들 사이트에서 원하는 것을 최대한 이끌어 낼 수 있도록 이해를 돕습니다. 또한 야후 파이프와 같은 브라우저 기반 매쉬업 툴을 소개합니다.

  2. API를 사용하여 단일 웹애플리케이션을 조합하기

    플리커 API를 프로그래밍 레벨에서 설명하며 이러한 주제를 기타 API에 대한 설명과 자바스크립트 위젯으로 확장해나갑니다.

  3. 매쉬업 작성하기

    이 섹션은 Programmableweb이라는 웹사이트로부터 어떤 리소스가 현재 제공되고 있는지, 이러한 리소스를 사용하여 어떻게 새로운 매쉬업을 개발하는지에 대한 내용을 다룹니다. 그리고 마지막으로 여러분의 사이트를 매쉬업에 용이하게 개발하려면 어떤 표준을 따라야 하는지, 또 어떻게 구축하고 API를 제공해야 하는지 등에 관한 주제를 다룹니다.

  4. 다른 매쉬업 관련 주제에 대해 알아보기

    이 책의 마지막 섹션은 지도 기반 매쉬업, 소셜 북마킹 서비스, 캘린더, 온라인 스토리지, 데스크톱 기반 오피스 프로그램과 온라인 오피스 스위트 간의 매쉬업, 마이크로포맷, 오픈서치와 같은 다양한 내용을 다룹니다.

레이몬드 이(Raymond Yee)

레이몬드 이는 데이터 아키텍트, 컨설턴트, 그리고 트레이너이다. 그는 현재 UC 버클리의 정보 대학원에서 강사로 일하며 '정보의 믹스와 리믹스' 과정을 가르치고 있다. 생물물리학 분야에서 박사 학위를 취득하는 동안, 그는 버클리 캠퍼스의 학술재능 개발 프로그램 내의 K-11 학생들에게 컴퓨터 공학, 철학, 그리고 자기 개발 등을 가르쳤다. 그는 사용자들이 다양한 소스에서 디지털 컨텐트를 수집하여 다른 사용자와 공유할 수 있는 개인적인 컬렉션을 생성할 수 있도록 해주는 소프트웨어인 Scholar's Box의 주요 아키텍트이기도 하다. 또 소프트웨어 아키텍트이자 개발자로서 학습, 교수법, 학문, 연구를 지원하는 소프트웨어 개발에 초점을 맞추고 있다.

박천구

자바, 오픈소스, 미디어 서비스 등에 관심을 가지고 있다. 『EJB&WebLogic』(2002, 가메출판사)을 집필했으며, 『Prototype & Scriptaculous 인 액션』(2008, 위키북스)과 『프로 웹 2.0 매시업』(2009, 위키북스)을 번역했다.

 

옮긴이글

Web 2.0으로 시작된 패러다임의 변화는 ‘공유가 사용자에게 보다 나은 가치를 준다’는 사고를 뛰어 넘어 비즈니스적 관점에서 서비스를 개방하지 않으면 살아남을 수 없다는 생존전략으로 인식되기 시작했습니다. 이런 흐름을 타고 구글, 야후, 마이크로소프트, 플리커, 아마존, 이베이, 트위터 등 수많은 서비스들이 자신이 보유한 서비스와 데이터를 오픈 API의 형태로 제공하고 있습니다.

또, 오픈 API보다 진보된 형태로 플랫폼 자체를 개방하는 페이스북(http://www.facebook.com)의 F8, 구글의 오픈소셜(http://code.google.com/opensocial) 등도 탄생했습니다. 얼마 전 국내의 다음, 싸이월드, 파란 등의 포탈들도 구글의 오픈소셜에 참여를 선언함으로써 오픈 플랫폼 전쟁은 점점 더 치열해 질 것으로 보입니다.

이런 환경 변화에서 주목해야 하는 것은 개발자들의 개발환경이 변화하고 있고 이런 변화는 개인에게 기회로 다가올 수 있다는 점입니다. 가령 개발자들은 수많은 오픈 API를 이용하여 매쉬업 서비스를 개발한 뒤 이렇게 개발된 애플리케이션을 페이스북의 F8이나 구글의 오픈소셜을 통해 퍼블리싱할 수 있게 됩니다. 이렇게 퍼블리싱을 하게 되면 페이스북의 2억 5천만 명의 사용자, 구글 오픈소셜의 8억 명의 사용자를 대상으로 프로모션이 가능하게 되는 것입니다. 기존의 서비스 사업자들이 다양한 마케팅 경로를 활용하고 수십억의 비용을 지출하여 자사 서비스를 홍보해야만 했던 것에 비해 사용자와 커뮤니케이션 할 수 있는 기회를 보다 쉽게 가질 수 있게 되는 것이지요. 실로 개발자들에게는 무궁무진한 기회를 제공하는 시대입니다. 국내의 개발자들도 이런 오픈 API, 오픈 플랫폼이 제공하는 기회를 잘 이용하여 1인 기업, 새로운 창업의 꿈을 많이 이루기를 기원해봅니다.

  • 1부 프로그래밍하지 않고 정보를 조합하기
    •  
    • 1장 특정 매쉬업으로부터 배우기
      • 매쉬업에서 패턴 찾아내기
      • 하우징 맵
        • 무엇이 조합되는가?
        • 왜 구성요소들이 조합되는가? 풀어야 될 문제들은 어떤 것들이 있는가?
        • 리믹스가 어디에서 이루어지는가?
        • 이러한 요소들이 어떻게 조합되는가?
        • 비교할 만한 매쉬업들
      • 플리커 내의 구글 맵
        • 무엇이 조합되는가?
        • 왜 구성요소들이 조합되는가? 해결해야 할 문제는 어떤 것이 있는가?
        • 어떻게 이런 요소들이 조합되는가?
        • 비교할 만한 매쉬업들
      • 라이브러리룩업 북마크릿
        • 라이브러리룩업 북마크릿 설정하기
        • 라이브러리룩업 북마크릿 실행시키기
        • 어떻게 이 매쉬업이 동작하는가?
        • 이 매쉬업을 어떻게 확장할 수 있는가?
        • 비교할 만한 매쉬업들
      • 다른 매쉬업들 찾아보기
      • 요약
    •  
    • 2장 웹사이트의 매쉬업 가능성 살펴보기
      • 어떤 요소가 웹 사이트와 애플리케이션을 매쉬업 가능하도록 만드는가
        • 웹사이트의 주요 요소를 확인하기
        • 공개 API와 기존의 매쉬업
        • Ajax 사용
        • 스크립트를 임베딩할 수 있는가
        • 브라우저 플러그인
        • 웹사이트에서 데이터를 가져오거나 외부로 내보내기
        • 사용자와 개발자 커뮤니티
        • 모바일과 대안 인터페이스 그리고 웹사이트 스킨의 변경이 자유로운가
        • 문서
        • 웹사이트가 오픈소스 정책을 지원하는가
        • 지적재산권, 재사용성, 그리고 크리에이티브 커먼즈
        • 태깅, 피드, 그리고 웹로깅(블로깅)
      • 웹사이트의 URL 언어
      • 몇몇 매쉬업에 대해 간략하게 다시 보자
        • 본질적으로 매쉬업이 용이한 플리커
        • 플리커의 리소스
        • 사용자와 사진
        • 개별 사진과 연관된 데이터
        • 태그
        • 사용자의 저장소에서 사진을 일자별로 브라우징하기
        • 세트
        • 컬렉션
        • 좋아하는 사진
        • 사용자의 인기사진
        • 연락처 목록
        • 그룹
        • 계정관리
        • 플리커 브라우징하기
        • 검색
        • 위치정보가 태깅된 플리커 사진
        • 플리커의 사진, 비디오 관리
        • 최근 활동
        • 메일링 인터페이스
        • 블로그와 인터페이스하기
        • RSS와 Atom 피드의 배포
        • 무선을 통한 접근
        • 서드파티 플리커 애플리케이션
        • 크리에이티브 커먼즈 라이선스의 적용
        • 카메라
      • URL 템플릿과 임베딩 패턴에 의한 매쉬업
      • 구글맵
        • 구글맵의 URL 언어
        • 구글맵의 KML 파일 보기
        • 야후!파이프와 구글맵의 연결
        • 구글맵의 URL언어를 이용한 기타 애플리케이션들
      • 아마존
        • 아마존 아이템
        • 리스트
        • 태그
        • 주제별 분류
      • 딜리셔스
      • 스크린-스크레이핑과 봇
      • 요약
    •  
    • 3장 태깅과 포크소너미에 대한 이해
      • 플리커에서의 태깅
        • 플리커의 태그
        • 태그가 실제로 어떻게 사용되는가
        • 태그 생성하기
        • 플리커에서 태그 문법
        • 태그의 잠재적인 약점
        • 플리커에서 단수형과 복수형의 태그
        • 태깅 시스템의 해킹 : 위치정보 태깅과 머신 태그
        • 플리커 태그를 사용하는 흥미로운 애플리케이션들
      • 딜리셔스에서의 태깅
        • 딜리셔스에서 태그를 추가하는 기법
        • 대소문자 구분과 여러 단어로 이루어진 문장의 처리
        • 보다 많은 정보 얻기
      • 테크노라티 태그를 통해 콘텐트 수집하기
        • 태그를 사용하여 테크노라티에서 검색하기
        • 테크노라티는 어떻게 웹에서 태그를 찾아낼까
        • 테크노라티 태그에 있어 단어의 어형변화와 언어상의 제약
      • 태그를 사용하여 플리커와 딜리셔스를 매쉬업하기
      • 태깅을 사용하는 기타 시스템
      • 정규적인 분류 체계와 태그의 관계
      • 요약
    •  
    • 4장 피드, RSS, 그리고 Atom으로 작업하기
      • 피드가 무엇이며 이것이 왜 중요한가?
      • RSS2.0
      • RSS1.0
      • Atom1.0
      • RSS2.0과 Atom1.0에 대한 확장기능
      • 플리커의 피드
        • 플리커 피드의 파라미터
        • 플리커 피드에 대한 검토
        • RSS와 Atom 외의 데이터 교환 포맷
      • 다른 웹사이트의 피드
        • 피드를 찾아내고 자동발견하기
        • 블로그로부터의 피드
        • 위키피디아 피드
        • 구글과 야후! 뉴스
      • 뉴스 수집기:플리커 피드를 다른 곳에서 보여주기
      • 피드의 검증
      • GUI 툴을 사용하여 피드를 스크레이핑하기
      • 피드를 피드버너와 리믹스하기
      • 야후!파이프와 피드를 리믹스하기
        • 야후!뉴스를 사용하는 첫 번째 파이프
        • 구글 뉴스와 파이프를 리팩토링하기
        • 위키뉴스와 뉴욕 타임즈: 피드 필터링하기
        • 피드들을 함께 가져오기
      • 요약
    •  
    • 5장 블로그와 통합하기
      • 블로그 통합 시나리오
      • 플리커의 사진을 블로그로 전송하기
        • 블로그와 통합되도록 플리커를 설정하기
        • 플리커의 사진을 블로깅하기
        • 어떻게 플리커와 블로그의 통합이 이루어지는가?
      • 데스크톱 기반 블로깅 툴
      • 피드와 블로깅의 조합을 통한 리블로깅
      • 플락 : 블로그와 플리커를 함께 사용하기
      • RSD: 블로그 API의 인지성(discoverability)
      • 링크백
      • 초기단계의 위키 통합
      • 요약
  •  
  • 2부 API를 사용하여 단일 웹 애플리케이션을 리믹스하기
    •  
    • 6장 플리커를 통해 웹서비스 API에 대해 배워보자
      • 플리커 API 소개
        • 이 XML 응답은 무엇을 의미하는가?
        • XML 응답을 가지고 무엇을 할 수 있는가?
      • API 문서, 커뮤니티, 그리고 정책
        • API의 사용약관
      • 플리커 API 탐색기와 문서 사용하기
      • PHP에서 기본적인 플리커 API 메서드 호출하기
        • HTTP 클라이언트
        • HTTP에 대해 좀 더 자세히 알아보자
        • XML 처리
        • 사진을 표시하는 간단한 HTML을 생성하기
        • 이 코드가 의미하는 것은 무엇인가?
      • 플리커 API에 대해 전반적으로 알아보자
        • flickr.reflection 메서드 사용하기
        • PHP에서 플리커의 리플렉션 메서드 사용하기
      • 요청과 응답의 포맷
      • 플리커의 권한부여
        • 왜 비밀번호를 전송하는 방식이 효과적이지 않은가
        • 웹 애플리케이션에서의 권한부여
      • 플리커 API 키트 사용하기
        • PEAR::Flickr_API
        • phpFlickr
        • Phlickr
      • 플리커 API의 한계
      • 요약
    •  
    • 7장 다른 웹 API에 대해 알아보자
      • XML-RPC
        • 네트워크상에서는 어떤 일이 벌어지는가?
        • HTTP 메시지의 분석과 구성에 와이어샤크와 컬 사용하기
        • XML-RPC 트래픽을 파싱하기
      • SOAP
        • WSDL과 SOAP을 사용하면 웹서비스 호출이 쉬워진다는 것은 희망사항이다
        • geocoder.us
        • 아마존 ECS
        • SOAP을 통해서 플리커 API를 사용하기
      • 특정 웹 API에 대해서 알아보자
        • Programmableweb.com
        • 유튜브
        • GData와 블로거 API
        • 블로거 API를 HTTP 메서드에 기반한 표준 인터페이스로 사용하기
      • 요약
    •  
    • 8장 Ajax/자바스크립트 위젯과 위젯 API에 대해 배워보자
      • 어떤 것을 알아야 하는가
      • Ajax는 어떤 차이점을 만들어 내는가?
      • 파이어버그, DOM 인스펙터, 그리고 자바스크립트 쉘에 대해서 알아보자
        • DOM 인스펙터 사용하기
        • 파이어폭스에서 파이어버그 확장모듈 사용하기
        • 자바스크립트 쉘 사용하기
      • 자바스크립트 라이브러리 사용하기
      • YUI 위젯
        • YUI 캘린더 사용하기
        • YUI를 여러분의 서버호스트에 설치하기
      • 구글 맵에 대해 알아보자
      • 자바스크립트에서 플리커에 접근하기
      • 그리즈멍키를 사용하여 뉴욕 타임즈가 제공하는 퍼머링크에 접근하기
      • 자바스크립트와 Ajax에 대해 좀 더 알아보기
      • 요약
    •  
  • 3부 매쉬업 작성하기
    •  
    • 9장 API와 리믹스에 사용되는 요소에 대한 내용에서 매쉬업 관련 내용까지 알아보기
      • ProgrammableWeb에 대한 소개
        • ProgrammableWeb에서 사용자가 생성한 데이터
        • 매쉬업 관련 디렉토리 서비스가 유지될 수 있을까?
        • 전반적인 매쉬업 현황에 대해 알아보기
        • 매쉬업 디렉토리
        • 매쉬업을 추적하기 위해 피드 사용하기
        • 매쉬업을 설명하기 위한 태그의 사용
        • API 와 매쉬업 버티컬
      • 특정 매쉬업 프로필에 대해 알아보기
      • 특정 API를 사용하는 매쉬업 찾아내기
      • 매쉬업을 사용하여 해결할 수 있는 문제
        • 관심있는 책 추적하기
        • 언제 항공기 티켓을 구매해야 하는지 알아보기
        • 꿈에 그리던 집 찾기
        • 최신뉴스 맵핑하기
      • 요약
    •  
    • 10장 다양한 서비스로부터 매쉬업 생성하기
      • 설계
      • 배경지식: 플리커에서의 위치정보 태깅
      • 배경지식: XMLHttpRequest와 라이브러리 포함하기
        • XMLHttpRequest를 직접 사용하기
        • 야후 커넥션 매니저 사용하기
      • 서버 측 프록시 작성하기
        • XHR을 사용하여 직접 API를 호출하면 어떤 일이 발생할까?
        • 위치정보가 포함된 사진을 가져오는 서버 측 스크립트 작성하기
      • 간단한 클라이언트 측 프레임워크 생성하기
        • 엘리먼트를 읽고 작성하기
        • 간단한 이벤트를 입력 폼과 연결하고 폼 전송의 결과를 화면에 표시하기
      • 클라이언트 측 프레임워크를 플리커에 연결하기
        • flickrgeo.php에 쿼리하는 URL 작성하기
        • JSON 형태의 데이터를 읽기 위해 YUI 커넥션 매니저를 통해 XHR 사용하기
        • JSON을 HTML로 변환하기
      • 플리커와 구글 맵 API를 매쉬업하기
        • 기본 구글 맵 설정하기
        • 표시되는 영역이 변경될 때 지도가 반응하도록 설정하기
        • 플리커와 구글 맵의 코드 합치기
        • 구글 맵의 지도 표시 영역을 연결하기
        • 사진들을 지도상에 표시하기
      • 플리커 사진을 표시해주는 구글 맵플릿
      • 요약
    •  
    • 11장 툴을 사용하여 매쉬업 생성하기
      • 매쉬업 툴이 해결해주는 문제
      • 이번 장에서 개발할 것은 무엇인가
      • 매쉬업의 생성 : 단계별로 예제를 개발해보자
        • 구글 매쉬업 에디터에 익숙해지기
        • 피드를 읽고 화면에 표시하기(심플 템플릿)
        • 사용자 정의 템플릿 사용하기
        • 플리커 접근 시 야후! 파이프 사용하기
        • <gm:map>를 사용하여 플리커 사진을 화면에 표시하기
        • 매쉬업에 자바스크립트 추가하기
        • 어떻게 피드를 영속화하고 탭을 사용할 것인가
        • 저장된 항목을 지도상에 표시하는 최종 애플리케이션
      • 구글 매쉬업 에디터와 야후! 파이프의 사용에 따르는 트레이드-오프 분석
      • 기타 매쉬업 툴
      • 요약
    •  
    • 12장 사이트를 매쉬업 가능하도록 만들기
      • 왜 웹사이트를 매쉬업 가능하도록 만들어야 하는가
      • API에 의존하지 않는 기술 사용하기
        • 일관성 있고 풍부한 URL 언어를 사용하라
        • 웹사이트 개발에 W3C 표준을 사용하라
        • 웹 접근성에 주의를 기울여라
        • 사용자들이 콘텐츠에 태그를 추가할 수 있도록 고려하라
        • 피드를 제공하라.
        • 여러분의 콘텐츠를 블로그와 다른 웹사이트에 쉽게 게시할 수 있도록 하라
        • 명확한 라이센스를 표시하여 콘텐츠의 공유를 장려하라
        • 사용자 콘텐츠에 대해 다양한 불러오기, 내보내기 옵션을 개발하라
        • 사용자들이 여러분의 콘텐츠를 어떻게 리믹스하고 리믹스하기 쉽게 만드는지 연구하라
      • 매쉬업이 용이한 API 만들기
        • 다른 API로부터 배우고 모방하라.
        • API의 사용자를 잊지 말라
        • 배우기 쉬운 API를 개발하라
        • API의 사용성을 테스트하라
        • 느슨하게 결합된 아키텍처를 구성하여 API의 생성이 다른 사용자에게 도움이 되는 만큼 여러분에게도 도움이 되도록 하라
        • REST 방식을 채택하고 가능하다면 SOAP와 XML-RPC도 지원하라
        • REST의 특정 예로서 Atom 출판 프로토콜 사용을 고려해보라
        • 서드파티 개발자나 내부 개발자의 API 키트 개발을 장려하라
        • API에서 광범위한 에러 리포팅을 지원하라
        • 출력과 입력을 위해 여러 가지 입출력 형식을 지원하라
        • UI에서 제공되는 기능을 API에서도 지원하라
        • 여러분의 사이트를 위한 검색기능을 포함시켜라
        • API의 버전을 관리하라
        • 개발자 커뮤니티를 육성하라
        • API를 너무 통제하려 들지 마라
        • 서비스 레벨 보증서의 생성을 고려하라
        • API 사용자가 여러분의 리소스를 현명하게 사용하도록 도와라
        • 여러분의 애플리케이션을 오픈소스화하는 것에 대해 고민하라
      • 쉽게 이해할 수 있는 데이터 표준
      • 요약
    •  
  • 4부 다른 매쉬업 관련 주제에 대해 알아보자
    •  
    • 13장 온라인 지도와 3D 디지털 세계를 리믹스하기
      • 온라인 지도 서비스의 범람
      • 지도 기반 매쉬업 예제들
      • 프로그래밍 없이 지도를 생성하기
        • Mapbuilder.net
        • 구글 My Maps
        • 매쉬업 기회 : 야후! 로컬 컬렉션을 지도 서비스와 매쉬업하기
        • 야후! 로컬의 XML 파일을 Mapbuilder.net에서 사용 가능한 CSV 포맷으로 변환하기
        • 마이크로소프트 라이브 서치 맵에서의 컬렉션 생성
        • 프로그래밍하지 않고 지도를 생성하는 방법
      • 데이터 교환 포맷
        • CSV
        • HTML에서 사용되는 마이크로포맷과 메타태그
        • GeoRSS
        • 야후!의 GeoRSS 사용과 YMaps 확장기능
        • KML
        • GeoRSS와 KML과 같은 포맷들 사이의 호환성
      • API 프로그래밍으로 지도 생성하기
        • 구글 맵 API
        • 야후! 맵 API
        • 마이크로소프트의 라이브 서치 맵/버추얼 어스
      • 주소와 좌표 간의 변환
        • 야후! 맵
        • Geocoder.us
        • 구글 Geocoder
        • 버추얼 어스
        • 미국 내 주소가 아닌 경우의 주소-좌표변환
      • 구글 어스와 KML
        • 최종 사용자로서 KML을 화면에 표시하고 다루기
        • KML
        • COM과 애플스크립트를 사용하여 구글 어스 프로그래밍하기
      • 맵스트랙션과 오픈레이어즈
      • 통합 예제: 플리커 사진을 구글 어스에서 보여주기
        • KML 네트워크링크
        • 사진을 표시하는 KML 생성하기
        • flickrgeo.php 코드
      • 요약
    •  
    • 14장 소셜 북마킹과 도서목록 시스템에 대한 탐구
      • 소셜 북마킹 사이트의 시장현황
        • Programmableweb.com을 사용하여 API의 인기도를 알아보기
      • 딜리셔스
        • 딜리셔스 API 사용하기
        • 딜리셔스를 위한 서드파티 툴
        • 서드파티 API 키트
      • 야후! 북마크와 마이웹
      • 캐노티
      • 플리커와 딜리셔스의 매쉬업
      • 요약
    •  
    • 15장 온라인 캘린더와 이벤트 수집기
      • 구글 캘린더
        • 최종 사용자로서 구글 캘린더 설정하기
        • 구글 캘린더가 제공하는 피드 포맷에 대해 알아보자
        • GData 기반의 캘린터 API를 직접 사용하기
        • 구글 캘린더용 PHP API 키트 사용하기
        • 구글 캘린더용 파이썬 API 키트 사용하기
      • 30boxes.com
        • 최종 사용자 튜토리얼
        • 30boxes.com의 API
      • 이벤트 수집기
        • Upcoming.yahoo.com
        • Eventful.com
      • iCalendar로 프로그래밍하기
        • 파이썬과 iCalendar
        • PHP와 iCalendar
      • 이벤트 캘린더를 iCalendar와 구글 캘린더로 내보내기
        • 소스 : UC 버클리 이벤트 캘린더
        • 파이썬을 사용하여 ‘비평가의 선택’에서 iCalendar 피드 생성하기
        • 구글 캘린더에 이벤트 추가하기
      • 요약
    •  
    • 16장 온라인 스토리지 서비스 사용하기
      • 아마존 S3에 대한 소개
      • S3를 사용하는 근본적인 이유
      • 아마존 S3의 개념적인 구조
      • 파이어폭스 S3 확장기능을 사용하여 S3 시작하기
      • S3의 REST 인터페이스 사용하기
        • REST 인터페이스를 사용하여 버킷 목록 가져오기
      • S3의 SOAP 인터페이스 사용하기
      • 아마존의 S3 API 키트
        • PHP
        • 파이썬
      • 요약
    •  
    • 17장 데스크톱과 웹 기반 오피스 스위트 매쉬업하기
      • 오피스 스위트의 매쉬업 시나리오
      • 문서 마크업의 세계
      • OpenDocument 포맷
        • 기본적인 ODF 태그에 대해 배워보자
        • ODF 요소에 어떠한 서식도 적용하지 않은 ODF 텍스트 문서 생성하기
        • 문단의 텍스트를 text-body로 설정하기
        • 정렬된 목록과 정렬되지 않은 목록을 구분하기 위해 포맷팅하기
        • <text:span> 엘리먼트에 볼드체, 이탤릭체, 폰트 변경, 그리고 색상 변경 적용하기
      • ODF를 다루는 API 키트
        • Odfpy
        • OpenDocumentPHP
        • 오픈오피스를 사용하여 ODF 생성하기
      • ECMA 표준인 Office Open XML(OOXML)
        • OOXML 뷰어와 검증기
      • ODF와 OOXML의 비교
      • 온라인 오피스 스위트
        • 프로그래밍 가능한 온라인 스프레드시트의 사용 시나리오
      • 구글 스프레드시트 API
        • 파이썬 API 키트
        • 아마존 위시리스트와 구글 스프레드시트의 매쉬업
        • 구글 스프레드시트용 젠드 PHP API 키트
        • 마지막 변경: COM을 이용하여 아마존 위시리스트를 마이크로소프트 엑셀로 전달하기
      • 조호 API
      • 요약
    •  
    • 18장 포함 가능한 데이터 포맷으로 마이크로포맷과 RDFa 사용하기
      • Operator를 사용하여 마이크로포맷에 대해 학습하기
        • adr(Addresses)
        • hCard(Contacts)
        • hCalendar(Events)
        • geo(Locations)
        • tag(Tagspaces)
      • 마이크로포맷에 대한 정의와 설계목표
      • 마이크로포맷 디자인 패턴
        • rel-design-pattern
        • class-design-pattern
        • abbr-design-pattern
        • include-pattern
      • 마이크로포맷 예제
        • rel-license
        • rel-tag
        • xfn
        • xFolk
        • geo
        • hCard와 adr
        • hCalendar
        • 다른 마이크로포맷들
      • 실전에서의 마이크로포맷
      • 마이크로포맷으로 프로그래밍하기
        • 특정 언어용 라이브러리
      • Operator 스크립트 작성하기
        • 튜토리얼 스크립트에 대한 이해
        • 주소-좌표 변환 스크립트 작성하기
      • 마이크로포맷을 보완해줄 RDFa
      • 향후의 연구에 참고할 만한 문서
      • 요약
    •  
    • 19장 검색 통합하기
      • 구글 Ajax 검색
        • 검색결과 다루기
      • 야후! 검색
        • 야후! 이미지
      • 마이크로소프트 Live.com 검색
      • OpenSearch
      • 구글 데스크톱 HTTP/XML 게이트웨이
      • 요약
    •  
  • 부록 1 아이폰 매시업 사이트 만들기
    • OpenAPI를 이용하여 지도매쉬업 서비스 만들기
    • OpenAPI로 작업하기
      • 네이버 오픈API 키 발급받기
      • 야후 거기 오픈API 이용하기
      • 구글 오픈API 이용하기
    • Rails Project 시작하기
      • Rails의 MVC (Model, View, 그리고 Controller)
    • 본격적인 Mashupmap 지도 서비스 만들기
  •  
  • 부록 2 트위터 기반 매쉬업 개발하기
    • 트위터란?
    • 트위터 기반 매쉬업(트윗봇)
    • 사용 API 소개
    • 구글 앱 엔진 개발 환경
    • 예제 코드 작성
    • 맺음말
  •  
  • 부록 C 크리에이티브 커먼즈
  • 인덱스

관련 글