아카이브/ICT

▶ICT노트 :: 웹2.0을 이루는 기술들 ① API, RSS, REST

비주얼라이즈 2015. 1. 12. 07:53



▶ICT노트 :: 웹2.0을 이루는 기술들 ① API, RSS, REST


지난 글에서는 '웹2.0이란 무엇인가'에 대해서 다뤄보았는데요, 이번 글에서는 '웹2.0을 이루는 기술들' 이라는 주제로 API, RSS, REST에 대해서 살펴보려고합니다.


>웹2.0이란 무엇인가? 글 바로가기


웹2.0을 이루는 기술 1. api


API는 많은분들이 알고 계시리라 생각하지만, 여기서 보다 자세하고 정확하게 살펴보려고합니다. API는 Aplication Program Interface의 약자이며, 사전정 정의로는 '소프트 웨어 어킆리케이션 개발을 위해 사용되는 여러가지 함수들의 집합'을 의미합니다. 즉, 'api를 공개한다'라는 말은 '특정 소프트웨어 또는 프로그램의 기능을 다른 프로그램에서도 활용할 수 있도록 표준화된 인터페이스를 공개하는 행위'로 이해할 수있습니다.






[네이버 개발자센터의 '오픈API'페이지 모습]



해외의 경우 검색포털인 구글과 야후는 검색API 뿐만아니라 다양한 API를 적극 공개하고 있고, 그 외에도 아마존, 플리커등의 사이트에서도 API를 개발자들에게 공개하고 있습니다. 국내의 경우에도 이미 네이버나 다음과같은 포털사이트는 물론 SK등과 같은 기업에서도 개발자들에게 다양한 형태의 API를 공개하여 개발자로 하여금 이러한 API기술을 바탕으로 다양하나 서비스들을 만들어 낼 수 있도록 그 밑바탕을 마련해주고 있습니다.



왜 API를 공개하는 것일까?


정부는 물론 여러 기업에서 API를 일반인들에게 적극적으로 공개하고 있는데, 그 이유에 대해서 한번 쯤 생각해보게 됩니다. 이들은왜 이렇게 적극적으로 API를 공개하는것일까요? API를 공개하는 정부기관 또는 기업에서는 API공개를 통해 자신들이 운영중인 서비스로의 트래픽 유입증대를 기대할 수 있게되며, 자신들이 제작하는 것이아니라 다양한 일반 개발자들이 제작한 서비스를 통해 제 3의 고객 또는 가치를 창출할 수 있다는 장점을 지니고 있습니다.






개발자들입장에서는 대부분의 API를 무료로 제공받음으로써 최소투자로 매쉬업 서비스를 구축할 수 있다는 점에서 긍정적이라고 볼 수 있습니다. 



웹2.0을 이루는 기술 2. RSS


이번에는 RSS... RSS...뉴스기사나 블로그의 글 주변에서 본 것만같은 바로 그 'RSS'에 대해 살펴보려고 합니다. '저게 뭐지?'라고 생각은 드는데, '굳이....찾아보긴 또 귀찮아'싶으신분들이 많으셨으리라 생각합니다. RSS는 Really Simple Syndication 또는 Rich Site Summary의 약자로 그 뜻을 생각해보면 '아주 심플한 배급'이나 '풍부한 사이트 요약글'정도로 생각해 볼 수 있습니다. 






RSS, 이거 어디에 사용하는 것인가요?


우선, 저를 포함한 많은 분들과 이 RSS는 직접적인 관계 또는 필요성이 낮거나 아예없었습니다. 그랬기에 무수히 많이 마주쳤음에도 자세하게 살펴보려고 하지 않았겠지요. RSS는 다양하나 웹사이트 상의 컨텐츠들을 요약하고, 이를 서로 서로 공유할 수 있도록 만든 '표준'입니다. 여기서 말하는 '웹상의 콘텐츠'라함은 업데이트 내용, 이벤트 캘린더, 상품 정보, 최신 뉴스 등 다양한 형태의 것들을 말합니다. 



RSS 사용으로인한 장점이라면 아무래도 각 사이트에 방문하지 않고도 새로운 소식. 즉 업데이트된 내용들을 받아볼 수 있다는 점입니다. 보다 구체적으로 RSS의 특징 및 장점을 나열해보면 다음과 같습니다.



RSS의 장점 및 특징


① 선택적 구독 가능 : 무분별한 뉴스레터 수신이 아니라, 자신이 원하는 주제나 테마, 언론사를 선택하여 업데이트 내용을 수신할 수 있음

② 빠르고 다양한 접근 :  업데이트와 동시에 사용자는 업데이트 내용을 접할 수 있고, 이는 다양하나 플랫폼에서 접근이 가능함.

③ RSS기록 관리가능 : PC, 스마트폰, 태블릿등 다양한 디지털 기기에서 구독하거나 이용한 RSS기록을 저장할 수 있어 이또한 다시 자료로 활용할 수 있음

④ 재사용이 가능한 유동적인 콘텐츠 : RSS는 구조화된 XML데이터이기때문에 RSS를 단순히 구독하는 것만이 아니라 다양한 서비스의 바탕으로 활용할 수 있다는 가치가 있음






웹2.0을 이루는 기술 3. REST와 SOAP


REST!! 저는 휴식을 말하는 것이 아닙니다. 여기서 말하는 REST란 Representational State Transfer의 약자입니다. 이것이 태어난것은 그리 오래되지않았습니다. 웹에서 이루어지는 통신을 위한 아키텍쳐스타일로서 개발된 REST는 Roy Fielding에의해 2000에 제안되었다고 합니다. 복잡하시죠? 이쯤에서 한문장으로 정리해볼 필요가 있는 것 같습니다.


REST는 XML과 HTTP를 사용하는 단순한 웹 기반 인터페이스를 지칭하며 특히 Open API구현에 많이 사용된다.




[사진 : 공공데이터 포털의 api제공화면]


위 사진은 공공데이터포털에서 "실시간"으로 제공하고 있는 api들을 검색했을 때의 화면입니다. 위에서 말씀드렸다시피 api활용면에 있어서 REST방식의 활용이 더 많이 이루어지고 있음을 짐작해볼 수 있습니다.



REST의 특징이라면?


REST가 SOAP와 다른 특징이라면, 아무래도 복잡한 메시징을 이용하지 않고, XML+HTTP의 형태를 사용하므로 기존의 다른 방법보다 4~10배까지 더 빠른 처리가 가능하다는 점을 꼽을 수 있겠습니다.





구글의 사례


구글은 다양한 API를 공개하는 대표적인 기업이라고 할 수 있습니다. 구글은 과거 SOAP방식의 검색API서비스를 제공해온 바 있으나, 2006년 12월 5일부로 SOAP방식의 서비스를 중단하고 REST 기반의 AJAX Search API를 공개하고 있습니다. 이는 SOAP보다 REST방식이 서비스 구현에 있어서 간결하다는 장점때문에 이루어진 결정이었습니다. 









그래프로 보는 REST vs SOAP vs JavaScript


두가지 방식과 함께 자바스크립트까지 포함하여 2005년부터 2011년까지 이용변화 추이그래프를 살펴보도록 하겠습니다.




[REST vs SOAP vs JavaScript 사용 비교 그래프]


그래프를 보면 확실히 REST방식의 사용이 급증하고 있다는 것을 어렵지않게 확인할 수 있습니다.