[GraphQL] GraphQL이란? 등장 배경

fejigu·2022년 10월 6일
2

HTTP / 네트워크

목록 보기
9/10
post-thumbnail

이번에는 GraphQL에 대해 학습하게 되었는데, 현재 필드에서 가장 인기가 있는 언어라고도 GraphQL이 왜 인기가 있는지, 이전에 배운 REST API가 충분히 사용하기 수월했는데 왜 GraphQL이 나타났는지 간단하게 정리하며 복습하려고 한다.


API

Application
Programming
Interface

→ 개발자들이 그 사이트와 상호작용을 할 수 있는 버튼들이 있다는 뜻
→ 버튼들은 어플리케이션을 만든 사람의 의도에 따라 노출되어있다. 그래서 버튼을 누르면 어플리케이션은 해당 명령어를 실행하도록 프로그래밍 되어있다.

REST API

fejigumovies.co/api/movies
fejigumovies.co/api/movies/1
fejigumovies.co/api/search?rating=9
REST API는 URL 뭉치
→ ex) 리모콘, 버튼의 모양이 URL인 API
→ URL은 의도가 전달되지 않고, 리소스에 대해서만 전달하기에 충분하지 않다.

REST + HTTP

GET /2/users/fejigu/bookmarks (북마크를 받아온다)
POST /2/users/fejigu/bookmarks (새로운 북마크를 만들게 된다)
URL은 동일하지만, HTTP 메소드에 따라 다르게 작동한다. 서버에서 서로 다른 리소스를 가지게 된다.
→ 메소드 + URL이 API가 더 많은 일을 할 수 있도록 해준다

HTTP 메소드

GET : 받아오기
POST : 만들기
PUT : 업데이트하기
DELETE : 삭제하기


🔎 GraphQL

REST API 다시 복습해보니깐, 너무 간단하고 쉬운데 왜 GraphQL이 필요할까?

GraphQL API는 rest API에 대한 직접적인 해결책이다.
rest API는 두가지 큰 문제를 가지고 있다.
이 문제를 해결하는 것이 GraphQL이며, GraphQL을 사용하는 것은 장점이다.

🔎 1. Over-fetching을 해결한다

GraphQL는 url로 data를 즉시 받지 않고 필요한 data를 요청한다.
→ data에 요청할 수 있으며, 정확히 요청한 것만 받는다

🔎 2. Under-fetching을 해결한다

rest API는 필요한 dataf를 다 주지 않아 다시 request 해야한다.
→ GraphQL는 단 하나의 request만으로 필요한 모든 data를 받을 수 있다

🔎 swapi-graphql

swapi-graphql


→ GraphQL 사용법도 실습을 통해 다뤄봤는데, 바로 다뤄보기 보다는 GraphQL가 왜 나타났는지 어떤 문제를 해결해주고 있는지 알고 사용하니 더 잘 와닿았다.

profile
console.log(frontendjigu( ☕️, 📱); // true

0개의 댓글