[XML응용]Open API 및 Semantic Web과 XML의 관계

류명운

·

2015. 9. 10. 07:00

반응형

Open API와 XML의 관계

 

우리가 살아가는 오늘 날의 정보화 시대에는 무엇보다 중요한 것이 데이터의 활용이다. 그렇다면 넘처나는 데이터들 중 우리는 어떻게 필요한 데이터들을 취득하고 사용할 수 있을까?

 

이에 대한 답으로 우리는 이번 과제에서 조사하는 'Open API'와 'XML'을 들수 있겠다. 

 

그렇다면 Open API는 뭐고 XML은 뭐냐?

 

우선, 'Open API(Application Program Interface)' 말 그대로 '개방된 API' 를 뜻한다. 개방된 API란 클라이언트가 일방적으로 서버의 서비스 결과 데이터 및 사용자인터페이스(UI) 등을 제공 받는데 그치지 않고 서버로부터 해당 데이터를 직접 사용하여 응용프로그램과 서비스를 개발할 수 있도록 공개된 API를 말한다.

 

그렇다면 이러한 Open API를 개발자 입장에서 어떻게 제공받아 사용할 수 있을까?

 

지난 학기 네트워크시간에도 귀에 못이 박히도록 배웠겠지만, 어떠한 양방향 통신을 하기위해서는(Open API를 제공받고 사용하기 위해서는) 두 매체간에 약속한 프로토콜이 존재하여야 한다. 즉, 포맷이 같아야 한다는 뜻이다.

 

이렇듯, Open API를 활용하기 위해서는 정보를 제공자 측에서 정해 놓은 규칙에 따라서 요청해야 된다.

(예를 들자면 버스의 위치 얻기 위해서는 버스의 정류장과 버스 번호를 알려줘야 되는 식이라고 생각하면 된다)

 

Open API는 현재 Parlay Group, ETRI, 3G PP 등에서 표준화가 진행되고 있으며, 통신망의 기능을 추상화하는 정도에 따라 CORBA 기반의 Palay/OSA API와 웹 서비스 기반의 Palay X API로 나뉘어 추진되고 있지만 이번 과제에서는 Open API와 XML의 관계에 대해 알아보는데 제한이 있기때문에 웹 서비스 기반의 Palay X API에 대해 알아보는데 제한을 두었다.

 

이제 드디어 XML이 나오게 된다. 그 전에 수업시간에 이미 XML에 대한 개념을 배웠지만 복습하는 차원에서 잠깐 개념을 짚어보고 최종적으로 Open API와 XML의 관계에 대해 설명하도록 하겠다.

 

 

XML이란?

 

'Extensible Markup Language' 의 줄임말이다. XML인데 왜 Ex로 시작하냐고 질문을 던지는 사람들이 있을것 같아 잠시 설명하자면, 이는 'ex-'로 시작하는 단어에서의 일반적인 이니셜 선택 방법이다.

 

다시 XML의 개념으로 넘어와서 'Extensible Markup Language' 즉, 확장형 마크업 언어이다. 확장형 마크업 언어? 확장형 마크업 언어를 알려면 무엇을 먼저 알아야되는가? 당연히 마크업 언어에 대한 개념을 먼저 숙지해야 한다.

 

마크업 언어(Markup Language)는 원래 인쇄할 때 사용하는 조판 지정 언어로 인쇄할 내용의 문단, 폰트 등을 지정하는데 사용했던 언어였던 것이다. 그러다가 요즘처럼 텍스트 데이터에 처리할 내용을 응용프로그램에게 지시하는 언어로 개념이 확장되었다. 이러한 마크업 언어를 설명할 때 빠뜨릴수 없는 언어가 있는데 바로 SGML(Standard Generalized Markup Language)이다. SGML은 수업시간에도 강의자료를 통해 배웠듯이 데이터 저장과 교환을 위해 채택된 국제 표준언어로 HTML과 XML의 모태가 되는 언어이다. 설명을 덧 붙이자면, SGML을 이용하면 새로운 태그 집합을 정의해서 새로운 언어를 만드는 것이 가능한데 이러한 새로운 태그를 정의할 수 있다는 장점을 가지면서도 문법이 상대적으로 간단한 언어로 개발된 것이 바로 우리가 이번학기에 배우는 XML이다. 따라서, XML의 'Extensible'은 태그의 확장이 가능하다는 의미로 붙여진 것이다.

 

개념 설명이 너무 길었나? 그렇다면 요약하자면 우리는 여기서 이거 하나만 기억하면 된다. "XML은 새로운 태그 집합을 정의할 수 있다는 것(태그의 확장이 가능)"

 

 

이제 XML에 대한 전반적인 개념이 잡혔으리라 생각하고 본론에서 설명하던 Open API와 XML의 연관관계에 대해 설명하겠다.

 

앞서 설명한 바를 요약하자면 Open API란 데이터를 사용자에게 일방적으로 제공받는것 아닌 사용자가 데이터를 직접적으로 가공하여 응용프로그램과 서비스를 개발할 수 있도록 제공하는 것을 뜻한다고 하였고, XML은 새로운 태그 집합을 정의할 수 있는 언어라고 소개하였다.(뭔가 느낌이 오지 않는가? 안온다면.............. fail.............. 장난이고..)

또한, Open API를 개발자가 사용하여 응용프로그램을 개발하려면 서버로부터 특정한 형식?의 포맷으로 데이터를 제공받아야 한다고 설명하였다. 바로 이때 사용하는 포맷이 'XML'이다. (XML 외에도 JSON, XLS의 포맷으로도 제공 된다)

(이제 이해가 뙇! 똬따따따따뙇! 되지 않는가? 최소 "아~!" 라는 감탄의 이해가 안됐다면 본문을 다시 정독하길 바란다...힌트:XML은 태그 확장이 가능하다)

 

 

여태까지 Open API와 XML의 개념적인 측면에서의 관계를 알아보았다.

 

 

마지막으로 Open API와 XML의 예를 알아보도록 하겠다.

 

국내에서 Open API와 XML의 예를 찾기는 그리 어렵지 않다. 우리나라는 이미 국가정책적인 차원으로 Open API와 XML을 활발히 사용하고 있다. 국가정보화 정책 기조에 따르면, 국가산하 공공기관들은 여러 공공데이터를 국민들의 활용성을 높이기 위해서 원천데이터의 공개를 우선되어야한다고 나와있다. 이렇듯 공공기관들은 이미 공공데이터를 Open API와 같은 형태로 가공된 프로그램을 제공하고 있고, 우리는 그 중 XML 형태의 포맷을 사용하여 해당 데이터를 목적에 따라 사용하여 특정 응용프로그램 및 서비스를 개발할 수 있게되는 것이다.

 

이 밖에도 수 많은 IT 대기업들은 자사의 기술 및 서비스 등을 Open API 형태로 제공하고 있다.

 

 

참고문헌(reference)

 

1. 공공정보 민간활용 촉진 종합계획(국가정보화전략위원회, 2010.3)

2. 데이터 기반 창조경제 구현방향(한국정보화진흥원, 2013.2)

3. 서울시 오픈데이터 전략과 숙제(서울시 정보시스템담당관, 2012.8)

4. 위키백과(https://ko.wikipedia.org/wiki/




시멘틱 웹(Semantic Web) 와 XML의 관계

 

시멘틱 웹에서는 RDF(Resource Description Framework : 자원서술) 기술이 있다.

RDF는 다음과 같다.

1) 웹 기반의 메타데이터 기술과 교환을 위한 구조

2) 상이한 메타데이터간의 의미(semantics), 구문(syn tax), 구조(structure)에 대한 공통적인 규칙을 지원

3) 메타데이터간의 상호운용성(interoperability)을 지원해 웹에 존재하는 다양한 형태의 메타데이터간의 상호운영이 가능하도록 함


이 때 표현 방법이 바로 XML이 사용된다. 쓰이는 방법은 다음과 같다.

 - XML 형태의 <meta> 태그에 의해 표현 방법

 - 정보 리소스들 사이의 연관성을 기술하기 위한 수단을 제공해 주기 위해 개발

Ex) 비디오 가게

- 메타정보 : 비디오 테이프

- 정보 : 장르, 대여일, 대여횟수

- XML을 기반으로 하지만 추구점에는 차이가 있음

- XML은 데이터의 구조를 정의하는 것이고, RDF는 데이터의 의미를 정의

- XML과 RDF는 상호 보완적인 관계

- MP3, PDF등 다양한 형식을 검색할 수 있음

반응형