GraphQL ?
- GraphQL은 쿼리 언어 및 런타임 시스템으로 클라이언트가 필요한 데이터를 정확하게 요청할 수 있도록 하여 보다 효율적이고 유연하며 강력한 API를 구축할 수 있도록 합니다.
REST API와 다른점?
- 데이터 요청방식
REST API는 클라이언트가 서버에서 정의된 엔드포인트를 요청하면 서버가 이에 대한 응답을 반환합니다. 반면, GraphQL은 클라이언트가 요청한 데이터에 대한 정확한 응답을 받기 위해 필요한 필드 및 관계를 명시하는 쿼리를 보내면, 서버는 해당 쿼리에 대한 결과를 반환합니다.
- REST API에서는 클라이언트는 서버의 데이터 구조와 엔드포인트를 사전에 알아야 하며, 응답 형식도 사전에 정해져 있습니다. 반면, GraphQL에서는 클라이언트가 서버에서 제공하는 데이터의 구조와 필드를 쿼리로 탐색하며, 서버는 요청된 데이터의 구조와 필드에 대해서만 응답합니다.
GraphQL를 사용시 생기는 이점
- GraphQL은 클라이언트가 필요한 데이터만 요청할 수 있기 때문에 REST API보다 효율적입니다
- GraphQL은 클라이언트 측에서 데이터를 처리하는 방식을 제어할 수 있기 때문에 모바일 애플리케이션 및 브라우저에서 더 나은 성능을 제공합니다.
GraphQL를 사용시 생기는 단점
- 기존 REST API와는 다른 방식으로 데이터를 요청하고 응답하기 때문에 새로운 방식을 취득해야함
- 복잡한 쿼리를 작성할 때 어려움이 발생할 수 있음
- 요청마다 고유한 쿼리를 사용하기 때문에 캐싱이 어려움
- 요청에 대한 응답을 정확하게 제공하기 위해 서버에서 많은 작업을 수행해야 할 경우, REST API보다 서버 부하가 더 큰 경우가 발생함
