REST 와 GpaphQL 비교

Jintae Kim·2023년 10월 21일
0
post-thumbnail

REST (Representational State Transfer)

2000년 로이 필딩(Roy Fielding)에 의해 소개된 개념. 로이 필딩은 HTTP(HyperTest Transfer Protocol)의 주요 저장 중 한명. HTTP는 www 상에서 정보를 교환할 수 있는 프로토콜로, 웹에서 이루어지는 모든 데이터 교환의 기초.

REST 제약사항을 만족하는 API는 데이터 자원의 단위를 뜻하는 "리소스"에 대한 표현과 리소스를 조작하는 방법을 함께 전송한다. 이 정보는 GET, POST, PUT, PATCH. DELETE 와 같은 HTTP METHOD를 사용하여 표현한다.

POST /user
{
	"name": "James Bond",
    "Job": "Spy"
}

user 라는 리소스를 URI 형태로 표현한다. method 는 POST 이다.

REST 는 현재까지 사용되는 API 패러다임 중에서 가장 많이 사용하는 방식이다.REST 룰을 엄격히 따르는 API를 RESTful API 라고 표현한다. REST는 client / server 구조로의 분리를 가속화 했다.

REST는 몇 가지 제약으로 HTTP를 올바르게 사용하는 것을 제안.

1. 클라이언트 와 서버 구조 (Client and Server)

클라이언트와 서버구조를 따르라는 제약. 각 구성요소는 독립적으로 발전하며, 서로 합의된 인터페이스를 통해 소통함. 이 제약은 구성요소 간의 과도한 결합을 막고 확장성을 향상시킴.

2. 서버의 무상태 (Stateless)

서버는 상태를 가지면 안된다. 서버는 들어오는 요청만을 처리하고, 상태를 저장할 필요가 없다. 이로써 구현이 단순해지고 확장성에 유리해진다. HTTP의 비연결 지향 특성과 결을 같이한다.

3. 캐시 가능 (Cacheable)

HTTP의 주요 기능 중 하나인 Cache 기능을 적극적으로 활용한다. 캐싱을 통해 서버와 클라이언트간의 상호작용을 효율적으로 처리하여 성능의 향상을 도모한다.

4. 인터페이스의 일관성 (Uniform Interface)

클라이언트, 서버는 일관된 인터페이스를 가져야 한다. 이를 통해 일관된 개발과 일관된 상호작용 방식을 정립하여 구현을 단순하게 한다. 또한, 플랫폼에 종속되지 않을 수 있다.

profile
공부하고 또 공부하고 또 공부하고

0개의 댓글