REST
“Representational State Transfer”의 약자입니다.
REST는 웹을 통해 리소스를 전송하기 위한 정해진 표준 집합입니다. REST 방식은 일반적으로 API(“REST API”)에 적용되며, 이를 통해 개발자는 인터넷을 통해 원격 시스템의 데이터에 액세스할 수 있습니다.
REST는 다음과 같은 6가지 아키텍처 제약 조건을 정의합니다.
- 클라이언트-서버 모델 – 서버는 클라이언트 요청을 처리하고, 클라이언트는 서버에서 필요한 데이터에만 액세스할 수 있습니다.
- 무상태 – 요청은 일시적이며 서버에는 클라이언트 데이터가 저장되지 않습니다.
- 캐시 가능 – 성능을 향상하기 위해 요청을 캐시할 수 있습니다.
- 일관된 인터페이스 – 모든 사용자와 시스템이 데이터에 일관된 방식으로 액세스할 수 있어야 합니다.
- 계층형 시스템 지원 – 요청을 계층적으로 처리하고 여러 시스템을 거쳐 라우팅할 수 있습니다.
- 주문형 코드(선택 사항) – 서버는 클라이언트 시스템에 실행 코드를 전달할 수 있습니다.
REST와 SOAP 비교
REST는 인터넷을 통해 데이터를 전송하기 위한 또 다른 표준 집합인 SOAP과 자주 비교됩니다. 하지만 REST는 단순한 설계 방식인 반면, SOAP는 구체적인 규칙과 명령을 갖춘 실제 프로토콜입니다. REST API와 SOAP API는 모두 HTTP를 통해 데이터를 전송하지만, SOAP는 XML 데이터로 제한되는 반면 REST는 더 유연합니다.
SOAP는 공식 프로토콜이므로 SOAP를 통해 전송되는 모든 메시지는 헤더와 본문으로 구성된 동일한 “봉투” 형식을 사용해야 합니다. SOAP 이후에 등장한 REST는 제약 조건이 더 적으며, SOAP의 경량 대안으로 여겨지는 경우가 많습니다.
NOTE: REST 지침을 준수하는 API는 기술적으로 “RESTful API”라고 부르지만, 많은 개발자는 대신 이를 “REST API”라고 부릅니다.
지식 테스트하기