최근 API 환경이 발달하고 관련 시장이 커지면서 상업적인 목적으로도 API에 대한 관심이 커지고 있으며 열린 정부를 위한 첫번째 단계로 공공데이터 개방 측면에서도 API는 가장 중요한 이슈 중에 하나입니다. 정부에서도 공공데이터 개방을 화두로 적극적으로 각 공공기관들이 데이터를 개방할 수 있도록 독려하고 있으며 지원 사업도 매우 활발하게 지원하고 있습니다. 이번 'API Meetup' 행사도 이런 큰 관심과 맞물려 데이터를 API로 개방하는 실무자들의 입장에서 의견을 나누는 자리를 마련하기 위해 다음에서 주관한 행사로 주로 비즈니스 관점에서 API 시장과 환경을 이야기하는 자리였지만 공공데이터를 개방하는 입장에서도 좋은 이야기들이 나와서 후기를 남겨봅니다.

초청된 연사는 총 세분으로 API 서비스 프로바이더 '3Scale'의 CEO Steven Willmot, API 솔루션 제공업체 Layer 7의 Mike Amundsen, 다음 개발자 네트워크 오픈 API 에반젤리스트 윤석찬님이였습니다.

1. 글로벌 API  서비스 동향 및 미래 - Steven Willmott

API의 주된 정의는 HTTP 통신을 통해 JSONXML 형태의 -쓸모있는 - 데이터를 실시간으로 전송하는 것을 의미하는데 API 시장이 발달하는 가장 큰 이유로 최근에는 HTML5의 등장으로 웹개발이 마치 앱개발의 개념과 동등해지면서 여러 주요 기능들을 외부 API를 통해 쉽게 구현이 가능해졌다는 것을 꼽았습니다.

최근에는 API를 사용하지 않는 웹/앱을 찾아보기 힘들 정도로 서비스를 구현하는데 필수적인 기능이 되면서 마찬가지로 공공데이터 분야에서도 일반적인 형태의 데이터셋 뿐만 아니라 실시간으로 변동하는 데이터 - 소비자원의 소비자 물가 등 - 의 경우 API로 제공하면 일반 개발자들이 활용할 수 있는 가치가 훨씬 높아지는 것이죠. 공공의 가치를 높여주는 시민들을 위한 서비스는 대게 웹 혹은 앱 형태로 만들어 지는데 이에 API로 제공되는 데이터들은 훨씬 가치가 높아질 수 있는 것입니다.

오픈 API로 대표되는 아마존과 에버노트 등의 기업들이 비즈니스 측면에서는 가장 좋은 예가 될 수 있습니다. 다양한 기능을 오픈 API로 공개하면서 단지 API를 제공하는 기업이 아닌 플랫폼으로서의 기업이 된것이죠. API를 제공하는 기업 측면에서는 무료 혹은 제한적 유료 정책을 통해 API를 제공하여 새로운 API 공개에 들어가는 비용을 넘어서는 수익원이 될 수 있고 그 기업을 중심으로 훨씬 커다랗고 새로운 일반 개발자 및 비즈니스 생태계를 만들어 낼 수 있습니다. 마찬가지로 열린 정부를 실현하기 위한 중요한 첫 걸음일 수 있는 것이죠. 코드나무에서도 공공데이터를 위한 커뮤니티 열려라 공공데이터, 서울시 Open API 검수 프로젝트, 그리고 시민들에게 유용할 수 있는 데이터들을 찾아 해당 공공기관에 공공데이터 개방을 요청하는 등 시민들이 활용할 수 있는 유용한 데이터가 많아지도록 노력하고 있습니다. 즉, 데이터 개방이 열린 정부를 위한 첫단추임을 인식하는 것이 중요합니다.

Progress in the API Economy - April 2014 from 3SCALE

2. 웹2.0과 오픈API 출현 - 윤석찬

웹 2.0 환경에서의 오픈 API에 대한 내용은 왜 기업들이 앞다투어 API를 외부에 공개하기 시작하게 되었는지 API를 공개하면서 얻게되는 장점들과 유의사항들에 대해 다음 API 사례를 중심으로 설명하였으며 앞서 Steven Willmott이 발표한 내용 중 일부를 조금 더 자세히 들여다 볼 수 있었습니다. 특히 API를 무조건 공개하는 것이 좋은 것 만은 아니며 다음과 같은 유의 사항들을 참고하면 좋을 것 같습니다.

  1. API는 먼저 가치있는 서비스를 제공해야 한다. 나에게는 가치 있고, 서드파티에는 부가적인 것
  2. API 비지니스 모델을 명확하게 설정해야 한다. 20여가지 모델이 있고, API 설계시 비즈모델도 필요
  3. API는 쉽게 사용할 수 있어야 한다. 개발자들이 읽기 쉽고 개발하기 쉬운 리소스 제공 필요
  4. API는 외부 개발자 지원이 필요하다. 신뢰를 쌓고 서로 상생하는 모델을 추구해야 한다.

물론 비즈니스 생태계를 만들기 위한 기업들에 해당될 수 있는 유의사항이지만 공공데이터를 개방하는 공공기관에서도 충분히 참고할 수 있는 내용이라 생각됩니다. 단순히 공공기관에서 보유하는 데이터를 아무런 기준없이 공개하는 것이 아니라 시민들이 궁금해하고 필요할 수 있는 가치있는 데이터들을 우선적으로 선별하여 공개함으로써(1) 외부의 시민 개발자들에게도 동기부여가 되고 원동력이 될 수 있는 것이죠(4). 더불어 데이터셋 형태로 공개할 때는 최대한 개발자들이 가공하기 편하도록 재사용이 쉽도록 필드를 구분시켜주는 것이 좋으며 위에서 언급한 것처럼 용도에 따라 데이터셋이 아닌 API 형태로 제공하면 훨씬 가치가 높아지는 것도 데이터 개방시 참고해야 할 내용입니다(3).

Daum apis in api meetup 2014 from Channy Yun

3. 재사용 가능한 API - Mike Amundsen

좀 더 나은 API 생태계를 위하여 API를 설계할 때 하지 말아야 할 10가지 원칙에 대한 이야기를 들을 수 있었습니다. 간략하게 요약한 다음의 10가지 유의사항을 살펴보시죠.

  1. 프로토콜(혹은 URL)에 너무 의미적 표현을 담지 말고, 요청 결과 메시지에 담아라!
  2. 사람이 읽는 문서화 파일에 시간을 들이지 말고, 좀 더 읽기 쉬운 하이퍼미디어를 활용해라!
  3. 개발자들이 프로토콜 전문가라고 생각하지 말고, 가급적 SDK나 라이브러리를 제공하라!
  4. 나의 객체 모델을 사람들에게 전달하려 하지말고, 결과 메시지 모델로 알려주라!
  5. 서비스를 싱글 인스턴스로 설명하지 말고, 추상화된 클래스로 설명하라!
  6. 작업 순서를 클라이언트 코드에 담도록 하지 말고, 결과 메시지에 링크로 담아라.
  7. 외부 개발자들의 코드에 문제가 생기지 않도록, 호환성 및 신규 기능 분기를 잘해라.
  8. 외부 개발자가 계속 코드를 수정하도록 하지 않게, 신규 기능은 Dark release(모르게 출시)해라.
  9. 하나가 죽으면 다 죽지 않도록, API 자체도 분산하고 캐싱을 하도록 해라.
  10. API가 완벽하도록 운영할거라 생각하지 말고, 확률의 물리 법칙에 따르라.
Reusable APIs from Layer 7 Technologies

 

다음은 첨부한 발표자료에 포함된 내용으로 API를 설계하는데 참고할 수 있는 자료들입니다.

API Codex - 3Scale

API Tools - 3Scale

API Academy - sponsored by CA Technology

개발자 지원 핸드북 (한글) - Pamela Fox(번역: 다음)

 

*참조

"API 산업은 초기 단계... 더 많은 참여가 필요하다" - 미트업 후기 - 다음 개발자 네트워크