neil***
2022-02-22

페이스북에서 만든 쿼리 언어 그래프QL로 데이터 API 서비스를 만들고, 최적화하고, 클라이언트에서 사용하는 과정을 하나씩 살펴본다.
이 책의 큰 흐름은 그래프QL이 무엇인지 소개하고, 왜 사용하는지 알아보고, 예제를 통해 어떻게 사용하는지 알아보고, 심화과정으로 API를 작성하는 법과 사용하는 법을 알아봅니다.
먼저 개발자라면 API를 만들 때 가장 흔히 쓰이는 방식으로 REST API를 떠올릴겁니다. 하지만, REST API가 항상 옳진 않을 수도 있습니다. 책에서는 REST API와 차별화된 그래프QL의 장점이 '효율성'이라고 합니다. 실제로 REST API와 그래프QL의 요청이 어떻게 다른지 그림을 통해서 설명해주는 부분이 있어 쉽게 이해할 수 있다는 점이 좋았습니다.
기초적인 차이점 외에도 그래프QL이 여러 서비스와 커뮤니케이션을 할 수 있다는 점 덕분에 클라이언트가 여러 서비스에 직접 접속하는 것이 아니라 그래프QL이랑만 커뮤니케이션을 하여 개발의 효율성을 높여주는 장점 등 여러 특징들을 소개하고 있습니다.
그래프QL의 소개 다음에는 본격적으로 그래프QL API를 사용해볼 수 있는 예제들이 나옵니다. 실제 웹 상에서 동작하는 API를 만들어보고 이 과정을 통해서 그래프QL에 대해서 더 자세히 이해할 수 있었습니다. 먼저 API 처리를 익히고 그래프QL 스키마를 설계해봅니다. 예제는 Node.js와 그래프QL.js를 사용해서 진행됩니다. 책에는 실제 코드들로 예시를 보여주고 결과 응답이 어떻게 되는지까지 비교해가며 알려주기 때문에 어떤 요청을 할 때 어떤 응답이 오는지를 쉽게 익힐 수 있었습니다.
예제코드를 책으로만 보기 아쉽다면 깃헙 리포지토리를 통해 코드를 직접 보고 실습할 수도 있습니다. 책 중간 중간 NOTE 박스를 통해 현재 단계에 어디로 checkout 해야하는지 나오기 때문에 간편히 코드를 찾을 수 있습니다. 또한, 예제 코드에 대한 부가 설명으로 TIP 박스를 활용해서 기초적인 상황 뿐 아니라 특정 상황에서는 어떻게 사용해야하는지 제시해주는 것이 좋았습니다.
그리고 마지막으로 실습 뿐만 아니라 독자들이 직접 그래프QL을 개선할 수 있도록 도전 과제를 제공해줍니다. 단순히 따라한 것에서 그치지 않고 스스로 문제를 해결할 수 있는 과제를 제공해줘서 다시 한 번 학습할 수 있었습니다. 풀지 못한다 하더라도 답을 확인할 수 있기 때문에 못 풀까봐 걱정하지 않으셔도 됩니다.
이렇게 책을 다 보면 그래프QL을 이용해서 클라이언트와 서버 간 통신을 효율적으로 만드는 방법을 익힐 수 있습니다. 여러 요청을 하나의 요청으로 압축하는 방법을 익히고, API를 만들어서 전체적으로 그래프QL을 사용할 때 필요한 문법과 원리를 학습할 수 있습니다.