restful이란?

resutful 이란??

Rest는 Representation State Transfer의 줄임말로써, 표현 가능한 상태로 전송이라는 뜻.
최근에는 다양화 된 디바이스로 인하여 Restful Server를 사용하는 빈도가 많아지고 있습니다.
이렇게 되면서 하나의 클라이언트를 위한 서버를 구성하게 되면 비효율 적인 일처리가 되므로,
하나의 서버로 다양한 클라이언트에게 대응할 수 있게 하는것이 바로 RestAPI입니다.
기존의 웹 클라이언트와의 통신은 데이터와 html코드를 넘겨 화면구성까지 해줬다면, Restful은
xml,json형식으로 데이터만 주고받아 다른 구조를 가지고 있는 디바이스에서 유지보수가 용이합니다.
또, restful은 Controller에 매핑해놓은 메소드 이름을 url에 포함하여 접근하기 때문에,
어떠한 액션을 수행하려고 하고 무슨 개체에 대해 작업을 하는지 직관적으로 보기 쉬워,
오픈 API로써의 활용이 가능해집니다.

restful
Restful의 목표
  • 구성요소끼리의 통신규모를 확장 시킬수 있습니다.
  • 인터페이스를 범용적으로 사용할 수 있습니다.
  • Data만을 송수신. 응답시간을 감소시킬 수 있습니다.
    RestAPI 구현의 제한 조건
  • 클라이언트와 서버는 일관적인 인터페이스로 분리되어야 합니다.
  • 각 요청간에 클라이언트의 context가 서버에 저장되면 안됩니다.
  • 클라이언트는 리퀘스트를 캐싱할 수 있어야 합니다.
  • 아키텍쳐를 단순화시켜 분리, 클라이언트와 서버가 독립적 개선되게 합니다.

xml,son형식으로 통신을 하는데, 자바프로그래밍에서는 보통 jsonData를 주고 받습니다.

Json이란?

Javascript Object Notation의 약자이며, 객체 형식으로 자료를 표현해줍니다.
Json은 데이터를 {key:value[,key:value]} 형식으로 표현하는 데이터 포맷이며,
간단한 데이터를 xml보다 간편하게 표현하기 위하여 만들어졌습니다.
xml처럼 부가기능이 없기 때문에 parsing도 빠르며 간단하기 때문에 클라이언트쪽이나
모바일사이트에서 유용하게 사용되고 있습니다. 그러나 Json Data는 해당 자바스크립트가
로드된 서버의 데이터가 한정되어 있습니다.구글,네이버같은 상용웹페이지에서의
데이터를 해당 사이트에서 받아올 수 없습니다. 왜냐하면 Json은 단순 데이터 포맷이고,
그 데이터를 불러오기 위해서는 XMLHttpRequest()함수를 사용해야 하는데, 이 함수는
동일한 서버에 대한 것만 지원합니다. 이 문제를 어느정도 해결할 수 있는 Jsonp가 있습니다.

Jsonp란?

Json에서 말한 문제는 Same-Origin Policy정책으로 인해 야기됩니다.
브라우저에서 다른 도메인으로 접속을 원천적으로 봉쇄하는 것인데, 만약 이런 정책이 없다면
디도스 공격이나, 악성코드들로 그 도메인이 가득 채워 질 것입니다.
하지만 요즘같이 복잡하게 엮여있는 웹 환경에서 다른 사이트간 데이터 교환은 필수상황입니다.
이것을 해결하기 위하여 jsonp라는 개념이 생겼습니다.
jsonp는 get방식만을 허용하기 때문에 데이터 크기가 제한되어 있는 단점이 있습니다.

Share