블로그 보관함

2014년 3월 18일 화요일

REST API

원격에 존재하는 함수를 호출하기 위해서는 서버에서 제공해주는 방법을 사용하여야 한다. 이 때 서버에서 제공해주는 특정 방식과 양식을 API라고 한다. 서버에 요청하는 언어별로 다른 API를 제공하는 것이 어렵고 귀찮게 되어 도입하게 된 것이 REST API 방식이 되겠다. 이것은 HTTP 기반의 원격함수로서 언어별로 다른 방법을 제공하지 않아도 되기 때문에 널리 사용하게 되었다. REST full 으로도 불리며 서버 API를 요청하는 것에 대한 인증이 필요하다. 완전히 오픈하여 누구나가 사용할 수 있게 하면 생길 수 있는 문제에 대해 보호를 하기 위해 요청을 하는 이에 대한 인증이 필요하게 되었고 굵직한 서버들로부터 인증방식이 출발하게 되었다. 이렇게 되자 작은 영세 서버들이 반발을 하게 되었고 그런 영세 서버들을 보호하기 위하여 표준이 생기게 되었다. 이것이 이른바 OAuth라고 하는 표준이 되겠다. 자세한 설명은 위키피디아:OAuth 를 참조하길 바란다. 


**표준은 강자를 위하여 만들어 지는 것이 아니라 약자들을 보호하기 위한 최소한의 방어막이다. 
>>> 강자는 자신만의 Unique 를 갖고자 한다. 
    대표적인 예) Apple


Twitter에서 제공해 주는 API를 이용해서 Twitter에 자료를 요청하려면 직접 서버에 요청하는 것은 불가능하고 대행 서버를 이용해야 한다. 이는 인증이 된 요청자의 개인정보 보안을 위한 목적이지만 또한 서버측면에서는 인증 요건이 유출되어 서버에 대한 공격을 막기 위함이기도 하다. 서버사이드를 프로그래밍 하기 위해서는 JAVA, PHP, ASP, Python 등이 있지만 이번에는 기존에 배워오던 JavaScript를 이용해서 서버를 구축하는 방법을 살펴보고자 한다.
JavaScript를 이용해서 서버를 구축하기 위해서는 NodeJS 프로그램을 이용해야 한다. 이 Node JS는 Chrome 과 같은 v8 Script 엔진을 사용하기 때문에 구동이 되는 부분과 되지 않는 부분을 코딩 할 때는 Chrome 브라우저를 통해 확인할 수 있다.

NodeJS를 이용한 서버는 단발성 요청을 보내고 받는 것에 유용하고 세션을 유지해야 하는 서비스를 제공하기에는 적합하지 않다. 따라서 이후 트위터에 자료요청을 하는것과 같은 작업을 수행하기에 적합한 방법이라 할 수 있겠다.

댓글 없음:

댓글 쓰기