GraphQL

김장군·2022년 5월 21일
0

TIL

목록 보기
2/3
post-thumbnail

Nomad Coders YouTube 채널에서 우연히 봤는데 쉽게 잘 설명해 주셔서 좋았다.


GraphQL은 하나의 아이디어고, 이를 스펙으로 만든 것이다.
다운로드 받는 것이 아님.

즉, 특정 언어에 종속되지 않는다.


REST API의 문제(over fetching, under fetching)들을 해결하기 위해 만들어졌다.

Over Fetching
- 필요한 데이터보다 많은 데이터를 가져오는 것.
- 어떤 URL에 요청하여 JSON 문서로 다양한 데이터를 받았는데, 사실 그 중에 진짜 필요한 건 딱 하나의 키-값인 경우.
- 이러면 DB가 쓸데없이 일을 많이 한 것이고 서버와 클라이언트 간의 데이터 전송량도 쓸데없이 많은 것. 따라서 로딩 시간이 쓸데없이 길어진다.

Under Fetching
- 반대로 필요한 것보다 적은 데이터를 가져오는 경우를 말한다.
- 어떤 페이지에 상영예정영화 리스트랑 현재상영영화 리스트를 보여 주고 싶다 하자.
- REST API에서는 2개의 API를 호출해야 한다. /movie/upcoming, /movie/nowPlaying.
- 왜 한 번의 API 호출로 필요한 데이터들을 모두 가져올 수 없는 것일까?
- GraphQL에서는 가능하다.

결국 GraphQL의 장점은,
진짜 필요한 부분만 요청할 수 있다는 것.
이를 통해 프로그램의 성능을 올릴 수 있다.


코멘트도 좀 봤는데, API로 파일 업로드 등의 파일 처리 시 문제가 있는 것으로 보이고
REST API를 좀 더 디테일하게 여러 개 두면 over fetching, under fetching 해결을 할 수 있지 않나 싶기도 하다.

그리고 아직 많은 사이트들(공공기관 등)이 REST API를 제공하고 있기 때문에, GraphQL을 잘 쓸 수 있는 것인지 의문이 든다.

profile
Make impacts!

0개의 댓글