한빛미디어

독자리뷰

그래프QL 인 액션 리뷰

3457s***

|

2022-02-22

  • 저자 : 사메르 부나
  • 번역 : 김완섭
  • 출간 : 2021-12-24

현재 개발자로 일하고 있는데, 입사 했을 즈음부터 팀 내에서 GraphQL에 대한 이야기가 화제가 되기 시작했던 것 같습니다.

기존에는 모든 API를 Restful하게 작성하고자 노력하는 데에 심혈을 기울였다면,

좀 더 효율적이고 유지보수하기 편한 방법을 찾기 위한 대안으로 떠올랐던 기억이 있는데요.

특히 팀 내부적으로 사용되는 API의 경우에 GraphQL으로 API를 구현할 경우 더 편리하다는 의견들이 늘어났고,

이제는 대부분의 신규 API는 GraphQL으로 구현하게 되었습니다.

그로 인해 저도 GraphQL을 이용해 여러 API를 구현하고, 이를 사용하는 클라이언트에서도 연동을 하고 있는데요.

사용법보다, 왜 GraphQL이 대두되기 시작했는지에 대한 배경을 더 깊게 알고 싶어, 이 책을 신청하게 되었습니다.

 

1장에서는 GraphQL에 대한 간단한 소개와 함께, 뗄레야 뗼 수 없는 관계인 REST API와의 차이점에 대해서 설명하고 있습니다.

GraphQL이 맹목적으로 더 좋다는 내용이 아니라, GraphQL에도 보안이나 캐시 등 약점들이 분명히 존재하며,

특정 상황에서는 REST API의 효율이 더 좋을 수 있고, 둘을 섞어서 써도 상관이 없다는 이야기를 해주고 있습니다.

이후 2장에서 6장까지는 GraphQL의 API및 사용 방법에 대해서 설명하고 있습니다.

GraphQL을 사용해본 적이 없는 독자를 위해 쿼리 예시와 결과 캡처까지 함께 기재해 이해하기 쉽도록 도와주고 있습니다.

스키마를 구성하는 문법들과 스키마를 설계하는 방법, 

설계된 스키마에 따라 데이터를 가져오는 리졸버를 구현하는 과정까지 소개되어 있습니다.

가장 눈여겨본 부분은 7장이었습니다.

여기서는 GraphQL을 사용하면서 발생할 수 있는 성능 상 이슈들에 대해서 다루고 있습니다.

가장 자주 발생하는 예 중 하나가 N+1 쿼리 문제인데요.

이 문제를 해결하기 위한 대안이 되는 라이브러리가 데이터로더(DataLoader)인데, 

이를 통해 N+1 쿼리 문제가 해결되는 이유와 구체적인 사용 방법에 대해 설명해주고 있습니다.

지금까지는 GraphQL을 통해 API를 구현하는 방법에 대해 설명했다면,

9장부터 10장까지는 클라이언트 측에서 이를 사용하는 방법에 대해 이야기하고 있습니다.

9장에서는 Ajax 요청으로 10장에서는 React에서 Apollo 클라이언트를 사용하는 방법으로 구현했는데요.

React에서 Apollo 클라이언트를 사용하면, 가져온 데이터를 바로 view에 결합시켜 렌더링을 시켜줄 수 있어 굉장히 편리해보였습니다.

 

2월의 서평단 후기

책을 읽으면서, 개발을 하면서 신기술을 학습하고 실제로 사용하면서 습득하는 것도 물론 중요하지만,

이 책의 초반에서 한 장을 할애하며 중요하게 다뤘듯이,

해당 기술이 등장하게 된 계기와 경쟁적인 위치에 있는 다른 기술들과의 차별점이 무엇인지를 이해하는 것도 중요하겠다는 생각이 들었습니다.

 

 

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

해당 상품을 장바구니에 담았습니다.
장바구니로 이동하시겠습니까?