그래프QL 인 액션
사메르 부나 지음, 김완섭 옮김 / 한빛미디어 / 2021년 12월
평점 :
장바구니담기





이 책을 선택한 이유


GraphQL을 해보려고 했던 이유와도 일맥상통하겠다.

백엔드 개발자로 일하며 자바 스프링으로 RESTful API 뽑아내는 작업을 주로 하고 있다.

REST는 주체가 전적으로 백엔드에 있고 규격이 정해져 있다.

종종 "클라이언트에서 원하는 데이터를 원하는 대로 뽑아갈 수 있는 GraphQL이라는 게 있다"라는 이야기는 들었는데 REST 사용처가 훨씬 더 많기에 깊게 관심 두지 않았다.

클라이언트가 원하는 대로 데이터 알아서 뽑아가면 백엔드 개발자는 뭐 하지? DB 만들어놓고 서버 관리만 하며 노나? 싶기도 했다.

이름에서 오는 거부감도 있었다. 

그............. 그래프? QL? Query Language? Graph Query Language......? (사절)


보통 토이 프로젝트를 할 때 공부할 겸 자바 + 스프링으로 API 뽑아내고 리액트나 스벨트로 프론트 작업을 한다.

가장 익숙해서 그렇다.

하지만 공부의 목적이 아니라 실제 사용하기 위한 프로젝트를 만들 때에는 더 빠르게 속도를 내는 게 중요한데, 조금만 데이터 규격이 바뀌어도 혼자 양쪽 프로젝트를 넘나들며 작업해야 하기 때문에 "이건 좀 아니다" 싶었다.

양쪽이 조금 더 유연하게 연결되어야 할 필요성을 느꼈다.

뿐만 아니라 회사에서 프론트엔드 포지션으로 작업할 때, 백엔드 개발자들과 충분히 API 모델 설계에 대한 이야기를 나눴음에도 이런저런 이유로 모델을 수정해야 하는 경우가 왕왕 있었다.

API에 대한 중심을 전적으로 백엔드가 가지고 있기 때문에 다시 API 수정 요청을 하면서 커뮤니케이션 비용을 들이고, 기다리고, 받아서 다시 작업하는 일련의 과정이 효율적이지는 않다고 느꼈다.


그래프QL이 뭔지 잘 몰라서 대안이 될 수 있을지는 모르겠지만 일단 경험해 보기로 했다.

관련 책이 많지는 않은 것으로 아는데, 애정해 마지않는 한빛미디어에서 이번에 신간을 냈길래 보게 됐다. (참고로 번역서다.)



책의 특징


우선 500페이지 정도로 두께가 얇지는 않다.

전체 흑백 톤이고 종이가 반질반질한 재질이다.

'~ 인 액션' 책을 몇 권 봤던 적이 있기에 물리적인(?) 부분은 친숙해서 읽기 편안했다.

번역도 거슬림 없었다.

근데 회사 동료에게 공부하고 있다고 책을 보여줬더니 GraphQL 표기법이 왜 'GraphQL'이나 '그래프큐엘'이 아니라 '그래프QL'이냐, 해서 이후로 책 보는 데 계속 신경이 쓰이고야 말았다.

(아래 내용부터는 책의 표기법을 따르기로 한다.)


3부 10장으로 이루어져 있다.

큰 구성은 아래와 같다.


<1부 그래프QL 경험해보기>

1장 그래프QL 소개

2장 그래프QL API

3장 그래프QL 작업 수정 및 구성


<2부 그래프QL API 작성법>

4장 그래프QL 스키마 설계

5장 스키마 리졸버 구현

6장 데이터베이스 모델과 관계 사용

7장 데이터 추출 작업 최적화

8장 변경 작업의 구현


<3부 그래프QL API 사용법>

9장 라이브러리를 쓰지 않는 그래프QL API 사용법

10장 아폴로 클라이언트를 통한 그래프QL API 사용법


소개 부분에서 책의 가치를 100퍼센트 경험하기 위해선 순서대로 읽을 것을 권장한다고 하는데 그런 면에서 보면 괜찮은 구성이라고 생각된다.


책 시작 부분에 그래프QL을 소개하며 '왜 써야 하는지'를 이야기하는데 꽤나 강렬한 표현들을 사용한다.


저자는 이렇게까지 말한다.


그래프QL을 배우는데 할애한 시간은 내 인생에서 가장 잘한 투자다.

지은이의 말 (p7)

크, 어떻게 안 써볼 수 있으랴?


1부 1장 딱 펴고 읽자마자 3번째 문장에 이런 표현도 나온다.


하지만 현재 그래프QL이 인기를 얻고 있는 이유는

기술적 문제보다는 커뮤니케이션 문제를 해결하기 때문이다.

1장 그래프QL 소개 (p23)


기술적 문제보다는 커뮤니케이션 문제를 해결하기 위해!

그래프QL이 뭔지 잘 몰랐지만 이 문장 하나로 강렬한 인상을 받았다. 좋은 표현이라고 생각.


특이하게 도커 파일을 제공한다.

바로 사용할 수 있는 PostgreSQL과 몽고DB 환경을 제공하기 위한 것으로, 덕분에 간편하게 세팅을 마쳤다.

Git repo는 거의 모든 개발서가 다 제공하고 있지만 도커 파일을 제공하는 책은 처음이라 신선하다.

(어떻게든 그래프QL을 써보게 하려는 저자의 의지가 아닐까?)



감상


실제 작성법과 사용법에 대한 부분은 나에게는 생소하고 어려웠다.

우선 자바 백엔드 개발자고 Node.js는 제대로 해본 적이 없어서 더 그랬을 수도.

저자가 이야기하는 대상 독자는 프론트, 백엔드 전부 해당되는데 개인적으로는 백엔드보다 프론트엔드 개발자에게 더 도움이 되는 책이 아닐까 한다.


그래프QL은 언어다.

새로운 언어를 배워야 하고 그래프QL API 문법을 알아야 하고 스키마와 리졸버에 대해 이해하고 그래프QL 런타임의 다른 개념들도 알아야 하기에 러닝커브가 높은 편이라는데 무엇보다 새로운 패러다임을 받아들이는 게 쉽지 않았다.


실제로 실무에서 REST 쓰다가 그래프QL로 넘어간 사람들의 후기를 보면 크게 몇 가지 문제점들이 보이는데, 물론 책에서 캐싱이나 보안 문제 등에 대해서 보완할 수 있는 방법을 알려주긴 하지만 직접 굴려보고 삽질해 봐야 알겠다 싶기도 했다.

그래프QL 자체가 이렇게 한 권으로 끝낼 영역의 것이 아니라는 생각도 든다.


하지만 입문서로는 한 사이클을 알차게 담은 책이라 나처럼 "그래서 그게 뭔데?" 싶은 분들에게는 괜찮은 책이 될 것이다.


**

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성한 서평입니다.

**




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo