RESTful API
의 핵심이기 때문입니다.Client에서 가져올 데이터를 직접 스키마 정의할 수 있습니다.
RESTful API
와 GraphQL
의 가장 큰 차이점입니다.
RESTful API
의 경우 백엔드에서 API를 만들어 주기 전까지 프론트에서 데이터를 가져올 방법이 사실상 업습니다.
(웹에서 SQL 날리는 것이 보편적으로 사용하지 않는 패턴이기 때문에)
SQL은 그 자체가 외부에 유출되면 데이터베이스의 구조자체가 완전히 유출되서 어딘가에 저장하거나 클라이언트에 저장하는 행위가 굉장히 위험하고 클라이언트 코드에서 SQL을 지원하는 것 자체가 없습니다.
GQL은 사용하기위한 클라이언트가 따로 있기때문에(apollo) SQL을 직접 노출하지 않더라도 GQL 백엔드와 직접적으로 통신하는 게 가능해집니다.
Apollo
서버를 이용해서 RESTfull API
를 GraphQL
로 변환해서 사용할 수도 있습니다.