REST = “Representational State Transfer”
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
REST는 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미
REST API의 설계규칙을 잘지켜, REST 아키텍쳐를 잘 구현했다고 했을 때 'RESTfull'하다고 한다.
클라이언트와 서버의 완전한 분리
사용하기 쉬운 API
명확한 표현
즉, RESTful한 API를 구현하는 근본적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이니, 성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할 필요는 없다.
GraphQL
gRPC
SOAP(Simple Object Access Protocol)
WebSocket
SSE(Server-Sent Events)
EDA(Event-Driven Architecture)
네트워크 상에서 Client와 Server 사이의 모든 통신 아키텍쳐가 Rest API와 비교가 가능하다.
출처, 자세한 내용: https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
너무 좋은 글이네요. 공유해주셔서 감사합니다.