📚 GraphQL과 Apollo
Chapter 1. GraphQL이 뭐고 왜 쓰나요?
Lesson 3. GraphQL로 정보 주고받아보기

참고영상



체험 프로젝트 실행

  • 1-3-graphql-exp 프로젝트 실행

    # 프로젝트 모듈 설치 npm install # # 프로젝트 실행 명령어 (해당 프로젝트 폴더에서) nodemon index.js # 브라우저에서 localhost:4000 으로 확인

GraphQL 사용해보기

팀 정보 받아오기

query { teams { id manager office extension_number mascot cleaning_duty project } }

팀의 필요한 정보만 받아오기

query { teams { manager office } } query { team(id: 1) { manager office } }

팀 정보와 해당 팀 멤버들의 정보들 받아오기

query { team(id: 1) { manager office members { first_name last_name } } }

팀 목록과 역할 목록 받아오기

query { teams { manager office mascot } roles { id requirement } }

새 팀 추가

mutation { postTeam (input: { manager: "John Smith" office: "104B" extension_number: "#9982" mascot: "Dragon" cleaning_duty: "Monday" project: "Lordaeron" }) { manager office extension_number mascot cleaning_duty project } }

특정 번호의 팀 정보 수정

mutation { editTeam(id: 2, input: { manager: "Maruchi Han" office: "105A" extension_number: "2315" mascot: "Direwolf" cleaning_duty: "Wednesday" project: "Haemosu" }) { id, manager, office, extension_number, mascot, cleaning_duty, project } }

특정 번호의 팀 삭제

mutation { deleteTeam(id: 3) { id, manager, office, extension_number, mascot, cleaning_duty, project } }
GraphQL의 강점
1. 필요한 정보들만 선택하여 받아올 수 있음
  • Overfetching 문제 해결
  • 데이터 전송량 감소
2. 여러 계층의 정보들을 한 번에 받아올 수 있음
  • Underfetching 문제 해결
  • 요청 횟수 감소
3. 하나의 endpoint에서 모든 요청을 처리.
  • 하나의 URI에서 POST로 모든 요청 가능
📚 GraphQL과 Apollo