공식 홈페이지의 소개에선
GraphQL is a query language for APIs
API를 위한 쿼리라고 한다.
GraphQL provides a complete and understandable description of the data in your API
완전하고 이해가능한 데이타의 description을 API에서 제공한다고 합니다.
우선 API를 위한 쿼리라고 했다.
그럼 API는 뭘까???
API는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 즉, 프로그램들이 서로 소통하는 방법이다.
주로 프로그래밍할 때 사용하고, 어플리케이션과 상호작용할 때 사용한다.
그럼 API하면 대표적으로 많이 쓰이고 많이 들어본 것중 REST API가 있을것이다.
REST API 는 특정 URL로 요청을 통해 이루어진다. 왜 이건 자주 쓰일까???
자주 쓰이는 이유는 예측이 가능하다는 점에서다. 파라미터를 보고 쉡게 유추를 할수 있다.
?1234같이 물음표로 뒤에가 이어지기 시작하는데 그것은 RESTAPI 의 버튼 같은것이다.
REST API의 단점을 보완하고 더 개선된 사용 환경을 제공하기 위해 네이버의 다양한 서비스에서 GraphQL을 기반으로 Apollo Client를 사용한다.
우선 당연히 교과서는 참고해야하고,
딱히 유튜브에서도 이해하기가 처음엔 어려워서
노마드 니꼴라스 형에게 우선 배워보길 권장한다.
무료로 30분짜리 강의가 있으니 접근이 어려우면 이 사람에게 찾아가 보도록
필요한걸 요청하고 필요한것만 받으세요! 공홈에 가면 나와있는 graphQL의 슬로건이다.
그냥 데이타를 다 받는게 아니라 정말 필요한거만 받는다는것이 굉장한 장점이라는거다.
Overfetching 이란 Client가 어느 시점에 필요하지 않은 데이터까지 요청하는 것을 말한다
이 Overfetching 헤결해주는게 이 쿼리의 가장 큰 장점이라고 생각한다.
GraphQL을 사용하면 API에 GraphQL 쿼리를 보내고 필요한 것만정확히 얻을 수 있습니다.
GraphQL 쿼리는 항상 예측 가능한 결과를 반환합니다.
타입스크립트같이 플레이 그라운드라는 곳에서 연습해볼수가 있다.
React서의 Apollo server는
Apollo Client의 내장 React 지원을 통해 GraphQL 서버에서 데이터를 가져와서 React 프레임워크를 사용하여 복잡하고 반응적인 UI를 구축하는 데 사용할 수 있습니다. Apollo Client는 React를 사용할 수 있는 모든 컨텍스트에서 사용할 수 있습니다
이곳에 들어가면 리덕스의 사용이 줄어들고 각광받는 아폴로 클라이언트에 대해서
비교하고 설명하는 내용이 있다. 참고 해보면 좋을거 같다.