GraphQL

곽태민·2023년 3월 24일
0

GraphQL?

💡 GraphQL은 Facebook에서 만든 Graph Query Language로 어플리케이션 레이어 쿼리 언어다.

GraphQL은 SQL과 마찬가지로 같은 쿼리 언어고, SQL은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적이고, GQL은 웹 클라이언트가 데이터를 서버로부터 효율적으로 가져오는 것이 목적이다.

GQL은 SQL과 다르게 SQL은 주로 백엔드에서 쿼리를 작성해서 호출을 하는 반면에, GQL의 문장은 주로 프론트에서 작성해서 호출을 한다.

GQL은 API를 위한 쿼리 언어로, 타입을 이용해서 쿼리를 실행하는 서버사이드 런타임이다. GQL은 특정한 데이터베이스나 스토리지에 귀속되지않고, 기존 코드와 데이터에 의해 대체된다.

서버사이드 GQL 어플리케이션은 GQL로 작성한 쿼리를 입력받아서 쿼리를 처리한 결과를 프론트로 돌려준다.

HTTP API 자체가 특정 데이터베이스나 플랫폼에 종속적이지 않은 것 처럼 마찬가지로 GQL 역시 어떠한 특정 데이터베이스나 플랫폼에 종속적이지 않다.


GraphQL을 사용하는 이유

REST API를 사용하게 되면 새로운 기능을 만들 떄마다 새로운 API를 만들어줘야 한다.

API에 GQL을 날리게 되면 정확하게 얻고자하는 데이터를 얻게 되는데, GQL은 항상 예측 가능한 결과를 반환한다. GQL을 사용하는 앱은 서버가 아닌 웹에서 데이터를 제어하기 때문에 빠르고 안정적이다.

GQL은 하나의 리소스 자원에 접근하는 것이 아니고 자원의 참조까지 고려한다. 전형적인 REST API가 여러개의 URL의 로딩을 요구하는 동안, GQL API는 한번의 요청에 앱이 필요로하는 모든 데이터를 얻게된다. GQL을 사용하는 앱은 느린 모바일 네트워크 연결에서도 빠르게 동작한다.

profile
Node.js 백엔드 개발자입니다!

0개의 댓글