윤 석 찬
@channyun
JVM Platform Web site
Java API Interface Open API
Java
Application
Software Data
Developer Participators User, Small Biz.
...
OS Web
Social
Mobile
Internet
Dot‐Com 
Bubble
Web 2.0
Social 
Graph
Cloud
Open Web
Google, Amazon, Ebay
Social
facebook, T...
폐쇄된 API를 가진
버추얼 머신 Platform
개방된 API를 가진
웹 서비스
독자적/폐쇄형 API 개방형/표준형
학습 비용 등
진입이 어려움
Costs
빠르고 쉽게 개발 및
서비스 가능
기능 위주 Lock-in 데...
Agenda
오픈 API란?
오픈 API 성공 사례
오픈 API 구현 방법
오픈 API 홍보 및 개발자 지원
Daum 오픈 API
•7
Open API?
Open API is a word used to describe sets of technologies that enable
websites to interact with each other by usi...
http://api.twitter.com/1/statuses/show/99.json
Request
How to?
Parse
"created_at": "Wed Mar 22 03:38:41 +0000 2006",
"id": 99,
"id_str": "99",
"text": "learning about the earthquake I f...
Use
왜 오픈 API를? 창업자 관점
다양한 비즈니스 개발 타진
– 자원이 부족한 스타트업의 경우, 서드파티 및 파트너와
의 협업을 위해 가능성 탐지
서비스 주변 개발자 생태계 확보
– 외부 개발자들이 언제든지 API를 통해...
API 증가 속도
© ProgrammableWeb.com
API 사용 현황
API 1billion Club
© ProgrammableWeb.com
스타트업 성공 사례
• 서비스 시작부터 API 제공
• 200여개의 미투앱스
• 20여개의 소셜플러그인 제휴
• 월 2억건의 쿼리 (2011.4)
• iOS에서만 앱 제공
• 1초에 15장, 하루 130 만장 등록
• ...
Fred Wilson’s
10 Golden Principles of
Successful Web Apps
5. Make it Programmable
http://thinkvitamin.com/web‐apps/fred‐wi...
왜 오픈 API를? 개발자 관점
프로그래밍은 결국 API 디자인
– 좋은 코드는 Module화 되어 있고, 각 모듈은 API로 구
성되어 있다.
좋은 API는 높은 재사용성 제공
– API 사용자가 생기면 변경하기가 어...
어떻게 만들어야 하나?
직관적이고 배우기 쉽게
– 문서 없이도 형식만 보고도 이해할 수 있어야 한다.
설계는 완벽하게
– 한번 만든 API는 하위 호환성 때문에 쉽게 바꾸기 어렵다.
보안은 최소화
– 너무 많은 제한을 ...
API 서비스 프로토콜
프로토콜 종류
REST는 서비스 개발 및 활용 비용 ↓
종류 설명 형식
자원
인식
자원
접근
자원
처리
자원
링크
사례
WS-* SOA 기반 웹
서비스
WSDL을 통한 표현 Google
Adsen...
API Best Practices
1. 객체 표현
POST /photos/create 
POST /photos/show/foobar
POST /photos/update/foobar
POST /photos/delete/f...
4. 다양한 포맷 (JSON, XML, RSS)
{ 'person' : 
{ 'name': '...', 'age' : 22, 'dogs' : [...] } 
}
자바스크립트 개발자를 위한 Callback 함수 지원 필수...
API 개발 프레임웍
웬만한 MVC 프레임웍은 지원!
– RESTful 지원 프레임웍
• http://en.wikipedia.org/wiki/Representational_State_Transfer#Fra
mework_...
API 서드 파티 지원
★ 오픈 API 퍼블리싱에 도움을 줌!
http://apievangelist.com/serviceproviders/
oAuth란?
Token
6. 문서화
– 레퍼런스, 변경기록, 코드샘플 및 코드 놀이터
7. 기술 지원
– 오픈소스 개발방법 : 이슈트래커, 포럼, gitHub
8. 개발자 만나기
– Hackerton, DevDay, CodeJam, DevCo...
개발자 지원 핸드북
•28
http://dna.daum.net/ko/developer‐support‐handbook
Github http://github.com
Open Source Developer’s Social Networks
API Playground
에반젤리즘
1.5 billion per year
5000 per day
외부 개발자 만남– 소통과 대화
Daum 개발자네트워크
Daum Developers Network & Affliates‐ http://dna.daum.net
개발자의 마음을 사는 법
Thanks for Attention : Q&A
Seokchan (Channy) Yun
channy@creation.net
http://channy.creation.net
http://twitter.com/channyun
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)
Upcoming SlideShare
Loading in...5
×

Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)

9,755

Published on

0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,755
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
119
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

Open API - 웹 플랫폼 생태계를 만드는 기술 (2011)

  1. 1. 윤 석 찬 @channyun
  2. 2. JVM Platform Web site Java API Interface Open API Java Application Software Data Developer Participators User, Small Biz. API Lock-in Key Factor Data Lock-in
  3. 3. OS Web Social Mobile Internet Dot‐Com  Bubble Web 2.0 Social  Graph Cloud Open Web Google, Amazon, Ebay Social facebook, Twitter Cloud AWS, Hadoop Social  Graph Mobile iOS, Android Closed Windows, Java Program Open Source GNU, Linux, Apache
  4. 4. 폐쇄된 API를 가진 버추얼 머신 Platform 개방된 API를 가진 웹 서비스 독자적/폐쇄형 API 개방형/표준형 학습 비용 등 진입이 어려움 Costs 빠르고 쉽게 개발 및 서비스 가능 기능 위주 Lock-in 데이터 위주 각 플랫폼 기반 개발자 Developers 웹 서비스 기반 개발자 .Net Java Examples Google Amazon
  5. 5. Agenda 오픈 API란? 오픈 API 성공 사례 오픈 API 구현 방법 오픈 API 홍보 및 개발자 지원 Daum 오픈 API •7
  6. 6. Open API? Open API is a word used to describe sets of technologies that enable websites to interact with each other by using REST, SOAP, JavaScript and other web technologies. While its possibilities aren't limited to web-based applications, it's becoming an increasing trend in so-called Web 2.0 applications. The term API stands for Application Programming Interface. http://en.wikipedia.org/wiki/Open_API
  7. 7. http://api.twitter.com/1/statuses/show/99.json Request How to?
  8. 8. Parse "created_at": "Wed Mar 22 03:38:41 +0000 2006", "id": 99, "id_str": "99", "text": "learning about the earthquake I felt  earlier today", "source": "web", "user": { "id": 13, "name": "Biz Stone", "screen_name": "biz", "location": "San Francisco, CA", "description": "Co‐founder of Twitter, Inc.", "url": "http://t.co/bdlNWgB" } }
  9. 9. Use
  10. 10. 왜 오픈 API를? 창업자 관점 다양한 비즈니스 개발 타진 – 자원이 부족한 스타트업의 경우, 서드파티 및 파트너와 의 협업을 위해 가능성 탐지 서비스 주변 개발자 생태계 확보 – 외부 개발자들이 언제든지 API를 통해 매쉬업 개발, 버 그 리포팅, 아이디어 제공 투자자에게 플랫폼으로 어필 – 작지만 죽지 않을(?) 파트너쉽 및 개발자 생태계 구성 은 투자할 이유가 됨!
  11. 11. API 증가 속도 © ProgrammableWeb.com
  12. 12. API 사용 현황
  13. 13. API 1billion Club © ProgrammableWeb.com
  14. 14. 스타트업 성공 사례 • 서비스 시작부터 API 제공 • 200여개의 미투앱스 • 20여개의 소셜플러그인 제휴 • 월 2억건의 쿼리 (2011.4) • iOS에서만 앱 제공 • 1초에 15장, 하루 130 만장 등록 • 2,500여개의 외부앱 • 250여개의 github 레포지터리
  15. 15. Fred Wilson’s 10 Golden Principles of Successful Web Apps 5. Make it Programmable http://thinkvitamin.com/web‐apps/fred‐wilsons‐10‐golden‐principles‐of‐successful‐web‐apps/
  16. 16. 왜 오픈 API를? 개발자 관점 프로그래밍은 결국 API 디자인 – 좋은 코드는 Module화 되어 있고, 각 모듈은 API로 구 성되어 있다. 좋은 API는 높은 재사용성 제공 – API 사용자가 생기면 변경하기가 어려우며, 처음 부터 설계에 노력을 들이게 된다. 외부 개발자와의 협업이 가능 – 스타트업에서 개발자는 외롭다. 하지만 API를 오픈하 면 밖에도 내 편을 만들 수 있다.
  17. 17. 어떻게 만들어야 하나? 직관적이고 배우기 쉽게 – 문서 없이도 형식만 보고도 이해할 수 있어야 한다. 설계는 완벽하게 – 한번 만든 API는 하위 호환성 때문에 쉽게 바꾸기 어렵다. 보안은 최소화 – 너무 많은 제한을 두면 개발자로 부터 반감을 얻을 수 있다. 벤치마크 – 좋은 API를 따라한다. Copy & Paste가 답!
  18. 18. API 서비스 프로토콜 프로토콜 종류 REST는 서비스 개발 및 활용 비용 ↓ 종류 설명 형식 자원 인식 자원 접근 자원 처리 자원 링크 사례 WS-* SOA 기반 웹 서비스 WSDL을 통한 표현 Google Adsense API RPC 자원에 파라 미터로 접근 GET /service?1 Amazon SimpleDB API API 객체 방법으 로 접근 PUT /order/1 Twitter API REST 하이퍼링크 로 접근 <link type=“atom” Atom Publishing Protocol http://www.nordsc.com/ext/classification_of_http_based_apis.html
  19. 19. API Best Practices 1. 객체 표현 POST /photos/create  POST /photos/show/foobar POST /photos/update/foobar POST /photos/delete/foobar 2. 호환성 http://apis.daum.net/maps/v1/js http://apis.daum.net/maps/v2/js 3. 에러처리 <apierror> <code>404</code> <message>App 인증 실패</message> <dcode>22</dcode> <dmessage>등록되지 않은 apikey 입니다.</dmessage> </apierror> •22
  20. 20. 4. 다양한 포맷 (JSON, XML, RSS) { 'person' :  { 'name': '...', 'age' : 22, 'dogs' : [...] }  } 자바스크립트 개발자를 위한 Callback 함수 지원 필수 5. 보안 강화 – APIKey와 트래픽 제어가 필수는 아니다! – 사용자 데이터는 oAuth 이용 – 암호화 제공은 선택 사항
  21. 21. API 개발 프레임웍 웬만한 MVC 프레임웍은 지원! – RESTful 지원 프레임웍 • http://en.wikipedia.org/wiki/Representational_State_Transfer#Fra mework_implementations – Django with Pistons • Django-Tastypie https://github.com/toastdriven/django-tastypie – Ruby on Rails Node.js – 이벤트 기반 웹 서비스에 유리
  22. 22. API 서드 파티 지원 ★ 오픈 API 퍼블리싱에 도움을 줌! http://apievangelist.com/serviceproviders/
  23. 23. oAuth란? Token
  24. 24. 6. 문서화 – 레퍼런스, 변경기록, 코드샘플 및 코드 놀이터 7. 기술 지원 – 오픈소스 개발방법 : 이슈트래커, 포럼, gitHub 8. 개발자 만나기 – Hackerton, DevDay, CodeJam, DevConference •27
  25. 25. 개발자 지원 핸드북 •28 http://dna.daum.net/ko/developer‐support‐handbook
  26. 26. Github http://github.com Open Source Developer’s Social Networks
  27. 27. API Playground
  28. 28. 에반젤리즘
  29. 29. 1.5 billion per year 5000 per day
  30. 30. 외부 개발자 만남– 소통과 대화
  31. 31. Daum 개발자네트워크 Daum Developers Network & Affliates‐ http://dna.daum.net
  32. 32. 개발자의 마음을 사는 법
  33. 33. Thanks for Attention : Q&A Seokchan (Channy) Yun channy@creation.net http://channy.creation.net http://twitter.com/channyun
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×