Chapter1. GraphQL
1.GraphQL의 개념과 특징에 대해 이해합니다.
2.GraphQL이 왜 자료구조로 Graph를 선택했는지에 대해 이해합니다.
3.GraphQL과 REST API의 차이에 대해 이해합니다.
4.GraphQL의 장정 및 단점에 대해 이해합니다.
Chapter2. GraphQL 다루기
5.GraphQL의 데이터를 조회하는 방법인 query를 작성하는 법을 이해합니다.
6.GraphQL의 데이터를 수정하는 방법인 mutation을 작성하는 법을 이해합니다.
7.GraphQL의 스키마와 타입에 대해 이해합니다.
과제
8.GraphQL의 쿼리를 작성하여 데이터를 조회하는 방법이 어렵지 않습니다.
1.그래프 형태로 자료구조를 관리하는 것으로 각 노드간의 간선을 통해 특정한 순서에 따라 그래프를 재귀적으로 탐색할 수 있으며 아래와 같은 특징들이 있다.
1.GraphQL은 HTTP를 통해 API 서버로 요청을 보내고 응답을 받는다.
2.응답을 받을 시, 데이터 결과를 JSON 형식으로 받는다.
3.GraphQL은 서버 개발자가 작성한 각 필드에 대응하는 resolver 함수로 각 필드의 데이터를 조회할 수 있다.
4.GraphQL은 GraphQL 라이브러리가 조회 대상 schema가 유효한지 검사한다.
2.GraphQL에서는 모든 데이터가 그래프 형태로 연결되어 있다고 전제하고 Graph 형태를 선택했다고 생각한다.
3.REST API는 특정 데이터를 요청할 때 하위 주소값까지는 들어갈 수 있지만 그 데이터의 모든 양을 받아오기 때문에 Overfetch의 문제를 겪으며 하나의 엔드포인트로는 충분한 데이터를 다 받아오지 못하는 Underfetch의 문제도 겪기 때문에 데이터 낭비를 감수하거나 여러번의 요청을 보내야 하지만 GraphQL은 요청사항을 정리해 한번에 원하는 데이터만 받아올 수 있다.
4.GraphQL는 하나의 엔드포인트에서 필요한 정보만 가져올 수 있으며 playground(사실 postman과 유사)라는 테스트 도구가 있으고 서버에는 영향을 주지 않는다는 장점이 있으며
학습에 어느정도의 시간이 필요하며 캐싱이 REST API보다 훨씬 복잡하고 고정된 요청/응답에는 REST API보다 더 많은 크기의 요청을 사용할 수 있다는 단점이 있다.
5.playground의 이름들을 참조해서 클릭하면서 필드, 전달인자, 별명 등의 필요한 부분을 작성한 후 복사하는 방식으로 기초를 익힐 수 있고 원하는 부분의 이름을 변경해 필요한 데이터값만 받아올 수 있다.
6.mutation이라는 키워드를 사용해 쿼리와 유사하게 사용할 수 있다.
7.스키마에 있는 대부분의 타입은 객체 타입이며 모든 스키마는 쿼리 타입을 가지지만 뮤테이션 타입은 가질 수 있고 가지지 않을 수 있다.
8.단순한 데이터 조회 자체에는 어려움이 없이 진행할 수 있었지만 토큰을 발행하고 적용하는 부분에서 어려움을 겪었다. token을 사용할 때는 'token 토큰키' 형태로 넣어주자
오늘은 지나치게 설명이 적어서 그런지 유튜브 강의와 페이지와 여러곳을 탐방했는데 대다수는 fetch에 대한 이야기가 많아 explorer에 대한 실습을 제대로 하지 못한 것 같다..
결국 spaceX인가 하는 배열을 받아서 적용하는건 성공했지만 토큰을 'token 개인토큰'으로 넣지 않고 '개인토큰'으로 요청해서 401오류같은것만 계속 받아보다가 시간이 끝나버렸다.
실습이 주가 되야 하는 과정일 것 같은데 굳이 이걸 이렇게 부실하게 했어야 했나 싶지만
세션 때 설명이 좋았기 때문에 보충이 됐다.