SlideShare a Scribd company logo
1 of 24
Download to read offline
API를 준비하는 금성인을 위한 안내서
장동수 / 아임인LAB / 개발실 / KTH

                           1
눈에 보이는 API (1)




                 2
눈에 보이는 API (2)




                 3
눈에 보이는 API (3)
그러나...

그것은...

API 문서일 뿐...

눈에 보이는 것이...

API의 전부는 아니랍니다...
OTL


                    4
API란?
Application Programming Interface
Application Program
  a program that gives a computer instructions
  that provide the user with tools
  to accomplish a task
Interface: inter + face; 얼굴과 얼굴 사이?!
  a surface forming a common boundary
  between two things


                                                 5
장치와 장치 사이




            6
사람과 사람 사이




            7
사람과 프로그램 사이




              8
프로그램과 프로그램 사이
     (응용) 프로그램




        API

    (시스템) 프로그램




                 9
서비스와 서비스 사이
     (매시업) 서비스




      Open API

     (플랫폼) 서비스




                 10
화성인 용어 사전 (1)


라이브러리(Library)

툴킷(Toolkit)

프레임웍(Framework)




                  11
화성인 용어 사전 (2)

프로시져 호출(Procedure Call)

시스템 호출(System Call)

프로세스간 통신(IPC; Inter-process Communication)

로컬 프로시져 호출(LPC; Local Procedure Call)

원격 프로시져 호출(RPC; Remote Procedure Call)



                                             12
화성인 용어 사전 (3)
프로토콜(Protocol)
TCP/IP, Socket, HTTP
Open API, Cross-Domain
REST, JSON, JSONP
SOAP, XML
Authentication &
Authorization, OAuth


                         13
REST+JSON vs SOAP+XML
{
    "results" : [
       {
          "address_components" : [
             {
                "long_name" : "1600",
                "short_name" : "1600",
                "types" : [ "street_number" ]
             },
             {
                "long_name" : "Amphitheatre Pkwy",
                "short_name" : "Amphitheatre Pkwy",
                "types" : [ "route" ]
             },
             {
                "long_name" : "Mountain View",
                "short_name" : "Mountain View",
                "types" : [ "locality", "political" ]
             },
             {                                          14
REST+JSON vs SOAP+XML
<GeocodeResponse>
 <status>OK</status>
 <result>
  <type>street_address</type>
  <formatted_address>1600 Amphitheatre Pkwy, Mountain View, CA 9404
  <address_component>
   <long_name>1600</long_name>
   <short_name>1600</short_name>
   <type>street_number</type>
  </address_component>
  <address_component>
   <long_name>Amphitheatre Pkwy</long_name>
   <short_name>Amphitheatre Pkwy</short_name>
   <type>route</type>
  </address_component>
  <address_component>
   <long_name>Mountain View</long_name>
   <short_name>Mountain View</short_name>
   <type>locality</type>
   <type>political</type>                                        15
크로스 도메인
  http://a.com                      http://b.com

 one        two                three         four


         Same Origin                Cross Domain
           AJAX                         AJAX


                 http://a.com/one

                   웹 브라우져
                                                    16
크로스 도메인
  http://a.com                    http://b.com

 one        two                 three        four


        Cross Domain                  Same Origin
            AJAX                        AJAX


                 http://b.com/three

                   웹 브라우져
                                                    17
OpenAPI 문서 보기(1)
이름(Name)

  HTTP 주소(URL, URI, ...) + 메소
  드(GET, POST, PUT, DELETE, ...)

요청(Request)

  인자, 파라메터, Parameters,
  Arguments, ...

응답(Response)

  반환값, 리턴값, 결과값, Result,
  Return, ...



                                   18
OpenAPI 문서 보기(2)




    이름    요청       응답
                        19
화성인에게 API란?
외부 시스템이 내부 시스템이
제공하는 기능을 사용하기 위
해 지켜야 하는 규약 & 문서

그리고, 실제로 요청을 받고
응답을 하는 시스템의 맨 바깥
계층 & 코드 덩어리

그리고, 계층을 통해 규약에
맞춰 요청을 보내고 응답을 받
기 위한 코드 덩어리


                   20
금성인에게 API란
더 큰/좋은/잘나가는/전문
적인 서비스에 묻어가기

경쟁자를 파트너로 만들기

경쟁자에게 밀리지 않기

서비스 플랫폼으로 자리잡
고 돈 벌기



                 21
Putting It All Together...
         아임IN
       안드로이드앱
                                                  써드파티
                            아임IN 서버               앱/매시업

        아임IN
아임IN    Private                                  리뷰
iOS앱   OpenAPI
                                       아임IN
                                      OpenAPI 장소 찾기 아리맛
             가입/로그인                           발도장 찍기
             발도장 공유
             친구 찾기

       페이스북        트위터                 푸딩.투
       OpenAPI    OpenAPI              OpenAPI

                                                          22
화성인 따라잡기
“좋아요” 버튼 달기

페이스북 개발자 등록

OAuth 인증/승인

타임라인 가져오기

타임라인에 글 올리기

친구 목록 가져오기


              23
Q&A
That’s all Folks!




                    24

More Related Content

Similar to 개발자와 협업하기 위한 API의 이해 - API를 준비하는 금성인을 위한 안내서

F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업NAVER D2
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
2Naver Open Android API Translation At DCamp
2Naver Open Android API Translation At DCamp2Naver Open Android API Translation At DCamp
2Naver Open Android API Translation At DCampJeikei Park
 
How to make Successful Open APIs for Startups (2012)
How to make Successful Open APIs for Startups (2012)How to make Successful Open APIs for Startups (2012)
How to make Successful Open APIs for Startups (2012)Channy Yun
 
open api seminar
open api seminaropen api seminar
open api seminarNamhoon Kim
 
Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Sungjoon Yoon
 
우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?Arawn Park
 
AManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with TerraformAManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with TerraformByungjin Park
 
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API Gosu Ok
 
REST API 디자인 개요
REST API 디자인 개요REST API 디자인 개요
REST API 디자인 개요nexusz99
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언DongHan Kim
 
MongoDB 도입을 위한 제언 @krmug
MongoDB 도입을 위한 제언 @krmug MongoDB 도입을 위한 제언 @krmug
MongoDB 도입을 위한 제언 @krmug Ha-Yang(White) Moon
 
Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰NAVER D2
 
220302 사내세미나_오정민 REST API와 크롤링
220302 사내세미나_오정민 REST API와 크롤링220302 사내세미나_오정민 REST API와 크롤링
220302 사내세미나_오정민 REST API와 크롤링DataUs
 
20201121 코드 삼분지계
20201121 코드 삼분지계20201121 코드 삼분지계
20201121 코드 삼분지계Chiwon Song
 
API Management Reference Architecture
API Management Reference ArchitectureAPI Management Reference Architecture
API Management Reference ArchitectureSeong-Bok Lee
 

Similar to 개발자와 협업하기 위한 API의 이해 - API를 준비하는 금성인을 위한 안내서 (20)

F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
2Naver Open Android API Translation At DCamp
2Naver Open Android API Translation At DCamp2Naver Open Android API Translation At DCamp
2Naver Open Android API Translation At DCamp
 
How to make Successful Open APIs for Startups (2012)
How to make Successful Open APIs for Startups (2012)How to make Successful Open APIs for Startups (2012)
How to make Successful Open APIs for Startups (2012)
 
open api seminar
open api seminaropen api seminar
open api seminar
 
Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)Ksug 세미나 (윤성준) (20121208)
Ksug 세미나 (윤성준) (20121208)
 
우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?우린 같은 곳을 바라 보고 있나요?
우린 같은 곳을 바라 보고 있나요?
 
AManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with TerraformAManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with Terraform
 
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
 
REST API 디자인 개요
REST API 디자인 개요REST API 디자인 개요
REST API 디자인 개요
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언
 
MongoDB 도입을 위한 제언 @krmug
MongoDB 도입을 위한 제언 @krmug MongoDB 도입을 위한 제언 @krmug
MongoDB 도입을 위한 제언 @krmug
 
Slackbot with Python
Slackbot with PythonSlackbot with Python
Slackbot with Python
 
Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰Naver 오픈api-마이그레이션가이드 20160913-리뷰
Naver 오픈api-마이그레이션가이드 20160913-리뷰
 
220302 사내세미나_오정민 REST API와 크롤링
220302 사내세미나_오정민 REST API와 크롤링220302 사내세미나_오정민 REST API와 크롤링
220302 사내세미나_오정민 REST API와 크롤링
 
20201121 코드 삼분지계
20201121 코드 삼분지계20201121 코드 삼분지계
20201121 코드 삼분지계
 
API Management Reference Architecture
API Management Reference ArchitectureAPI Management Reference Architecture
API Management Reference Architecture
 
Portfolio
PortfolioPortfolio
Portfolio
 

More from 동수 장

(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf
(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf
(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf동수 장
 
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS동수 장
 
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다동수 장
 
모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서
모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서
모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서동수 장
 
하이브리드앱 개발 전략과 이슈
하이브리드앱 개발 전략과 이슈하이브리드앱 개발 전략과 이슈
하이브리드앱 개발 전략과 이슈동수 장
 
하이브리드앱 아키텍쳐 및 개발 사례
하이브리드앱 아키텍쳐 및 개발 사례하이브리드앱 아키텍쳐 및 개발 사례
하이브리드앱 아키텍쳐 및 개발 사례동수 장
 
단일 페이지 인터페이스 웹/앱 개발
단일 페이지 인터페이스 웹/앱 개발단일 페이지 인터페이스 웹/앱 개발
단일 페이지 인터페이스 웹/앱 개발동수 장
 
Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework동수 장
 
Javascript Common Mistakes
Javascript Common MistakesJavascript Common Mistakes
Javascript Common Mistakes동수 장
 
Gnome Architecture
Gnome ArchitectureGnome Architecture
Gnome Architecture동수 장
 

More from 동수 장 (10)

(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf
(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf
(면접에서 자주 나오는) HTTP : 브라우저에서 서버까지.pdf
 
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
프론트엔드 웹앱 프레임웍 - Bootstrap, Backbone 그리고 AngularJS
 
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
웹 애플리케이션 프레임웍의 과거,현재 그리고 미래 - 봄날은 간다
 
모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서
모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서
모바일/클라우드 시대를 준비하는 개발자들을 위한 안내서
 
하이브리드앱 개발 전략과 이슈
하이브리드앱 개발 전략과 이슈하이브리드앱 개발 전략과 이슈
하이브리드앱 개발 전략과 이슈
 
하이브리드앱 아키텍쳐 및 개발 사례
하이브리드앱 아키텍쳐 및 개발 사례하이브리드앱 아키텍쳐 및 개발 사례
하이브리드앱 아키텍쳐 및 개발 사례
 
단일 페이지 인터페이스 웹/앱 개발
단일 페이지 인터페이스 웹/앱 개발단일 페이지 인터페이스 웹/앱 개발
단일 페이지 인터페이스 웹/앱 개발
 
Hybrid Mobile Application Framework
Hybrid Mobile Application FrameworkHybrid Mobile Application Framework
Hybrid Mobile Application Framework
 
Javascript Common Mistakes
Javascript Common MistakesJavascript Common Mistakes
Javascript Common Mistakes
 
Gnome Architecture
Gnome ArchitectureGnome Architecture
Gnome Architecture
 

개발자와 협업하기 위한 API의 이해 - API를 준비하는 금성인을 위한 안내서

  • 1. API를 준비하는 금성인을 위한 안내서 장동수 / 아임인LAB / 개발실 / KTH 1
  • 4. 눈에 보이는 API (3) 그러나... 그것은... API 문서일 뿐... 눈에 보이는 것이... API의 전부는 아니랍니다... OTL 4
  • 5. API란? Application Programming Interface Application Program a program that gives a computer instructions that provide the user with tools to accomplish a task Interface: inter + face; 얼굴과 얼굴 사이?! a surface forming a common boundary between two things 5
  • 9. 프로그램과 프로그램 사이 (응용) 프로그램 API (시스템) 프로그램 9
  • 10. 서비스와 서비스 사이 (매시업) 서비스 Open API (플랫폼) 서비스 10
  • 11. 화성인 용어 사전 (1) 라이브러리(Library) 툴킷(Toolkit) 프레임웍(Framework) 11
  • 12. 화성인 용어 사전 (2) 프로시져 호출(Procedure Call) 시스템 호출(System Call) 프로세스간 통신(IPC; Inter-process Communication) 로컬 프로시져 호출(LPC; Local Procedure Call) 원격 프로시져 호출(RPC; Remote Procedure Call) 12
  • 13. 화성인 용어 사전 (3) 프로토콜(Protocol) TCP/IP, Socket, HTTP Open API, Cross-Domain REST, JSON, JSONP SOAP, XML Authentication & Authorization, OAuth 13
  • 14. REST+JSON vs SOAP+XML { "results" : [ { "address_components" : [ { "long_name" : "1600", "short_name" : "1600", "types" : [ "street_number" ] }, { "long_name" : "Amphitheatre Pkwy", "short_name" : "Amphitheatre Pkwy", "types" : [ "route" ] }, { "long_name" : "Mountain View", "short_name" : "Mountain View", "types" : [ "locality", "political" ] }, { 14
  • 15. REST+JSON vs SOAP+XML <GeocodeResponse>  <status>OK</status>  <result>   <type>street_address</type>   <formatted_address>1600 Amphitheatre Pkwy, Mountain View, CA 9404   <address_component>    <long_name>1600</long_name>    <short_name>1600</short_name>    <type>street_number</type>   </address_component>   <address_component>    <long_name>Amphitheatre Pkwy</long_name>    <short_name>Amphitheatre Pkwy</short_name>    <type>route</type>   </address_component>   <address_component>    <long_name>Mountain View</long_name>    <short_name>Mountain View</short_name>    <type>locality</type>    <type>political</type> 15
  • 16. 크로스 도메인 http://a.com http://b.com one two three four Same Origin Cross Domain AJAX AJAX http://a.com/one 웹 브라우져 16
  • 17. 크로스 도메인 http://a.com http://b.com one two three four Cross Domain Same Origin AJAX AJAX http://b.com/three 웹 브라우져 17
  • 18. OpenAPI 문서 보기(1) 이름(Name) HTTP 주소(URL, URI, ...) + 메소 드(GET, POST, PUT, DELETE, ...) 요청(Request) 인자, 파라메터, Parameters, Arguments, ... 응답(Response) 반환값, 리턴값, 결과값, Result, Return, ... 18
  • 19. OpenAPI 문서 보기(2) 이름 요청 응답 19
  • 20. 화성인에게 API란? 외부 시스템이 내부 시스템이 제공하는 기능을 사용하기 위 해 지켜야 하는 규약 & 문서 그리고, 실제로 요청을 받고 응답을 하는 시스템의 맨 바깥 계층 & 코드 덩어리 그리고, 계층을 통해 규약에 맞춰 요청을 보내고 응답을 받 기 위한 코드 덩어리 20
  • 21. 금성인에게 API란 더 큰/좋은/잘나가는/전문 적인 서비스에 묻어가기 경쟁자를 파트너로 만들기 경쟁자에게 밀리지 않기 서비스 플랫폼으로 자리잡 고 돈 벌기 21
  • 22. Putting It All Together... 아임IN 안드로이드앱 써드파티 아임IN 서버 앱/매시업 아임IN 아임IN Private 리뷰 iOS앱 OpenAPI 아임IN OpenAPI 장소 찾기 아리맛 가입/로그인 발도장 찍기 발도장 공유 친구 찾기 페이스북 트위터 푸딩.투 OpenAPI OpenAPI OpenAPI 22
  • 23. 화성인 따라잡기 “좋아요” 버튼 달기 페이스북 개발자 등록 OAuth 인증/승인 타임라인 가져오기 타임라인에 글 올리기 친구 목록 가져오기 23