June 26, 2022
GraphQL 공식 문서에 적혀있는 GraphQL의 설명은 아래와 같다.
GraphQL API를 위한 쿼리 언어이며 이미 존재하는 데이터로 쿼리를 수행하기 위한 런타임이다. GraphQL은 API의 데이터에서 완전하고 이해 가능한 설명을 제공하고, 클라이언트에게 뭘 필요로 하는지를 정확하게 요청할 수 있도록 하고, 시간이 지남에 따라 API가 진화하는 걸 더 쉽게 하고, 더 강력한 개발자 도구를 가능하게 한다.
보통 RESTful API를 사용하기 때문에, 기존에는 새로운 기능을 만들 때마다 새로운 API를 만들어줘야 했다.
API에 GraphQL 쿼리를 날리면 정확하게 원하는 것을 얻게 되는데, GraphQL 쿼리는 항상 예측 가능한 결과를 반환한다. GraphQL을 사용하는 앱은 서버가 아니라 앱에서 데이터를 제어하기 때문에 빠르고 안정적이다.
GraphQL 쿼리는 하나의 리소스의 자원에 접근하는 것이 아니라 자원의 참조까지 고려한다. 전형적인 REST API가 여러개의 URL의 로딩을 요구하는 동안, GraphQL API는 한번의 요청에 앱이 필요로 하는 모든 데이터를 얻게 된다. GraphQL을 사용하는 앱은 느린 모바일 네트워크 연결에서도 빠르게 동작한다.
RESTful API와 다르게 다음과 같이 필요한 타입만 쿼리해서 원하는 결과를 얻을 수 있다.
GraphQL 쿼리를 아래와 같이 사용하면
{
me {
name
}
}
다음과 같은 JSON 결과를 얻을 수 있다.
{
"me": {
"name": "Jaeeun Jang"
}
}
GraphQL에서는 하나의 항목과 항목의 리스트를 동일하게 보기 때문에 다음과 같이 호출할 경우
{
hero {
name
friends {
name
}
}
}
다음과 같이 friends를 리스트로 가져올 수도 있다.
{
"data": {
"hero": {
"name": "Iron man",
"friends": [
{
"name": "Thor"
},
{
"name": "Spiderman"
}
]
}
}
}
GraphQL의 개념과 간단한 사용법에 대해 알아보았는데 다음에는 좀 더 많은 내용을 알아보고 실제로 사용해보고 싶다.