이 책을 선택한 이유
GraphQL을 해보려고 했던 이유와도 일맥상통하겠다.
백엔드 개발자로 일하며 자바 스프링으로 RESTful API 뽑아내는 작업을 주로 하고 있다.
REST는 주체가 전적으로 백엔드에 있고 규격이 정해져 있다.
종종 "클라이언트에서 원하는 데이터를 원하는 대로 뽑아갈 수 있는 GraphQL이라는 게 있다"라는 이야기는 들었는데 REST 사용처가 훨씬 더 많기에 깊게 관심 두지 않았다.
클라이언트가 원하는 대로 데이터 알아서 뽑아가면 백엔드 개발자는 뭐 하지? DB 만들어놓고 서버 관리만 하며 노나? 싶기도 했다.
이름에서 오는 거부감도 있었다.
그............. 그래프? QL? Query Language? Graph Query Language......? (사절)
보통 토이 프로젝트를 할 때 공부할 겸 자바 + 스프링으로 API 뽑아내고 리액트나 스벨트로 프론트 작업을 한다.
가장 익숙해서 그렇다.
하지만 공부의 목적이 아니라 실제 사용하기 위한 프로젝트를 만들 때에는 더 빠르게 속도를 내는 게 중요한데, 조금만 데이터 규격이 바뀌어도 혼자 양쪽 프로젝트를 넘나들며 작업해야 하기 때문에 "이건 좀 아니다" 싶었다.
양쪽이 조금 더 유연하게 연결되어야 할 필요성을 느꼈다.
뿐만 아니라 회사에서 프론트엔드 포지션으로 작업할 때, 백엔드 개발자들과 충분히 API 모델 설계에 대한 이야기를 나눴음에도 이런저런 이유로 모델을 수정해야 하는 경우가 왕왕 있었다.
API에 대한 중심을 전적으로 백엔드가 가지고 있기 때문에 다시 API 수정 요청을 하면서 커뮤니케이션 비용을 들이고, 기다리고, 받아서 다시 작업하는 일련의 과정이 효율적이지는 않다고 느꼈다.
그래프QL이 뭔지 잘 몰라서 대안이 될 수 있을지는 모르겠지만 일단 경험해 보기로 했다.
관련 책이 많지는 않은 것으로 아는데, 애정해 마지않는 한빛미디어에서 이번에 신간을 냈길래 보게 됐다. (참고로 번역서다.)
책의 특징
우선 500페이지 정도로 두께가 얇지는 않다.
전체 흑백 톤이고 종이가 반질반질한 재질이다.
'~ 인 액션' 책을 몇 권 봤던 적이 있기에 물리적인(?) 부분은 친숙해서 읽기 편안했다.
번역도 거슬림 없었다.
근데 회사 동료에게 공부하고 있다고 책을 보여줬더니 GraphQL 표기법이 왜 'GraphQL'이나 '그래프큐엘'이 아니라 '그래프QL'이냐, 해서 이후로 책 보는 데 계속 신경이 쓰이고야 말았다.
(아래 내용부터는 책의 표기법을 따르기로 한다.)
3부 10장으로 이루어져 있다.
큰 구성은 아래와 같다.