๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Development/API

[API] GraphQL ๊ด€๋ จ dependency | Apollo Client, graphql-request

by DevIseo 2023. 6. 15.

graphQL ๊ด€๋ จ ์˜์กด์„ฑ ์ถ”๊ฐ€

1. Apollo Client

 

Introduction to Apollo Client

Apollo Client is a comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL. Use it to fetch, cache, and modify application data, all while automatically updating your UI. Apollo Client helps

www.apollographql.com

Hooks ์—†์ด Apollo Client ์‚ฌ์šฉํ•˜๊ธฐ

yarn:
yarn add apollo-boost react-apollo graphql
npm:
npm install apollo-boost react-apollo graphql

Hooks์œผ๋กœ Apollo Client ์‚ฌ์šฉํ•˜๊ธฐ

npm:
npm install apollo-boost @apollo/react-hooks graphql
yarn:
yarn add apollo-boost @apollo/react-hooks graphql

2. graphql-request

 

GitHub - jasonkuhrt/graphql-request: Minimal GraphQL client supporting Node and browsers for scripts or simple apps

Minimal GraphQL client supporting Node and browsers for scripts or simple apps - GitHub - jasonkuhrt/graphql-request: Minimal GraphQL client supporting Node and browsers for scripts or simple apps

github.com

graphql-request ์„ค์น˜

//yarn
yarn add graphql-request

//npm
npm i graphql-request

graphql์ด ๊น”๋ ค์žˆ์ง€ ์•Š๋‹ค๋ฉด ๊ฐ™์ด ์„ค์น˜

//yarn
yarn add graphql-request graphql

//npm
npm i graphql-request graphql

 

apollo Client VS graphql-request

1. Apollo Client

์žฅ์ :

  1. ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ์ œ๊ณต: Apollo Client๋Š” ์ฟผ๋ฆฌ ์บ์‹ฑ, ์ƒํƒœ ๊ด€๋ฆฌ, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ, ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.
  2. ์œ ์—ฐํ•œ ์„ค์ •: Apollo Client๋Š” ๋‹ค์–‘ํ•œ ์„ค์ • ์˜ต์…˜์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ์— ๋งž๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Œ
  3. ํ™•์žฅ์„ฑ: Apollo Client๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ํ†ตํ•ฉ์ด ๊ฐ€๋Šฅ

๋‹จ์ :

  1. ํฌ๊ธฐ: Apollo Client๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒˆ๋“ค ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ํผ.
    • ๋”ฐ๋ผ์„œ ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚  ์ˆ˜ ์žˆ์Œ
  2. ๋Ÿฌ๋‹ ์ปค๋ธŒ: Apollo Client๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ์„ค์ •์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋Ÿฌ๋‹ ์ปค๋ธŒ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ

2. graphql-request

์žฅ์ :

  1. ๊ฐ€๋ฒผ์›€: graphql-request๋Š” ์ž‘์€ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณต
    • ์ด๋Š” ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ
  2. ๊ฐ„ํŽธํ•œ ์‚ฌ์šฉ๋ฒ•: ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์ธ API๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  3. ํ™˜๊ฒฝ์— ๋…๋ฆฝ์ : ๋ธŒ๋ผ์šฐ์ €๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Node.js์™€ ๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

๋‹จ์ :

  1. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๋ถ€์กฑ: GraphQL-Request๋Š” ๊ธฐ๋ณธ์ ์ธ GraphQL ๊ธฐ๋Šฅ๋งŒ ์ œ๊ณตํ•˜๋ฏ€๋กœ, ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์ด๋‚˜ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Œ
  2. ์บ์‹ฑ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ ๋ถ€์กฑ: GraphQL-Request๋Š” ์บ์‹ฑ ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ.

๊ฐ๊ฐ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์šฉ๋„์— ๋”ฐ๋ผ ์„ ํƒ๋˜์–ด์•ผ ํ•จ.

์ž‘์€ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ๋‚˜ ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” graphql-request๊ฐ€ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,

๋ณต์žกํ•œ ์ƒํƒœ ๊ด€๋ฆฌ๋‚˜ ์บ์‹ฑ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—๋Š” Apollo Client๊ฐ€ ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Œ.

'Development > API' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[API] graphql-request | GraphQLClient, request  (0) 2023.06.29

๋Œ“๊ธ€