⚡GraphQL 이란?
GraphQL은 2012년 페이스북 개발자들이 모바일 어플리케이션을 제작하면서 만든 쿼리 언어이다.
기존에 많은곳에서 사용중인 REST API를 보안하기 위해서 만들어 졌으며 현재 많은 곳에서 Graphql을 사용하고 있다.
GraphQL은 SQL (Structed Query Language) 와 같은 쿼리 언어 이다. 하지만 언어적 구조의 차이는 매우 크고 사용하는 방식에도 차이가 존재한다.
SQL이 데이터베이스 시스템으로 부터 데이터를 가져온다면, GraphQL의 경우는 클러이언트가 데이터를 서버로 부터 가져온다.
⚡GraphQL vs REST
GraphQL이 REST API 방식을 보안하기 위해서 만들어졌다면 어떤 차이점이 존재하는지 한번 알아보자
- GraphQL API는 보통 하나의 엔드포인트를 가진다.
- GraphQL API는 사용하는 쿼리에 따라 원하는 응답값을 받을 수 있다.
REST API의 경우 예를 들어 사용자, 영화 정보, 예약정보를 가져온다고 가정을 했을때 여러번의 호출을 통해서 가져오게 되는 경우가 발생하게 된다.
예시)
/user
/movie
/Ticketing
...
이와 같이 예약정보를 조회한다고 했을때 가져오는 데이터의 응답마다 다양한 엔드포인트를 가지게 된다. 하지만 GraphQL은 하나의 엔드포인트에 다른 쿼리를 요청해서 다른 데이터를 받을수 있게 된다.
만약 계속해서 서비스의 크기가 커지게 된다면 REST API의 경우 엔드포인트가 계속해서 늘어나게 된다.
또한 사용자의 정보를 조회한다고 했을때 REST API의 경우, 정해진 응답값만을 받아오는 반면 GraphQL의 경우 쿼리 작성을 통해서 필요한 데이터만 받아올수 있다.
위처럼 장점만 존재하는것은 아니다.
GraphQL의 경우 요청이 text 기반이기 때문에 파일 전송과 같이 text가 아닌 경우, 구현에 어려움이 있을수 있다.
또한 프론트엔드 개발자와 백엔드 개발자의 러닝커브가 발생하게 된다.
⚡결론
GraphQL 과 REST API 간의 장단점은 분명히 존재하며, 사용중인 서비스에 맞는 방식으로 사용하는것이 중요하다고 판단이 된다.
'GraphQL' 카테고리의 다른 글
[GraphQL] 객체 관련 리스트 검증이 느린 이유에 대해서 (0) | 2024.01.14 |
---|