REST(RESTful)란 무엇일까요?
- 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미합니다.
- 즉, HTTP URI를 통해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미합니다.
REST의 장단점
장점
- HTTP 프로토콜의 인프라를 그대로 사용하므로 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
- HTTP프로토콜의 표준을 최대한 활용하여 여러 추가적인 장점을 함께 가져갈 수 있게 해준다.
- HTTP표준 프로토콜을 따르는 모든 플랫폼에서 적용 가능하다.
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.(구체적)
- 서버와 클라이언트의 역할을 명확하게 분리한다.
단점
- 표준이 존재하지 않는다.
- HTTP Method 형태가 제한적이다.(4가지)
REST가 필요한 이유
- 애플리케이션의 분리 및 통합
- 다양한 클라이언트의 등장
- 최근의 서버 프로그램은 다양한 브라우저와 안드로이드, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야한다.
REST의 특징
- Server - Client 구조
- 자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 Client가 된다.
- 서로 간 의존성이 줄어든다.
- Stateless(무상태)
- HTTP 프로토콜은 Stateless Protocol 이므로 REST역시 무상태성을 갖는다.
- 서버는 각각의 요청을 완전히 별개의 것으로 인식하고 처리한다.(각 API 서버는 Client의 요청만을 단순 처리한다, 이전 요청이 다음 요청의 처리에 연관되어서는 안된다)
- 서버의 처리 방식에 일관성을 부여하고 부담이 줄어들며, 서비스의 자유도가 높아진다.
- 캐시 처리 가능
- 웹 표준 HTTP 프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용할 수 있다.
- 캐시 사용을 통해 응답시간이 빨라지고 REST Server 트랜잭션이 발생하지 않기 때문에 전체 응답시간, 성능, 서버의 자원 이용률을 향상시킬 수 있다.
- 계층화
- Client는 REST API Server만 호출한다.
- REST Server는 다중 계층으로 구성될 수 있다.
- 인터페이스 일관성
- URI로 지정한 Resourse에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.
- HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 사용 가능하다.
'WEB' 카테고리의 다른 글
GET방식과 POST방식 (0) | 2021.07.02 |
---|