[Worksheet 220523] GraphQL 심화

방예서·2022년 5월 23일
0

Worksheet

목록 보기
44/47
GraphQL

ApolloGraphQL

GraphQL을 라이브러리화
서버, 클라이언트를 제공하는 라이브러리이다.

setting

https://www.apollographql.com/docs/apollo-server/getting-started

  • init
    npm init --yes

  • 설치
    npm install apollo-server graphql

nodemon

파일이 변경되어 저장할 때마다 바로바로 변경사항을 반영해주는 도구.


쿼리나 뮤테이션을 사용하기 위해선 어딘가에 정의 된 것을 사용해야하는데, 그것을 정의한 곳이 스키마, 정의한 것을 사용하는 곳이 리졸버이다.

스키마

스키마에 대한 내용
프론트로 쉐어할 데이터 구조

서버에 어떻게 데이터를 요청할지를 정의한 파일
어떤 데이터를 얼마나, 데이터의 타입은 어떤지, 필수로 요청할 데이터는 무엇일지에 대한 정보를 담아 서버에 요청(query와 mutation 같은 요청)한다.

Resolver

사용자가 쿼리를 요청했을 때 이를 서버가 어떻게 처리할지를 정의한 파일. 쿼리를 해결(resolve).
요청에 대해 데이터를 반환하거나, 직접 DB를 찾거나, 메모리에 접근하거나, 다른 API에 요청해서 데이터를 가져올 수 있다.

Query, Mutation, Subscription 과 같은 타입이 실제로 일을 하는 부분.
실제 함수의 내용을 만들어 주는 부분이다.

Sequelize

데이터 소스 연결(ORM) SQLite by use Sequelize
Object Relational Mapping DB와 데이터를 매핑해주는 도구

캐시

RESTDataSource는 built-in cache를 제공하지만
DataSource는 캐시 설정이 필요하다면 별도 적용이 필요하다.


참고 블로그

Apollo Server로 GraphQL API 서버 개발하기 (1)
GraphQl로 API 만들기 (2) - 쿼리, 뮤테이션, 스키마, 리졸버

profile
console.log('bang log');

0개의 댓글