21
오픈API 개발 전략 & 기술적 고려사항 네이버랩스 옥상훈 2016-05-09

네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

오픈API 개발 전략 & 기술적 고려사항

네이버랩스

옥상훈

2016-05-09

Page 2: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

플랫폼의 기능을 외부에서 쓸 수 있도록 개방한 API

운영체제, 어플리케이션, 라이브러리 등 다양한 수준의 인터페이스

소프트웨어가 서로 의사 소통을 하는 규약

API (Application Programming Interface)

Page 3: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

출처: http://www.slideshare.net/TESOBE/open-bank-projectsocialopendatach01

Page 4: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

http://techcrunch.com/2016/05/21/the-rise-of-apis/

Releasing software as an API

The rise of APIs

Page 5: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

http://techcrunch.com/2016/05/21/the-rise-of-apis/

매출의 50% 매출의 60%

The rise of APIs

Page 6: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

API 제공을 위한 고려사항

WHY WHO WHAT HOW

Page 7: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

서비스 이용 증가 컨텐츠량 증가 비즈니스 모델

•예) 트위터, 구글지도 API •예) 트위터, 유튜브 API •예) 구글지도 API 트위터 API 유료화

우수 앱 양산

•예) 트위터 써드파티 앱

WHY

Page 8: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

WHO

API Key Access Token Trusted Server

Page 9: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

(기존) 각 API 별로 API키를 발급 받아 사용 (변경) API 이용신청 또는 애플리케이션 등록 후 API 권한 설정화면에서 사용할 API 체크

네이버 오픈 API인증방식

기존에는 각 API별로 API 키를 발급받아 사용하였지만, 이제는 API 이용 신청 또는 애플리케이션을 등록한 다음, API 권한 설정화면에서 사용하려는 API를 체크해 주시면 됩니다. API를 호출할 때는 API 키 대신 애플리케이션 등록 시 발급 받은 클라이언트아이디와 시크릿 값을 HTTP헤더에 전송하는 것으로 변경되었습니다.

[ 기존 ] [ 변경 ]

Page 10: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

WHAT

Functions Platform Contents

Page 11: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

HOW

Web Servcies 1

In Service 2

SDK 3

- 웹 프로토콜로 제공 - 데이터 전송 처리 중심

- 완성된 형태로 구현이 가능 - 웹/앱에 간단한 코드로 서비스 연계 가능

- 소켓과 같은 특수 프로토콜 구현 - 개발의 편의성

Page 12: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

API 개발시 고려 사항

스펙정의 버전관리 에러코드 개발 가이드

이 모든게 자동화 되어야…

Page 13: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

개발자의 상식이 통하는 API

( * 일부 API 들은 추후 개선 예정입니다. )

RESTful 하게 동작

JSON 으로 결과 리턴

Error Code는 http status 코드에 맞게 if (errorCode == 200) { // success } else if (errorCode >= 400) { // error }

{"message":{"@type":"response","@service":"naverservice.labs.api","@version":"1.0.0","result":{"translatedText":"I love you."}}}

https://openapi.naver.com/v1/language/translate

Page 14: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

API 디자인 툴

출처: http://apievangelist.com/2014/01/16/api-design-do-you-swagger-blueprint-or-raml/

Page 15: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

• 통신 – HTTP

– Streaming (실시간 대량 데이터 전송 시)

• 데이터 포맷 – XML

– JSON (XML보다 가볍고 빠른 처리 가능)

• 프로토콜 – REST

– XML-RPC

– SOAP

웹서버에서 처리 가능

Open API 구현 기술 – 프로토콜 관점

Page 16: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

Open API 구현 기술 – API 비즈니스 관점

• 인증 – API 호출시 허가된 사용자인지 확인

– API Key 발급, OAuth 인증

• 트래픽 제어 – API 허용량만큼 쓰도록

– 서버 스케일링

• 통계 – 사용량 통계 -> 과금 처리

– 어뷰징 감지

API Gateway 서버 (웹서버 겸)

Page 17: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

Open API 구현 기술 – API 개발사 관리 관점

• 개발자 등록 – 기본 정보

– 애플리케이션 정보

• API 키 발급 – API 별 발급

– 요청 API 및 사용량

• 통계 – API 사용량 관리

– 제휴 신청

• 개발 지원 – 개발자 가이드

– 커뮤니티, Q&A

API 포털

Page 18: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

API 매니징

출처: http://www.3scale.net/2014/11/practical-advice-api-lifecycle-part1/

www.apitools.com 3scale.net

Page 19: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

네이버 개발자센터 리뉴얼 (2016.1.26)

https://developers.naver.com

Page 20: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

새로운 API 추가 (beta)

[음성합성] 텍스트를 아나운서 음성으로 들으실 수 있습니다. 현재 4개 언어(한국어, 영어, 일본어, 중국어)를 지원합니다.

[음성인식] 음성 데이터를 텍스트로 변환해 줍니다. 현재 2개 언어(한국어, 영어)를 지원합니다.

[기계번역] 영어<->한국어, 중국어<->한국어, 일본어<->한국어 번역을 지원합니다.

[캡차] 자동 입력 방지를 위해 보안 문자가 포함된 이미지를 전송하고 입력 값을 검증합니다.

Page 21: 네이버랩스 옥상훈BF%C1%BB%F3%C8%C6.pdf · (기존) 각 api 별로 api키를 발급 받아 사용 (변경) api 이용신청 또는 애플리케이션 등록 후 api 권한

- 감사합니다 -

https://developers.naver.com