개방海 오픈API활용 가이드라인

오픈API란?

오픈API를 통해 받은 데이터를 자신이 만들고자
하는 서비스에 맞도록 재가공하여 프로그램을 개발할 수 있습니다.

시작에 앞서

본 가이드라인에서는 오픈API는 무엇이고 오픈API가 사용되어 지는 사례를 알아보고 구현방법 및 제공방법 그리고 최종적으로 2개이상의 오픈API가 융합되는 매쉬업 서비스로의 활용에 대해 알아보겠습니다.

1. 오픈API란?

오픈API는 일반적으로 여러 사람들이 공동적으로 사용할 필요가 있는 데이터에 대한 사용을 개방하고 사용자들이 해당 데이터에 대한 전문적인 지식이 없어도 쉽게 가공하여 사용할 수 있도록 데이터를 추상화하여 표준화한 인터페이스를 말합니다.

2. 일반적인 웹 검색과 오픈API의 차이점

일반적인 웹검색에 대한 결과는 그 결과에 대한 내용만을 인식할수 있지만 오픈API는 그 결과를 가공하여 자신만의 프로그램개발에 사용할수 있습니다.

오픈API를 통해 받은 XML이나 JSON형태의 데이터를 파싱하여 자신이 구현하고자 하는 프로그램에 맞게 사용이 가능합니다.

웹검색결과화면
일반적인 웹검색결과화면 (검색 결과 확인만 가능)
웹검색결과화면
오픈API 검색결과화면 (결과를 가공하여 자신의 서비스에 맞게 개발 가능)

3. 오픈API 제공 기업 및 공공기관 서비스 사례

기업/공공기관 사례
Google 광고를 위한 AdSense API, 지도서비스를 위한 GoogleMaps API 제공하여 친구찾기,부동산정보 등 300여개의 신규서비스를 창출
Amazon 이미 10년전부터 개발자 14만명이 아마존의 오픈API를 이용해 상품에 대한 정보를 핸들링하고 있으며 현재 여러가지 사업으로 오픈API를 활용하고 있음
eBay 3만명이 넘는 이베이 개발자, 월간 30억이 넘는 API호출, 47%이상의 상품이 API를 통해 등록되고 있음
공공데이터포털
(data.go.kr)
국민의 선택으로 선정된 '국가중점개방데이터' 36대 분야를 대용량 데이터로 개방
개방해
(khoa.go.kr)
해양공간주제 데이터를 WMTS, WFS, WMS 방식으로 오픈API 서비스
브이월드
(vworld.kr)
공간정보에 대한 데이터를 2D, 3D데이터로 오픈API를 통해 제공함과 동시에 원시데이터도 함께 제공

4. 오픈API의 일반적인 구현방법 및 제공방법

4.1 오픈API 구현방법 SOAP vs REST

A. SOAP (Simple Object Access Protocol) 방식
장/단점 설명
장점 * 언어, 플랫폼, 통신환경에 중립적
* 분산 컴퓨팅 환경을 다루기 위해 설계
* 웹서비스를 위해 보급된 많은 표준을 사용하여 구현할 수 있음
단점 * 기본적으로 REST방식보다 무거움
* REST방식보다 표준을 지키기위해 복잡성이 증가함
* REST방식에 비해 개발하기 어려움
B. REST (Representational State Transfer) 방식
장/단점 설명
장점 * 언어, 플랫폼에 중립적
* SOAP에 비해 개발하기 단순함
* 웹에 가까운 설계와 철학으로 간결함
단점 * point-to-point 통신 모델에 한해 구현되어 둘 이상을 대상으로 상호작용하는 분산환경에는 유용하지 않음
* 보안, 정책 등에 대한 표준이 없음
* 오직 HTTP 통신 모델에 의존함

※ 초기에는 SOAP방식이 많이 사용되었지만 REST방식의 소프트웨어 아키텍쳐 스타일이 제안된 후 SOAP방식의 표준이냐 REST방식의 간결함이냐의 선택에서 REST방식이 선호되고 있습니다.

4.2 오픈API 결과 제공 방법 XML vs JSON

A. XML (Extensible Markup Language)
장/단점 설명
장점 * Tag구조로 작성하기 간편함
* 사람이 직접 데이터를 읽기 쉬움
* DTD등 XML자체의 기능을 확장할 여지가 많음
단점 * Tag의 규정으로 실 데이터 이상의 문서의 양이 많이 필요함
* 배열구조, 반복구조일 경우 불필요한 데이터가 계속 나타남
* 데이터의 파싱이 JSON에 비해 느려짐
B. JSON (JavaScript Object Notation)
장/단점 설명
장점 * 내용이 함축적으로 최소한의 정보만을 가짐
* XML에 비해 전체 데이터의 용량이 크게 줄고 파싱속도도 빠름
* 구조상 파싱이 매우 간편하고, 객체구조와 배열구조의 조합으로 효율적인 데이터 구성이 가능
단점 * 내용이 함축적이다 보니 내용의 의미파악이 힘들수 있음
* XML에 비해 적은규격의 데이터 전송엔 적합하지만 대용량의 데이터 송수신엔 부적합함

5. 매쉬업서비스로 활용

Mashup? 매쉬업이란 '섞는다'의 의미와 '그걸 하나로 만든다' 라는 의미를 가지고 있습니다. 눈치가 빠르신분들은 벌써 아시겠지만 오픈API 서비스들을 여러곳에서 제공받아 그것들을 섞어 하나의 서비스로 만들 수 있습니다.

웹검색결과화면
개방해 배경지도 오픈API와 개방해 WFS 오픈API 정보를 결합한 매쉬업 결과

마무리를 지으며

이미 오래전부터 계속 이슈화되고 사용되고 있는 오픈API에 대해 알아보았습니다. 오픈API는 앞으로도 여러분야에서 다양한 방법으로 제공될것이고 그 결과로 오픈API를 활용한 많은 결과물이 서비스 될거라 생각하고 있습니다.
본 가이드라인을 통해 오픈API에 대한 전반적인 이해에 도움이 되었길 바랍니다.