GraphQL์ด๋? ์ฐ๋ ์ด์ ์์ฝ์ ๋ฆฌ
๐ GraphQL์ด๋?
- facebook์์ ๋ง๋ ์๋ก์ด API ํ์ค์ธ์ด
- ํ์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์กฐ์ , ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ ๊ฐ๋ฅ
- Graph + Query Language
GraphQL์ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค(API)๋ฅผ ์ํ ์ฟผ๋ฆฌ ์ธ์ด์ด์ ์๋ฒ์ธก ๋ฐํ์์ผ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์์ฒญํ ๋งํผ์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ฐ์ ์์๋ฅผ ๋ก๋๋ค.
GraphQL(์ดํ GQL)์ Structed Query Language(์ดํ SQL)์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฟผ๋ฆฌ ์ธ์ด์ ๋๋ค. ํ์ง๋ง GQL๊ณผ SQL์ ์ธ์ด์ ๊ตฌ์กฐ ์ฐจ์ด๋ ๋งค์ฐ ํฝ๋๋ค. ๋ํ GQL๊ณผ SQL์ด ์ค์ ์์ ์ฐ์ด๋ ๋ฐฉ์์ ์ฐจ์ด๋ ๋งค์ฐ ํฝ๋๋ค. GQL๊ณผ SQL์ ์ธ์ด์ ๊ตฌ์กฐ ์ฐจ์ด๊ฐ ํ์ฉ ์ธก๋ฉด์์์ ์ฐจ์ด๋ฅผ ๊ฐ์ ธ์์ต๋๋ค. ์ด ๋์ ์ ์ด์ ํ์ ์๊ธฐ๋ ๋ค๋ฅด๊ณ ๋ฐฐ๊ฒฝ๋ ๋ค๋ฆ ๋๋ค.
SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ชฉ์ ์ด๊ณ , GQL์ ์น ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ๋ถํฐ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค. SQL์ ๋ฌธ์ฅ(statement)์ ์ฃผ๋ก ๋ฐฑ์ค๋ ์์คํ ์์ ์์ฑํ๊ณ ํธ์ถ ํ๋ ๋ฐ๋ฉด, GQL์ ๋ฌธ์ฅ์ ์ฃผ๋ก ํด๋ผ์ด์ธํธ ์์คํ ์์ ์์ฑํ๊ณ ํธ์ถ ํฉ๋๋ค.
๐ GraphQL์ ์ฐ๋ ์ด์
- endpoint๊ฐ 1๊ฐ์ ๋๋ค. ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ ์ฌ์ฉ์ด ์ฆ๋ํ๋ ์์ฆ, ํจ๊ณผ์ ์ธ ๋ฐ์ดํฐ ๋ก๋ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ํ๋ฒ์ ์์ฒญ์ผ๋ก ์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก๋ถํฐ ์์ฒญํด์ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ REST API๋ง์ ์ฌ์ฉํ ๋
๋ฐ์ํ๋ Overfetching์ด๋ Underfetching ๋ฑ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. - ๊ธฐ์ข ์ ์๊ด์๋ API๊ธฐ ๋๋ฌธ์ ํน์ ๊ธฐ์ข ์ ์ฐจ๋ณํ์ง ์์ต๋๋ค.
๐ Overfetching
์ํ๋ data ์ด์์ ์ ๋ณด๋ฅผ ์์ฒญํ๋ ๊ฒ. data ์ ์ฒด ๋ฆฌ์์ค ๋ญ๋น ๋ฐ์
๐ Underfetching
์ํ๋ data์ ์ ๋ณด๋ฅผ ์์ฒญํ๊ธฐ ์ํด ์ฌ๋ฌ๋ฒ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ. ๋คํธ์ํฌ๋ฅผ ํตํด ์ฌ๋ฌ๋ฒ ์ ๊ทผํด์ ๋ฆฌ์์ค ๋ญ๋น ๋ฐ์
์ฐธ๊ณ
GraphQl ๋ฐ๋ผ์ก๊ธฐ 1ํ - GraphQL ๊ฐ๋ ์ ๋ํด ์์๋ณด์.
ใ GraphQL.. ๋๋์ฒด ๋ ๋ญ๋ ??~~ Apllo๋ฅผ ๋ฐฐ์๋ณด๊ธฐ์ ์ GraphQL๋ถํฐ ๋ง์คํฐ ํด๋ณด์~~ ๊ทธ์ ์... gql์ database ๊ธฐ์ ์ธ๊ฐ?? No..!! API์ ์ ๋ชฉ์ํฌ์ ์๋ queryํ ์ธ์ด๋ค. gql์ React๋ js ๊ฐ๋ฐ์์๋ง ๊ฐ๋ฅํ..
koras02.tistory.com
GraphQL(๊ทธ๋ํ QL) ๊ฐ๋ , ์ฌ์ฉ, ์ฉ์ด, ์ฅ๋จ์ ๋ฐ ๋ฌด๋ฃ ๋ค์ด๋ก๋
GraphQL์ด๋ ์ฟผ๋ฆฌ ์ธ์ด์ด๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค(API) ์๋ฒ ๋ฐํ์์ผ๋ก์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. swagger ๋ฐ javascript api ์ธ์ด ํธ์ถ์ ์ฌ์ฉํฉ๋๋ค.
www.redhat.com
GraphQL ๊ฐ๋ ์ก๊ธฐ
GraphQL์ ํ์ด์ค๋ถ์์ ๋ง๋ ์ฟผ๋ฆฌ ์ธ์ด์ ๋๋ค. GrpahQL์ ์์ฆ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ์์ฃผ ์ ์ ์ค๋ฅด๋ด๋ฆฌ๊ณ ์์ผ๋, 2019๋ 7์ ๊ธฐ์ค์ผ๋ก ์ผ๋ฆฌ์คํ ์ด์ง(early-stage)์์ ๋ถ๋ช ํฉ๋๋ค. ๊ตญ๋ด์์ GraphQL API๋ฅผ O
tech.kakao.com