Apollo는 프론트엔드와 백엔드 사이의 communication layer(=a unified graph)를 만들기 위한 플랫폼이다. graph의 중심에는 GraphQL이라고 불리우는 query language가 있다. GraphQL을 쓰는 다양한 이유가 있지만 그
GraphqQL의 장점은 개발용 목적으로 현재 서버에서 지원하는 스키마 현황을 조회해볼 수 있다는 점이다. 물론 실제 프로덕션에서는 이러한 기능이 지원되면 안 되기 때문에 Apollo Server에서는 NODE_ENV가 production일 때 이 기능이 꺼져있다.
A resolver is a function that's responsible for populating the data for a single field in your schema.GraphQL의 핵심 개념이다. 프론트엔드에서 특정 필드를 요구할 때 해당 필드를 담당
GraphQL에서 원하는 모든 필드에는 argument를 넣을 수 있다. 보통 이런 식으로 조회를 할 수 있는데이렇게 하기보다는 이런 식으로 정의해두고 info variable를 사용하는 것이 권장된다.
Apollo Server를 사용할 수 있는 다양한 패키지가 있는데 보통은 apollo-server를 쓰다가 좀더 세밀한 설정을 할 수 있는 apollo-server-express로 갈아타는 경우가 많다. (apollo-server도 내부적으로는 apollo-server
DataLoader 유틸리티는 캐싱 및 배채 로드에 활용된다. memoization 캐시를 제공함으로써 하나의 GraphQL 리퀘스트 동안 같은 객체가 여러번 로드되는 것을 방지해준다. 한번의 event loop 틱 동안 발생한 로드들을 하나의 배치성 리퀘스트(한번에
Apollo Server는 에러가 발생하면 그 응답에 errors 배열을 준다. 그리고 이때 배열의 각 원소는 extensions라는 객체를 갖고 있는데 해당 객체는 code라는 필드의 각 에러의 이름을 갖고 있다. 이것들은 모드 ApolloError 객체들이다. 어