RESTfull API와 GraphQL의 차이점?

SeungMin·2022년 11월 8일
0

RESTfull API

정의

Representational State Transfer(REST) full API
여기서 REST를 직역하면 대표 상태 전송이 된다.

REST는 기본적으로 고유의 URI를 부여하고
HTTP Method를 이용해 리소스에 대해 CRUD 명령을 적용하는 과정을 거치는데

즉 위에서 말한 대표 상태 전송

리소스를 대표하는 URI를 통해 리소스의 상태를 응답으로 전송한다는 의미이다.

REST full API 는 위의 과정이 적용된 API 통신 방식을 뜻한다.

엔드포인트

//REST API

→ json.com/picture
→ json.com/picture/big
→ json.com/picture/big/black

정의에서 설명한 바와 같이 원하는 데이터를 가져오기 위해선
데이터에 해당하는 고유한 엔드포인트를 지정해야 하기 때문에
고유한 엔드포인트가 무수히 많다.


GraphQL

정의

RESTfull API와는 다르게 이름에 별도의 뜻이 있지는 않다.

풀어서 적으면 Graph Query Language이며 어플리케이션 레이어 쿼리 언어이다.

이름에서 알 수 있듯 쿼리를 사용한다.

엔드포인트

하나의 루트 URI만 존재하며 세부 데이터는 쿼리문에서 요청한다.

// GraphQL

query {
    ActorData(personID: 1) {
        name
        height
        mass
        language
    }
}

쿼리문을 통해서 원하는 데이터만 골라서 응답 받을 수 있다.

차이점

GraphQLRESTfull API의 가장 큰 차이점은 고유의 URI를 통해 통신 한다는 점이다.

RESTFull API에서 처리하는 요청의 종류가 다양해질수록 구현할 엔드포인트도 많아진다.

다른 차이점으로는 GraphQL의 쿼리문을 처리하기 위해서는
클라이언트와 서버 중간에 Service Broker가 존재해야 한다.

기존에서 서버에서
요청을 받으면 요구한 데이터를 조합하고 응답하는 두가지의 로직이

Service Broker에서 쿼리문을 처리하여 응답할 데이터를 요청하고
서버는 해당 요청에 바로 데이터를 응답하는 방식으로 분리된 것이다.

이렇게 역할을 나누어 모듈을 분리할수록 유지 보수는 쉬워지지만 구현은 복잡해진다.

profile
공부기록

0개의 댓글