
책소개
혁신적인 데이터 페치 기술이 된 GraphQL에 관한 실용적인 안내서로서 자바스크립트로 GraphQL 서비스를 구현하는 방법을 다룬다. 그래프 이론, 그래프의 데이터 구조부터 스키마, GraphQL 서비스, 아폴로(Apollo) 클라이언트까지 웹 서비스 아키텍처를 자체적으로 구성할 수 있는 GraphQL의 장점과 트렌드, 모범 기법 들을 알려준다.
저자소개
출판사소개
목차
1장 GraphQL에 오신 것을 환영합니다
1.1 GraphQL이란?
1.1.1 GraphQL 명세
1.1.2 GraphQL 설계 원칙
1.2 GraphQL의 탄생
1.3 데이터 전송의 역사
1.3.1 RPC
1.3.2 SOAP
1.3.3 REST
1.4 REST의 단점
1.4.1 오버페칭
1.4.2 언더페칭
1.4.3 REST 엔드포인트 관리
1.5 실생활에서의 GraphQL
1.5.1 GraphQL 클라이언트
2장 그래프 이론
2.1 그래프 이론 어휘
2.2 그래프 이론의 역사
2.3 트리는 그래프다
2.4 실생활에서의 그래프
3장 GraphQL 쿼리어
3.1 GraphQL API 툴
3.1.1 GraphiQL
3.1.2 GraphQL 플레이그라운드
3.1.3 공용 GraphQL API
3.2 GraphQL 쿼리
3.2.1 엣지와 연결
3.2.2 프래그먼트
3.3 뮤테이션
3.3.1 쿼리 변수 사용하기
3.4 서브스크립션
3.5 인트로스펙션
3.6 추상 구문 트리
4장 스키마 설계하기
4.1 타입 정의하기
4.1.1 타입
4.1.2 스칼라 타입
4.1.3 열거 타입
4.2 연결과 리스트
4.2.1 일대일 연결
4.2.2 일대다 연결
4.2.3 다대다 연결
4.2.4 여러 타입을 담는 리스트
4.3 인자
4.3.1 데이터 필터링
4.4 뮤테이션
4.5 인풋 타입
4.6 리턴 타입
4.7 서브스크립션
4.8 스키마 문서화
5장 GraphQL API 만들기
5.1 프로젝트 세팅
5.2 리졸버
5.2.1 루트 리졸버
5.2.2 타입 리졸버
5.2.3 인풋 & 열거 타입 사용하기
5.2.4 엣지와 연결
5.2.5 커스텀 스칼라
5.3 apollo-server-express
5.4 컨텍스트
5.4.1 MongoDB 설치하기
5.4.2 컨텍스트에 데이터베이스 추가하기
5.5 깃허브 인증
5.5.1 깃허브 OAuth 설정
5.5.2 권한 부여 과정
5.5.3 githubAuth 뮤테이션
5.5.4 사용자 권한 인증
5.6 마치며
6장 GraphQL 클라이언트
6.1 GraphQL API 사용하기
6.1.1 fetch 요청
6.1.2 graphql-request
6.2 아폴로 클라이언트
6.3 React와 아폴로 클라이언트
6.3.1 프로젝트 설정
6.3.2 아폴로 클라이언트 설정
6.3.3 Query 컴포넌트
6.3.4 Mutation 컴포넌트
6.4 인증
6.4.1 사용자 권한 인증
6.4.2 사용자 식별
6.5 캐시 작업
6.5.1 fetch 방침
6.5.2 캐시 유지
6.5.3 캐시 업데이트
7장 실제 제품을 위한 GraphQL
7.1 서브스크립션
7.1.1 서브스크립션 작업
7.1.2 서브스크립션 데이터 사용하기
7.2 파일 업로드
7.2.1 서버 파일 업로드 기능 구현하기
7.2.2 클라이언트 사진 게시 기능 구현하기
7.3 보안
7.3.1 요청 타임아웃
7.3.2 데이터 제한
7.3.3 쿼리 깊이 제한
7.3.4 쿼리 복잡도 제한
7.3.5 아폴로 엔진
7.4 다음 단계
7.4.1 점진적 마이그레이션
7.4.2 스키마 주도 개발
7.4.3 GraphQL 행사 모음
7.4.4 커뮤니티
7.4.5 커뮤니티 슬랙 채널
배송
- 배송비, 무료배송비는 업체 사정에 따라 달라질 수 있습니다.
- 배송은 결제 확인 후 다음날부터 2~3일 이내에 배송됩니다. (단 도서 산간지역은 1~2일정도 더 소요됩니다.)
- 공휴일은 배송기간에 포함되지 않습니다.
- 주문하신 상품이 여러개인 경우 동일한 업체의 상품만 묶음 배송 가능합니다. (업체 사정에 따라 달라질 수 있습니다.)
- 배송정보는 상단 주문조회나 마이페이지 주문목록에서 가능합니다.
상품 품절
- 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드립니다.
주문취소/변경
- 주문 상품에 대한 변경사항(품절,가격변동)이 발생하면 전화나 메일을 통해 변경내용을 알려드립니다.
- 주문 상품의 변경/취소/환불은 배송 시작전 마이페이지에서 직접 신청이 가능합니다.
- 주문 상품이 발송된 시점에서는 변경/취소/환불이 모두 불가능합니다.
반품/교환
- 기간 : 배송받으신 후 7일 이내에 가능합니다.
- 방법 : 홈페이지 마이페이지 > 반품/ 교환 신청 및 조회에서 가능합니다.
- 배송비 부담 : 상품에 이상이 있을시에는 무료, 고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담입니다.
- 포장 개봉 후 재판매가 불가능한 상품은 반품/교환이 불가능합니다.
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우, 반품/교환이 불가능합니다.
반품/교환 불가 사유
- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우 (단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품 등의 포장을 훼손한 경우
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상 환불 지연에 따른 배상
- 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리합니다.
- 대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리합니다.