그래프QL은 클라이언트와 서버 간 통신을 더욱 효율적으로 만든다. 기존에 클라이언트는 여러 번의 요청을 통해 얻은 많은 데이터에서 필요한 정보를 찾아야 했지만 그래프QL을 사용하면 단 한 번의 요청으로 필요한 정보만 얻어낼 수 있다. 이 책에서는 그래프QL로 데이터 API 서비스를 만들고, 최적화하고, 클라이언트에서 사용하는 과정을 하나씩 살펴본다. 실용적인 예시를 바탕으로 그래프QL을 사용하는 데 필요한 문법부터 디자인 원리와 운영 노하우까지 익혀 웹 개발의 생산성을 한껏 높여보자.
저자소개
저자
사메르 부나
소프트웨어 설계, 개발, 최적화 분야에서 20년 넘는 실무 경험을 가지고 있으며, 부동산, 정부, 교육, 출판 등 다양한 영역의 기업에서 재직했다. Node.js, 리액트, 그래프QL 관련 기술서를 집필했으며 플러럴사잇이나 링크드인 러닝에서 온라인 강의도 진행했다. 최근에는 jsComplete.com이란 플랫폼을 통해 재미있고 실용적인 코딩 학습법을 제시한다.
역자
김완섭
네덜란드 ITC에서 Geoinformation for Disaster Risk Management 석사 학위를 취득하고 약 9년간 일본과 한국의 기업에서 IT 및 GIS/LBS 분야 업무를 수행했다. 일본에서는 세콤 계열사인 파스코에서 일본 외무부, 국토지리정보원 같은 정부 기관을 대상으로 한 시스템 통합(SI) 업무를 담당했다. 이후 야후 재팬에서 야후 맵 개발 담당 시니어 엔지니어로 근무하다 한국으로 돌아와 SK에서 내비게이션 지도 데이터 담당 매니저로 일했다. 지금은 싱가포르에 있는 일본계 회사에서 은행 관련 IT 프로젝트를 담당하고 있으며 저자 및 역자로도 왕성히 활동 중이다. 저서로는 『나는 도쿄 롯폰기로 출근한다』가 있으며, 역서로는 『알고리즘 도감』, 『처음 만나는 HTML5 & CSS3』, 『인공지능 70』, 『처음 만나는 자바스크립트』, 『다양한 언어로 배우는 정규표현식』, 『그림으로 공부하는 IT 인프라 구조』, 『그림으로 공부하는 시스템 성능 구조』 등 40여종이 있다. 또한 블로그를 통해 IT 번역 관련 이야기와 싱가포르 직장 생활을 소개하고 있다.
그래프QL이 프런트엔드와 백엔드 사이에서 일어나는 커뮤니케이션을 효율적으로 만드는 만큼 이를 이용하려는 여러분 역시 어느 한쪽의 예시도 버릴 수 없는 법. 이 책은 당신이 어느 영역에서 활동하든 관계없이 그래프QL을 익힐 수 있도록 프런트엔드와 백엔드 양쪽 모두의 관점에서 살펴보며 그 뛰어난 효과를 체험하게 해준다.
간단한 쿼리를 작성하는 것을 시작으로 그래프QL을 활용해 실제 작동하는 웹서비스를 만들어보고, 백엔드와 프런트엔드를 모두 구현해보는 실습으로 프로젝트의 전반적인 과정을 체험하도록 안내한다. 뿐만 아니라 보안과 클라이언트 사용법까지 소개하며 안정적이고 가벼운 서비스를 만드는 노하우를 전수한다. 프로젝트에 그래프QL을 적용하고 싶다면, 효율적인 API를 구축해보고 싶다면 이 책과 함께 그래프QL을 완전 정복해보자.
대상 독자
데이터 API를 사용한 결과물을 만드는 프런트엔드 개발자
효율적인 데이터 API를 개발해야 하는 백엔드 개발자
혼자서 웹 프로젝트를 진행하려는 프로그래머
프로그래밍과 자바스크립트에 대한 기초 지식이 있는 웹 개발 입문자
배우는 내용
관계형, 문서형 데이터베이스 전용 그래프QL 스키마 정의법
데이터 캐싱과 배치 작업을 통한 그래프QL 리졸버 최적화
UI 컴포넌트의 데이터 요구 사항에 맞는 그래프QL 조각 디자인
프런트엔드 측면에서의 그래프QL API 쿼리와 변경, 구독 사용법
추천사
이 완벽한 책은 그래프QL의 개념을 살펴보고 다양한 예시를 구현하며 여러분을 초심자에서 전문가로 탈바꿈시켜줄 것이다.
_대리 머큰스, 거너 테크놀로지
비로소 그래프QL을 깨닫게 해준 훌륭한 입문서.
_제러미 레인지, G2
모범적인 API를 만들고 싶다면 그래프QL을 추천한다. 『그래프QL 인 액션』과 함께라면 빠르게 익힐 수 있다.
아니면 그거 새로운 DBMS 아니야? SQL 그까이꺼, 다 비슷하지 머, 이렇게 관심 밖에 두고 계신 분들도
있으실거라 생각합니다. 과연 그래프QL은 무엇이며, 다른 DBMS와 어떻게 다른것인지
책리뷰와 함께 알아보도록하겠습니다.
그래프QL이란?
그래프QL은 페이스북 내부에서 사용할 목적으로 개발됐지만, 이후 오픈소스로 공개됐으며, 현재는 전세계의 많은 웹, 모바일 애플리케이션에 사용되고 있습니다. 그렇다면 그래프 QL은 무엇인가? QL은 쿠리 언어를 의미해 오해를 불러 일으킬 수 도 있는데, 간단히 말하면 그래프QL은 클라이언트와 서버간 데이터 교환을 최적화 하기 위한 툴로 볼수 있습니다.
이 최적의 커뮤니케이션을 제공함으로써, 서버와 클라이언트 개발자가 별다른 논의 없이도, 개발을 진행할 수 있도록하는것이 그래프QL의 최고의 장점일 것입니다. 커뮤니케이션 시간이 단축되고, 결과적으로 개발주기도 단축되게 됩니다. REST API 서버는 보통 하나의 리소스만 응답을 하게 됩니다. 책 정보에 대한 API, 책 저자 관련 API, 이 책에 후기에 대한 API 이렇게 별도로 요청을 했다면, 그래프 QL은 서비스로 하나의 요청을 하면, 정확하게 하나의 응답에 담아서 반환을 합니다.
다른 예로는 REST API에서는 클라이언트가 레코드를 추출할 때 특정 필드를 지정할 수 없으며, 데이터와 상관없는 모든 필드를 반환합니다. 그렇다고 엔드포인트를 나누게 되면, 중복작업이 될 수도 있게됩니다. 그래프QL은 단일 엔드포인트로 구성되므로 개발속도도빠르고, 관리적인 측면에서도 효율성이 뛰어나다고 할 수 있습니다.
물론 그렇다고 REST API는 몹쓸 기술인거냐 라고 이야기할 수 는 없습니다만, 앞으로 많은 애플리케이션에서 그래프QL을 선택하게 될것이라고 조심스럽게 예상해 봅니다.
그렇다면 그래프QL의 단점은 무엇일까요? 바로 학습 난이도가 가장 큰 단점이라고 볼수 있습니다. 일단 개념에 대해 이해해야하며,API 문법, 스키마와 리졸버에 대해 이해해야하고, 그래프QL 런타임의 개념에 대해서도 알아야 합니다.
이런 점들만 극복할 수 있다면, 이 획기적인 기술로 멋집 서비스를 구축할 수 있으리라 생각됩니다.
이 책의 장점
그래프QL 인 액션은 그래프QL의 API 문법부터, 실제로 애플리케이션을 구성할 때 필요한 인터페이스 사용, 스키마 리졸버 구현에
대해 단계적으로 설명해주고 있습니다. 또한 nodeJs에 익숙하지 않은 사람도, 책을 따라서 차근차근 따라 하다보면, 자연스럽게
nodeJs를 간접적으로 체험할 수 있어서 이부분은 좋았던 이었습니다. 또한 직접 웹서비스를 만들어 봄에 따라, 클라이언트의 요청과 서버에서의 처리 로직을 두루 접할 수 있는 점도 좋았습니다. 아쉬운점은, 방대한 영역의 개념을 다루다보니 Postgre MongDB 문법은 크게 다루고 있지 않은 점은 아쉬운 부분이었습니다.
그동안 거의 관성적으로 사용했었던 REST API가 아닌, 새로운 데이터 스펙이자 쿼리 방식인 그래프 QL에 대해 좀더 이해해볼 수 있는 계기가 되었던 것 같습니다. 책에서는 REST API와의 비교를 통해 기술의 차이점을 잘 알 수있게 설명합니다. 그래프 QL을 실질적으로 직접 접해보지 않았다면 그래프 QL이 무엇인지, 어떤 기술인지 감을 잡기가 좀 어려운 면이 있는데 이 책에서는 사양, 언어, 서비스라는 단어를 통해 다각적으로 그래프 QL이라는 기술이 어떤 기술이고 무슨 문제를 해결하려고 하는지 보여주는 것 같습니다.
그래프 QL은 프론트엔드 개발자에게 데이터 엔드포인트에 의존하지 않고 스키마를 직접 작성해 필요한 데이터를 프론트엔드 개발자의 필요에 의해 가져올 수 있게 하는 기술이라는 사실을 알게 된 것 같습니다. 책의 쿼리 예시들도 실제 있을법한 상황에서의 유스 케이스를 잘 설명하고 있는 듯 합니다.
작년 초 신입 개발자로 들어와 내부 프로젝트를 진행할 때 Prisma를 열심히 공부해서 백엔드 로직을 구현했던 경험이 있다. 그 때 처음으로 GraphQL을 알게 되었고, 복잡한 SQL 쿼리 필요없이 내가 만든 스키마와 리졸버 함수를 알아듣고 DB를 바로 가공해주는 게 신기했다. 학원에서 개발을 공부할 당시에 나는 클라이언트와 서버의 소통 구조밖에 몰랐는데, 그 사이에 여러 인터페이스를 끼워서 이 소통을 더 유연하고 효율적으로 만들어줄 수 있단 사실을 처음 알았다. GraphQL을 잠깐 맛보기만 하고, 나는 REST API 방식의 프로젝트를 쭉 진행해왔는데 이 책을 읽고 'Wow...' 연발을 멈출 수 없었다. 지금 내 화면개발 업무시간을 절반으로 줄일 수 있는 GraphQL을 이제서야 알아보다니!
보통 새로운 기술을 공부할 땐 공식문서부터 블로그까지 싹 훑어본다. 그래도 이해하는 데 오래걸린다. 영어가 대부분인 공식문서는 늘 사전을 끼고 봐야하며, 블로그 글들은 공식문서를 번역해서 기술되어 있거나, 코드 예제만 올려둔 글들을 종종 마주한다. 그럴 땐 기술서를 찾는다. 좀 더 친절한 설명, 내가 이해가능한 한글로 가공된 글을 원할 땐 책이 답이다. 이 책은 그런 나에게 딱 맞았다. 페이지마다 예제와 설명이 함께 기술되어 있으며, 번역체가 정말 깔끔한 것이 큰 장점이다. 그래프QL이 뭐지? 왜 쓰는거지? 에 대한 답이 첫 장부터 이해하기 쉽게 설명되어 있다.
REST API 방식으로 화면개발을 하면서 느꼈던 단점들이 책에도 서술되어 있었다. 원하는 데이터를 가져올 수 있는 인터페이스가 없으면 서버 개발자에게 API를 추가로 요청하거나, 기존에 만들어진 API를 하나씩 호출하며 원하는 데이터까지 찾아내는 등 번거로운 작업을 종종 마주한다. 또 서버가 응답하는 컬럼값이랑 화면에서 사용하는 변수명이 다르면 데이터를 한번 더 가공해야하는 작업이 필요하다. 하지만 GraphQL을 사용하면 클라이언트가 한번의 요청으로 원하는 데이터를 가져올 수 있다. 그래프QL API를 사용해 내가 응답받고 싶은 대로 쿼리를 선언하면 GraphQL이 알아서 그 쿼리를 해석해서 데이터를 가져온다. 서버와 사용할 변수명이 달라도 별칭을 붙여서 맞출 수 있다. 화면개발 시 백엔드 의존도를 낮추고 데이터를 자유롭게 사용할 수 있는 이점을 보고 GraphQL을 더 깊게 공부하고 싶어졌다.
우선 그래프QL에 반하기는 성공했으니 REST 지옥에 더 빠지기 전에 얼른 공부를 시작하려고 한다. 책의 4장 스키마 설계부터 시작해서 DB처리, 그래프QL API, 인증로직 구현, 뮤테이션, 구독 기능까지 하나씩 예시를 따라가며 깃허브에 기록을 남겨야겠다. 다 훑어보면 풀스택 관점에서 그래프QL의 이점을 잘 이해하게 될 것 같다. 상반기에 프론트엔드 토이 프로젝트를 많이 만들어보려고 하는데 그래프QL을 다양하게 활용해볼 생각이다. 아폴로도 써보고, 리액트와 릴레이도 함께 써보고, 프리즈마도 붙여보고! 시간이 남아돌았으면 좋겠다!
목차가 이렇게 나오는 이유는 불러낸 층위가 다르기 때문이다. 목차를 따로 받기 위해서는 다음과 같은 명령어를 추가로 실행해야 한다.
REST API input - 2
GET-/책/목차/1GET-/책/목차/2GET-/책/목차/3
즉, 위의 내용을 모두 받아 오기 위해서 4번의 query문을 실행해야 한다.
GQL은 한 번에 여러층위의 정보를 가져오는 것이 가능하다.
GQL input
{책: { 이름 저자 출판사 목차 { 제목 }}
이렇게 하면 목차의 세부 제목들까지도 한 번의 요청에 의해서 가져올 수 있다. 게다가 input의 형식(JSON)과도 비슷한 구조를 갖고 있어서 매우 직관적이다.
이렇게 가능한 이유를 나름대로 생각해봤다. REST API는 딕셔너리와 유사한 형식으로 정보를 저장하고, GQL은 node로 저장한다.
이렇게 저장돼있기 때문에 한번의 명령으로도 node의 상하를 넘나들면서 정보를 가져올 수 있을 것이다.
활용
물론, REST API를 변형하면 여러가지 정보를 한 번에 받을 수 있도록 할 수 있다.
GET-/책/목차
이렇게 하면 책의 목차 1,2,3이 모두 얻어지도록 하는 것이다. 이를 위해서는 REST API를 계속해서 손봐야한다. 프론트 엔드 개발자가 원하는 정보가 달라질 때마다 백엔드 개발자에게 API 수정을 요청해야 한다. 둘 사이의 지속적인 의사소통이 필요하고, 업무를 볼 때 개입이 일어나, 업무상 병목이 발생할 것이다.
반면, GQL의 경우 백엔드 개발자가 SQL, 몽고DB등을 GQL과 연결시켜 놓으면, 프론트 엔드 개발자는 GQL을 통해 어떤 서버에 있든지 GQL하나로 정보를 가져올 수 있다. 백엔드와 프론트 엔드 업무를 독립적으로 수행할 수 있도록 도와줘 병목현상을 해소하는 데 도움을 준다. 물론, 이를 위해서는 어느정도 허들이 있는 GQL을 배워야 한다는 과제를 만나게 된다.
요즘 알고리즘, 최적화 등에 많은 관심을 가지고 공부하고 논문들 살펴보고 하다보니 그래프와 관련해서 관심이 흥미가 생겼다. 뭐 알고리즘이나 최적화를 들여다보면 그래프와 관련된 내용이 솔솔하게 들어 있다보니 그렇게 된게 아닐까 싶다.
막상 책을 펼쳐 읽다보니 내가 생각한 것과는 다소 다르긴 하지만 흥미 자체가 떨어지는 것은 아니었다.
전사 인터페이스 통합, SOA, Rest API 기반의 서비스 엔진 등등 API 성격의 업무를 쭉 해오다 보니 요즘과 같은 클라우드 컴퓨팅 환경에서 MSA 기반 아키텍처로 서비스를 구성하다보면 항상 서비스를 어느정도의 기준으로 설계하고 만들어야 하는지에 대한 의문을 항상 가지고 있었다.
너무 작게 설계하면 각 서비스 API는 경량화 되어 좋은데 다시 이를 composite service로 랩핑해야하는 경우도 많이 생기고 그러다 보면 관리포인트도 늘어나고... 이에 대한 해결방안으로 API Gateway나 Service Mesh 같은 것도 있긴 한데 아무튼 항상 고민이 많다...
그래프GL이라는 것은 이 책을 접하면서 처음 알게 되었다. 뭐 facebook 내부에서 쓰던걸 오픈소스로 공개됐다고 하는데 내가 흔히 이야기하는 프론트엔드 개발자가 아니어서 들어보지는 않았던것 같다.
그렇다고 그래프GL이 프론트엔드 개발자에만 유용하다는 것은 아니다.
나처럼 미들웨어 관련된 일을 하거나 백엔드 개발자의 경우에도 여러번 API를 호출하거나 composite service API를 만들고 유지보수 하기보다 한번의 API 호출로 관련된 데이터를 전달할 수 있는 좀더 효과적인 방법이라고 한다면 요즘같은 클라우드 컴퓨팅 환경에서 MSA 기반의 서비스 아키텍처에서 그 효과는 굉장할 것이라 생각된다.
책에서는 게임체인저라고 하는데 그만한 위력이 있을지 모르겠지만 어찌됐던 주요 핵심 기술의 하나로 자리잡지 않을까 책을 보면서 생각을 들긴 했다.
책은 그래프GL에 대해서 충분한 설명을 포함하고 실제 웹 애플리케이션 API를 만들어보면서 그래프GL 서비스 구축 방법과 언어에 대한 이해를 높일 수 있도록 3부 10개 챕터로 구성되어 있다.
in Action 시리즈의 하나로 그래프QL 인 액션이 한빛미디어에서 번역서로 출간되었습니다. in Action 시리즈답게 그래프QL이란 무엇인지 개념을 먼저 설명하고 기존 REST API와의 차이점을 잘 서술하고 있습니다. 또한 보안, 캐시와 최적화, 학습 곡선이라는 소제목으로 문제점도 빼지 않고 다룹니다.
총 3개의 파트, 10 챕터로 구성이 되어 있는데 목차를 살펴보면 다음과 같습니다. 아마 글을 읽으시는 분은 목차를 보고 대충 어떤 흐름으로 내용이 전개될지 가늠하실 수 있을 거예요.
# PART 1. 그래프QL 경험해보기
그래프QL 소개
그래프QL API
그래프QL 작업 수정 및 구성
# PART 2. 그래프QL API 작성법
그래프QL 스키마 설계
스키마 리졸버 구현
데이터베이스 모델과 관계 사용
데이터 추출 작업 최적화
변경 작업의 구현
# PART 3. 그래프QL API 사용법
라이브러리를 쓰지 않는 그래프QL API 사용법
아폴로 클라이언트를 통한 그래프QL API 사용법
어떠신가요? 감이 조금 오시나요? 파트 1에서 기본적인 개요를 설명하고, 파트 2는 그래프QL을 실제로 만들어보면서 엮여있는 다양한 기술을 살펴보며 깊이 있게 파고듭니다. 그리고 파트 3에서 클라이언트에서 그래프QL API와 통신하는 부분으로 책을 마무리 짓습니다. 전체적인 개념, 설계, 구현, 튜닝까지 사이클을 훑는다고 보시면 되는데요. 그래프QL은 언어로 볼 수 있기 때문에 호락호락한 책은 아닙니다. 이 책 한 권에 아주 많은 개념이 들어있긴 하지만 애초에 그래프QL을 한 권으로 끝내기 어렵습니다. 분량 문제도 그렇지만 개념을 이해하기 위한 가장 좋은 방법은 (개인적으로는) 여러 권의 책과 사이트를 통해 수집된 정보를 머릿속에서 정리해야 한다고 생각하거든요.
책에서 가장 마음에 드는 부분은 단연코 많은 예제입니다. 그래프QL의 전체 사이클을 경험할 수 있도록 책이 구성되어 있기 때문에 그만큼 많은 예제가 실려있습니다. 책장을 넘기면서 설령 개념이 잘 와닿지 않더라도 실제 동작하는 코드를 만지다 보면 깨닫게 되는 부분이 있으니까요. 만약 여러분이 그래프QL이 처음이라면 꼭 실습하실 수 있는 환경에서 책을 읽으시기를 바랍니다. 눈으로 따라가기엔 분명 한계가 있고 백문이 불여일타니까요 :)
선수지식으로 javascript, node.js, RDBMS, 몽고 DB, REST API에 대한 지식이 있으면 예제를 이해하는데 좋을 것 같습니다.
구성
1장 : GraphQL에 대한 소개, 왜 GraphQL인지, REST API와의 차이점 및 비교, GraphQL의 문제점은 무엇인지
2장 : GraphQL API에 대해, 그래피컬 편집기, 기초 GraphQL 언어, 깃헙 GraphQL예제
3장 : GraphQL에 대한 작업 수정 및 구성, 필드 변경, GraphQL 조각
4장 : GraphQL 스키마 설계, 쿼리, 모델링
5장 : GraphQL 개발환경 실행, 런타임 설정, 스키마 생성
6장 : GraphQL DB설정
7장 : GraphQL 캐싱, 작업 최적화
8장 : GraphQL 변경 작업
9장 : 라이브러리 쓰지 않는 GraphQL 사용방법
10장 : Apollo를 통한 GraphQL API 사용방법
주요 내용 요약
페이스북이 GraphQL을 만들기로 한 이유는 모바일 애플리케이션 개발 시 발생하는 여러 기술적 문제를 해결하기 위해서였다. 하지만 현재 GraphQL이 인기를 얻고 있는 이유는 기술적 문제보다는 커뮤니케이션 문제를 해결하기 때문이다.
GraphQL은 현실 세계의 데이터를 표현하는 가장 적합한 방법이 그래프라는 사실에서 착안했다. GraphQL에서 QL은 Query Language를 의미해 오해를 불러일으킬 수 있다. API를 사용하는 프런트엔드 입장에서만 보면 GraphQL은 데이터 API용 쿼리 언어가 맞지만 한편으로는 백단에서 구현해야 하는 런타임 계층의 역할도 하기 때문이다.
필자에게 "왜 GraphQL인가?"라고 묻는다면, 한 단어를 답할 것이다. 바로 표준(Standard)이다. 클라이언트-서버 구조에서 서 GraphQL을 선택하는 가장 중요한 기술적 이유는 효율성이다. API 클라이언트는 종종 서버에게 여러 리소스를 요청해야 하지만 API 서버는 보통 하나의 리소스만 응답하는 방법을 안다. 결과적으로 필요한 모든 데이터를 얻기 위해선 클라이언트가 서버에게 여러 번 요청하게 된다. GraphQL은 이런 다중 요청의 복잡성을 백엔드에 부담시켜?(묶어서? 책에는 부담시킨다고 표현하였으나 문맥상 다중 요청을 하나로 묶는다의 의미로 추정됨) GraphQL 런타임이 처리하도록 만든다.
GraphQL과 REST API의 차이점
REST API의 단점
1. REST API가 가진 가장 큰 문제점은 여러 개의 데이터 API 엔드포인트와 커뮤니케이션을 한다는 것이다.
2. REST API에는 클라이언트 용 요청 언어가 없다. 클라이언트가 서버에 무엇을 원하는지 정확하게 알 수 있는 언어가 없으므로 서버가 변환하는 데이터를 제어할 수 없다.
3. REST API의 또 다른 큰 문제는 버전 관리이다. 여러 버전을 제공해야 한다면, 엔드포인트도 여러 개 준비해야 한다.
REST API의 장점
1. GraphQL의 응답보다 캐싱하기 쉽다.
2. 여러 REST 엔드포인트의 코드를 최적화하는 것이 GraphQL의 단일 엔드포인트를 최적화하는 것보다 쉽다.
GraphQL의 방식
1. 타입이 정해진 스키마
2. 선언적 언어 : 선언적 언어를 통해 GraphQL을 보다 사용하기 쉽게 만든다.
3. 단일 엔드포인트와 클라이언트 언어 : 클라이언트 요청 언어는 클라이언트가 제어권을 갖도록 해준다. 클라이언트는 필요한 것을 정확하게 요청할 수 있으며, 서버 또한 요청받은 데이터를 정확하게 응답할 수 있다. 이것은 불필요한 데이터의 과다 추출 문제도 해결해 준다.
4. 간단한 버전 관리
서평
서버 개발자로서 여태까지 REST API로 개발만 하다가 GraphQL이라는 것을 이 책을 통해 처음 접해보았습니다. REST하진 않지만 REST라고 자체적으로 부르는 API를 사용해 왔고 머릿속도 REST API구조만 박혀 있다가, 요즘 핫한 최신 기술 스택인 GraphQL을 배울 수 있어서 좋았습니다. 옮긴이의 말처럼 REST API에 익숙한 개발자라면 GraphQL에 익숙해지는데 시간이 걸리겠지만, 이 책을 통해 실제 업무에 적용해 볼 수 있는 계기가 되지 않을까 생각합니다. 이 책의 장점은 javascript와 node의 간단하고 쉬운 예제들로 구성되어 이해하기 쉬고 따라 하기 쉽다입니다. 뒷부분으로 갈수록 백 단에 관심이 있는 사람으로서(저를 포함) 리액트라던지, 웹 UI 라이브러리라던지, 아폴로 라이브러리가 나오면서 다시 지루해질 수 있으므로, 그런 분들은 앞부분을 중점적으로 보는 것을 추천드립니다.
아쉬웠던 부분으로는 이해를 돕기 위해 특징 및 구조를 서술하는 부분이 굉장히 많은데 오히려 이러한 부분이 지루함을 유발할 수 있을 것 같습니다. 또한 책을 번역하는 과정에서 의미가 조금 모호한 표현과 오탈자가 조금 있던 부분은 아쉬웠습니다.
평소에도 시간적 여력이 없어서 프런트 개발자가 원하는 데이터의 형식대로 api 개발을 주로 해줄 수 없었던 이유가 예전에 꽤 많았습니다.
그때마다 프런트 개발자가 필요로 하는 데이터 구조가 따로 있는데 이것을 또 백엔드 개발자한테 요청하기도 애매한 부분이 있었던 케이스가 있는데 그래프 QL의 장점은 프런트 개발자가 원하는 데이터 형식을 자유롭게 제공할 수 있어서 더욱더 개발에 속도를 낼 수 있을 것 같아서 이참에 저도 제대로 한번 배우고 싶어서 신청하게 되었습니다.
서평
GraphQL은 RestAPI의 한계를 극복하고자 나왔습니다. 그렇기 때문에 RestAPI 과는 패러다임이 다르고, 대비되는 부분이 많습니다.
RestAPI와 비교하여 장/단점을 이해해야 GraphQL을 제대로 사용할 수 있다고 생각합니다.
이 책의 1장 소개 부분에서 GrahpQL의 장/단점 및 GraphQL의 철학과 배경에 대하여 간략하지만 핵심 내용에 대한 설명이 잘 되어있어요.
또한, GrahpQL은 서버/클라이언트의 특정 부분에만 종속되는 기술이 아니라
RestAPI와 비슷하게 서버와 클라이언트 양측에는 사용이 가능한 아키텍처 스타일? 인터페이스?라고 봐야 할 것 같습니다. 따라서 양측 다 노하우가 쌓여야 잘 사용할 수 있다고 생각합니다.
이 책에서는 이를 고려하여 서버, 클라이언트 양측의 관점에서 설명이 잘 되어있어요.
서버 측의 스키마 정의와 RDBMS를 이용하여 GrahpQL를 다루는 방법을 설명했으며,
프런트 측에서 연동하는 방법까지 설명이 되어있어 한층 더 깊이 있게 GrahpQL을 이해하는 데 도움이 되었어요.
본인은 서버 개발자인데 서버 개발자의 관점에서 봤을 때 스키마 설계부터, RDBMS 연동, 이렇게 만들어진 API를 프런트 측에서 연동하는 것까지의 과정을 이해하게 되었어요.
마치며
GrahpQL은 이전부터 알고 있었지만 업무 환경에서 사용해 본 적은 없었어요. 따라서 깊은 부분까지 이해하지 못하고 있었는데, 이 책을 읽어보고 깊이가 조금 더해진 것 같아요.
다만, 기본적인 부분에 대하여 설명은 잘 되어 있으나, 실무 환경에서 사용하는 데 있어서 복잡한 사례에 대한 예시가 조금은 부족한 것 같아요.
복잡하고 디테일한 사례까지는 다루지는 않지만. 아직 GrahpQL이 뭔지 잘 모르는 사람들에게 참고서로 추천할 수 있을 것 같습니다.
이 책의 큰 흐름은 그래프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을 사용할 때 필요한 문법과 원리를 학습할 수 있습니다.
2021년 12월에 출간된 <그래프QL 인 액션>에 대해 소개합니다. 이 책의 부제는 '단 한 번에 필요한 정보만 불러오는 효율적인 API 구축하기'입니다. 이 책의 저자는 사메르 부나(Samer Buna)님으로 Node.js, React.js, GraphQL 관련 기술서를 집필했고, 다양한 SNS 서비스에서 @samerbuna 계정으로 활동하고 있습니다.
필자는 이 책과 인연이 있는데, 이 책의 초반 버전을 리뷰(링크)했었던 기억이 있습니다. 이 책의 원서는 아마존 리뷰에서 괜찮은 점수(4점, 5점 만점)를 받았습니다. 역자는 김완섭 님으로 약 35여 권의 책을 번역한 이력을 갖고 있습니다.
<그래프QL 인 액션>은 약 480페이지로 구성되어 있어 휴대하면서 읽기에 크게 부담스럽지 않습니다. 전자책으로도 출간되어 있음으로, 이북 장치가 있으시다면 전자책으로 만나보는 것도 좋을 것 같습니다. 구매 가격도 더 저렴합니다.
한빛미디어 평가단에 참가하여 작성한 글이며, 한빛미디어에서 제공해준 책을 읽고 작성했음을 밝힙니다.
이 책의 매력은?
<그래프QL 인 액션>은 3부 10개의 챕터로 구성되어 있습니다. 단순히 계산해봐도 하나의 챕터의 양이 적지 않음을 알 수 있습니다. 하지만 책의 구성이 나쁘지 않아 책을 읽기에 부담스럽게 느껴지지는 않습니다. 다만, REST API의 제작 경험과 웹 개발 경험이 있으신 분들이 읽는 것을 추천합니다.
이 책의 1부에서는 그래프QL의 소개를 시작으로 그래프QL API와 간단한 예제로 활용하여 그래프QL의 기초 지식을 학습합니다. 2부에서는 그래프QL의 설계 기법을 안내합니다. 실제 웹 애플리케이션에서 동작하는 API를 제작합니다. 그래프QL 스키마를 설계하고, 데이터베이스와 연동하는 방법을 안내하며, 그래프QL을 최적화하는 방법 등을 학습합니다. 마지막으로 3부는 그래프QL API를 웹 애플리케이션에서 사용하는 방법을 안내합니다.
<그래프QL 인 액션>은 자바스크립트 기반으로 예제가 작성되어 있습니다. 그러므로 자바스크립트 언어에 대한 이해도가 높지 않은 분들은 예제가 낯설게 느껴질 수도 있습니다. 하지만 그래프QL은 다양한 언어를 지원하고 있음으로 매뉴얼을 참고하며 이 책의 내용을 기반으로 학습한다면 어렵지 않게 이 책의 내용을 학습할 수 있을 것으로 생각합니다.
그래프QL에 관심을 가진 분이라면, 이 책을 활용하여 그래프QL의 매력을 느껴보세요.
마치면서
그래프QL은 2015년 9월 처음 출시된 이래로 개선을 거듭하여 2018년 6월에 안정 버전이 릴리즈되었습니다. 이후 시장에서 높은 관심을 이끌었으나 현재는 약간 정체(?)된 느낌이 있습니다. 하지만 매력적인 기술이라고 생각합니다. 개발자들의 그래프QL 이해도가 높아지면 더 많은 사랑을 받을 기술이라고 생각합니다.
그래프QL에 대한 관심이 있다면, 이 책으로 시작하는 것이 나쁘지 않을 것 같습니다. 책의 실습 예제와 환경 등이 잘 구성되어 있어 그래프QL의 본질에 대한 이해도를 이른 시간 안에 높일 수 있습니다. 이후에는 공식 홈페이지 매뉴얼을 참조하면 좋을 것 같습니다.
한빛미디어 <나는 리뷰어다> 도서서평단 활동의 첫번째 책으로 <그래프QL 인 액션>이란 책을 리뷰하게 되었다. 마침 최근 직장에서 API 설계에 대해 얘기하면서 그래프QL을 써보는건 어떠냐는 말이 나오고 있던 차라 아주 적절한 도서 선정인 셈이다.
[대상 독자]
데이터 API를 사용한 결과물을 만드는 프런트엔드 개발자
효율적인 데이터 API를 개발해야 하는 백엔드 개발자
혼자서 웹 프로젝트를 진행하려는 프로그래머
프로그래밍과 자바스크립트에 대한 기초 지식이 있는 웹 개발 입문자
+ 개인적인 생각으로는 초보보다는 어느정도 웹개발을 해본 사람들이 보기 좋을 것 같다. 그 중에서도 REST API를 개발하면서 REST API의 한계를 느끼거나 다소 염증을 느끼고 있던 사람들이 본다면 더 좋을 것 같고, 백엔드 개발자 보다는 프론트엔드 개발자가 더 수월하게 읽을 수 있을 거라고 생각한다. 프론트엔드 용어가 종종 나오기도 하고, 뒤에선 리액트 컴포넌트에 그래프QL을 적용해보는 파트가 있기 때문이다.
[서평]
<그래프QL 인 액션>은 그래프QL의 전체적인 소개(1장), 그래프QL의 용어 정의 및 간단한 예제(2, 3장), 설계(4장), 작성(5장~)식으로 전개해나간다.
2장, 3장에서 그래프QL의 주요 용어들의 개념와 정의 설명이 상당히 친절하다고 느꼈다. 뒤로 가면 계속 그래프QL의 용어로 얘기하기 때문에 초반에 용어에 대한 정의를 잘 잡고 가는 것이 중요한데, 설명도 친절한 편이지만 예제를 통해 한번 더 알려주는 것이 좋았다.
4장에서는 하나의 주제를 가지고 그래프QL을 설계해보는 과정을 보여준다. 앞서 익힌 개념을 한번 더 상기하면서 실전에서 사용할 수 있도록 가이드해주는 파트라는 인상을 받았다.
책을 읽으면서 느낀 것은 개념 설명도 그렇지만 실제 예제가 스탭마다 친절하게 가이드해주는 느낌이라 처음 입문하는 사람에게 아주 좋은 입문서라고 느꼈다.
웹 서비스 프로젝트에서 고민이 되는 부분이 프론트엔드와 백엔드간의 효율적인 데이터 API를 만들어야 하는 부분입니다.
웹 및 모바일 애플리케이션용 데이터 API에서 대중적으로 사용하는 REST API를 이용하지만 가장 큰 문제점이 클라이언트가 여러 개의 데이터 API 엔드포인트와 커뮤니케이션을 해야 한다는 것입니다. REST API는 클라이언트가 데이터를 받기 위해서 네트워크를 여러번 왕복해야 합니다. 이는 처리 성능이나, 메모리, 네트워크 등에 제약이 있는 모바일 장치에서 사용하는 앱을 개발할 때 큰 문제가 될 수 있습니다.
지금 현재 진행하고 있는 프로젝트에서도 이 부분이 가장 고민이 되는 부분입니다.
그래서 REST API가 지닌 문제점을 그래프 QL이 해결해 줄 수 있다고 합니다.
말로만 들어봤지 어떻게 구성이 되는지 전혀 감이 오지 않기에 전체적인 배경과 설계 이념을 이해하고 실제 도입하는지를 검토해 봐야 겠습니다.
그럼 "그래프QL 인 액션"에 대해서 살펴 보겠습니다.
1부는 그래프QL에 대한 다양한 질문을 왜, 무엇을, 어떻게의 관점으로 답한다.
- 1장 : 그래프 QL이 정확히 무엇이며 어떤 문제를 해결 할 수 있고, 어떤 문제가 발생할 수 있는지 소개한다. 또한, 그래프QL의 설계 컨셉과 REST API와의 차이점에 대해 설명합니다.
- 2장 : 그래프QL을 가지고 놀 수 있는 인터랙티브 환경을 소개한 후, 그래프QL 요청을 실제 작성하고 테스트 해본다.
- 3장 : 그래프QL의 기본 내장 기능에 대해 소개하고 직접 데이터 요청과 응답을 구성하고 변경해보도록 한다.
2부에서는 실제 웹 애플리케이션에서 동작하는 데이터 API를 만들어본다. 이를 통해 그래프QL 서비스 구축 방법과 그래프QL 언어가 무엇인지 이해할 수 있다.
- 4장 : UI 기능들을 API 처리와 연계하는 방법을 배우고 이를 이용해서 그래프QL 스키마를 설계해본다.
- 5장 : 데이터베이스 전용 Node.js 드라이버와 그래프QL.js를 사용해서 실행 가능한 그래프QL 스키마를 만든다.
- 6장 : API 쿼리를 구현하기 위해서 데이터베이스 필드를 연동하는 방법을 배운다.
- 7장 : 6장에서 만든 쿼리를 바탕으로 그래프QL 쿼리 최적화 방법을 살펴본다.
- 8장 : 데이터베이스 개체를 생성,변경,삭제하기 위한 API 변경 처리에 대해 배운다.
3부에서는 그래프QL API를 프런트엔드 웹 애플리케이션에 사용하는 방법을 보여 준다.
- 9장 : 그래프QL 클라이언트 라이브러리에 의존하지 않고 그래프QL API를 사용해서 직접 Ajax 요청을 처리한다.
- 10장 : 유명한 그래프QL 클라이언트 라이브러리 중 하나인 아폴로 클라이언트(Apollo Client)의 강력한 기능에 대해 다룬다.
마치며
기존에 클라이언트는 여러 번의 요청을 통해 얻은 많은 데이터에서 필요한 정보를 찾아야 했지만 그래프QL을 사용하면 단 한번의 요청으로 필요한 정보를 얻어 낼수 있습니다.
이 책을 통해 실용적인 예시를 바탕으로 그래프 QL을 사용하는데 필요한 문법부터 원리와 운영 노하우까지 익힐 수 있습니다.
[도서리뷰] GraphQL in Action - 단 한 번에 필요한 정보만 플러오눈 효율적인 API 구축하기
이 책을 신청한 이유
회사에서 Vue.js + Spring Boot 프로젝트를 많이 진행했었다. 프론트에서는 백엔드에 HTTP API 요청하고 응답을 받아 데이터를 화면에 보여주는 구조였다. REST API 는 요청하는 함수 GET, POST, PATCH, PUT, DELETE 등 Method와 URL을 조합하여 여러 개의 엔드포인트가 있어 그 엔드포인트 마다 DB SQL쿼리가 달라진다.
이와 달리, 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 것이 목적이라는 GraphQL 은 불러오고자 하는 데이터의 종류를 쿼리 조합을 통해 결정한다고 한다. 프론트엔드를 40% 곁들인 백엔드 개발자로써 프론트가 데이터를 효율적으로 가져오는 부분에 관심이 있었고 더 알고 싶어 "GraphQL in Action" 책을 읽어 보고자 했다.
목차 및 구성
총 세 파트로 나눠져 있다
GraphQL 이 어떤 문제를 해결해 주는지, 설계 컨셉, 간단한 요청 테스트와 기본 내장 기능에 대한 소개
효율적인 GraphQL API 서비스를 만들기 위한 기술을 깊게 다룬다
GraphQL 스키마 설계
API 쿼리를 구현하기 위해서 데이터베이스 필드 연동하는 방법
GraphQL 쿼리 최적화 방법
DB 개체 생성, 면경, 삭제하기 위한 API 변경 처리
GraphQL API를 프론트 엔드 웹 애플리케이션에 적용하는 방법
내용
GraphQL 이란
GraphQL을 선택하는 가장 중요한 기술적 이유는 효율성이다. 아래 그림과 같이 API 클라이언트는 종종 서버에게 여러 리소스를 요청해야 하지만 API서버는 보통 하나의 리소스만 응답하는 방법을 안다. 결과적으로 필요한 모든 데이터를 얻기 위해선 클라이언트가 서버에게 여러 번 요청하게 된다.
그래프QL은 이런 다중 요청의 복잡성을 백엔드에 부담시켜서 그래프QL 런타임이 처리하도록 만든다. 클라이언트가 그래프 QL서비스로 하나의 질문을 던지면, 서비스는 필요한 정보를 정확하게 하나의 등답에 담아서 반환한다.
REST API 가 가진 가장 큰 문제점은 클라이언트가 여러 개의 데이터 API 엔드포인트와 커뮤니케이션 한다는 것이다. REST API는 클라이언트가 데이터를 받기 위해서 네트워크를 여러 번 왕복해야 한다.
REST API에는 클라이언트용 요청 언어가 없다. 클라이언트가 서버에 무엇을 원하는지 정확하게 알릴 수 있는 언어가 없으므로 서버가 반환하는 데이터를 제어할 수가 없다. 정확하게 말하면 있긴 하지만 매우 제한된 언어만 사용할 수 있다. 예를 들면, REST API 에서 데이터를 읽으려면 GET /ResourceName 형식으로 리소스의 전체 데이터를 읽어 들이거나, GET /ResourceName/RecourceID 형식으로 지정한 ID의 단일 데이터만 읽어야 한다.
이렇게 공부하면 좋을 것 같다
책의 순서가 1장에 개념 및 기초를 다루고 2, 3장부터 기술을 상세하게 다루며 실제 적용을 해 볼 수 있다. 앞에서 부터 정독하면 될 것 같다. 도커 파일과 깃헙에 코드도 제공한다.
대상 독자
API를 사용해 결과물을 만다는 프론트엔드 개발자
API를 사용하는 프론트엔드 개발자와 효율적인 데이터 API를 만들어야 하는 백엔드 개발자
어느 정도 프로그래밍에 대한 기본적인 지식과 자바스크립트에 대한 기초 지식이 있는 분
PostgreSQL, MongoDB 경험이 있다면 도움이 됨
이 책을 읽고
실무에서 API 를 만들 때 하나의 GET 함수에서 field를 클라이언트에서 정의하여 요청할 수 있는 방법은 없는가 고민한 적이 있었다. 예를 들어, getUser 함수에서 User의 username과 address 만 가져오고 싶을 때가 있고, address 만 가져오고 싶을 때가 있었는데 이럴 때 마다 요청에 대한 함수를 일일히 만들어야 했다. 이 책을 읽고 graphQL이 이러한 문제를 해결해 줄 수 있었다. 새로운 개념을 알게 되었고 실제 적용할 수 있는 과정까지 탄탄히 알 수 있게 되었다.
이 책의 장점은 충분한 예제 와 쭉 읽기 좋은 구성 인 것 같다. 그리고 graphQL 에 대해 깊이있고 알찬 내용 을 모두 다루고 있어 API 를 사용하는 백엔드 프론트엔드 개발자는 꼭 읽어보길 추천한다.
전부터 GraphQL 이 어떤 것인지 궁금했었는데 이번에 읽은 책을 통해서 조금이나마 이해를 할 수 있었다.
이 책은 3개의 Part 와 10개의 Chapter 로 구성되어있다.
Chapter 1 그래프QL 경험해보기 에서는 그래프QL 소개와 사용 방법에 대해서 소개를 해주고 있다. 그리고 그래프QL 로 기본적인 쿼리들을 실행해 볼수 있는 예제들을 담고 있다. 깃허브API 예제를 통해서 실행해 볼 수 있어서 깃허브 계정을 갖고 있다면 쉽게 실습을 따라가볼수 있다.
그리고 Chaper2 그래프QL API 작성법 을 통해 본격적으로 그래프QL 을 설계하고 스키마 리졸버를 구현해 본다. 그리고 데이터베이스와 연결하여 모델을 설계해보는 실습을 한다. 아마도 이 Chapter 가 이 책의 가장 핵심이지 않을까 생각이 된다. 이것 이외에도 최적화 방법도 소개를 해주고 있다.
Chapter3 에서는 여러가지 형태로 그래프QL API 를 사용하는 방법을 소개해 준다.
책을 읽으면서 느꼈던 점은 매번 Rest API 만 사용해왔던 나에게는 책이 약간 어렵게 느껴졌다. 아무래도 설계 및 구조가 생소하다 보니 그렇게 느꼈던 것 같다. 현재 1독을 하고 있는 중이지만 그정도로는 자세히 이해하기는 어려울것 같다. 따라서 1독 후에 중요 부분에 대한 것만 따로 읽어보는게 필요 할것 같다.
그래프QL을 접한 것은 꽤 오래 전 일이지만 본인이 업무하는 환경에서는 대부분 REST API만 사용했던 결과, 실제로 실무에 직접적으로 사용해보게 되는 일은 없었다. 단지, 아 이렇게 설정하고 이렇게 돌아가는구나 하는 것을 토이 프로젝트로 맛만 보았을 뿐...
과거 2019년도 프로젝트 시작 초기에 Back-end 개발자 분들에게도 그래프QL을 사용한 API 개발 방식을 제안해보았으나, 바쁘게 돌아가는 스케쥴로 그분들께도 부담이 되었던 탓인지 돌아오는 답변은 '검토해볼게요'에서 결과적으로 REST API를 사용하는 프로젝트로 진행되었던 기억이 있다. 현재는 실무에서 널리 쓰이는 기술이 된 것 같다. 'ㅅ')
해당 도서에서는 당연히 예상 가능하게도, 초반에는 그래프QL에 대한 개요와 그래피컬(GraphiQL) 툴에 대한 약간의 설명이 나오고...
Chapter 3에서 UI 컴포넌트에 매치되는 데이터 객체에 대해 설명을 하고, 개별 컴포넌트가 필요로 하는 데이터 조각(fragment)들을 조합하여 Front-end 측으로 제공하는 방식에 대해 설명한다.
Chapter 4 ~ 8까지 PostgreSQL, 몽고DB 데이터베이스로부터 데이터를 가져오는 그래프QL API 스키마를 설계하고, 스키마 리졸버로서 Node.js 애플리케이션을 만드는 긴 과정을 담고 있다. 이 도서에서 개인적으로 가장 가치있게 느껴지는 부분은 이 부분이었다.
이후의 Chapter 9, 10은 이렇게 구현한 Back-end 애플리케이션을 클라이언트 측에서 사용하여 기능 구현을 하는 흐름을 보여주고 있는데, Relay보다 점유율이 높은 apollo 라이브러리를 사용하여 구현하는 방법을 소개하고 있다.
영어 지문 읽기에 크게 어려움이 없는 개발자라면, 워낙 apollo 웹사이트나 그래프QL 자체 웹사이트에서 얻을 수 있는 정보가 많겠지만, 그래프QL을 처음 접한다면 읽어볼만한 책일 수도... 'ㅅ')a
보통 SQL을 배우는데 있어서 우리가 많이 접하는 것은 DBMS와 SQL과 Query문을 통한 데이터 추출입니다. 하지만 SQL외에도 GraphQL이 존재하는데 이는 데이터를 Graph로 표현하는데서 착안을 해온 것입니다. 그리고 GraphQL은 RDBMS 등에서도 사용이 가능하다고 합니다.
먼저 본 책을 읽으면서 유튜브 및 여러가지 서적을 찾아가면서 공부했던 내용들을 보다 쉽게 접할 수 있던 점이 장점이라고 생각합니다. 그리고 또한 전체적인 구성또한 그림과 함께 잘 표현해주는 것이 장점이라고 생각합니다.
깃헙에서도 어떻게 관리하고 웹서비스에서는 어떻게 쓰이는지 잘 표현되어 있어서 유용하였습니다.
마지막으로 좋은 책 제공과 기회를 주신 한빛미디어 담당자 분들께 감사 드립니다. 3월에도 내용이 탄탄한 도서를 읽고 빨리 리뷰를 남기고 싶습니다.