GraphQL의 특징

eeensu·2023년 8월 8일
0

GraphQL

목록 보기
2/6
post-thumbnail

GraphQL만의 특징

  • 개발자 도구
    editor를 떠나지 않고 API에서 요청할 수 있는 데이터를 정확히 파악하고, 쿼리를 보내기 전에 잠재적인 문제를 강조 표시해주는 개발자 도구를 사용할 수 있다. 이러한 개발자 도구에는 Graph i QL가 있으며, 이를 통해 GrapQL을 쉽게 구축할 수 있다.

  • type 시스템
    GraphQL API는 엔드포인트가 아닌 유형 및 필드 측면에서 구성된다. 단일 엔드포인트에서 데이터의 전체 기능에 액세스할 수 있으며 데이터의 type을 사용하여 앱이 가능한 항목만 요청하고 명확하고 유용한 오류를 제공하도록 해준다.

  • 사용처
    GraphQL은 모바일 앱, 웹 사이트및 API를 지원하기 위해 다양한 환경과 언어로 모든 규모의 팀에서 사용한다. 대표적으로 페이스북, 깃허브, 에어비엔비, 스타벅스, 메타, PayPal, 트위터 등 많은 곳에서 사용되고 있다.




GraphQL만의 장점

GraphQL을 사용하면 다음의 장점을 경험할 수 있다.

  • 프론트엔드에서 신속한 웹 개발을 활성화 할 수 있다.

  • 서버에 매번 API 요청을 하지 않아도 된다.

  • 프론트에서 어떤 데이터를 가져다 쓰는지 알 수 있게 되므로, 프론트에서 백엔드의 시선으로 데이터 분석이 가능하다.

  • 스키마 및 타입 시스템의 이점이 있어 프론트엔드와 백엔드가 사용하는 데이터 구조를 맞출 수 있게 된다.


GraphQL의 단점

하지만 물론 장점만 있는 것이 아니다.

  • 오버헤드
    데이터 요청을 명시적으로 정의해야 하므로 작은 규모 애플리케이션에서는 요청의 오버헤드가 발생할 수 있다. 예를 들어, REST 엔드포인트에서는 불필요한 데이터를 가져오더라도 클라이언트는 요청만 할뿐이지만, GraphQL을 사용하는 클라이언트와 서버는 개발환경을 따로 구축하야며, 쿼리의 타입을 작성해야하는 등의 번거로움이 발생한다.
  • 보안 문제
    GraphQL은 클라이언트가 필요한 데이터를 자유롭게 요청할 수 있기 때문에, 잘못된 요청이나 악의적인 요청으로 인해 보안 문제가 발생할 수 있다.
  • 작은 생태계
    GraphQL은 아직 REST보다는 적은 커뮤니티를 가지고 있다. 따라서 특정 기능을 구현하려면 직접 코드를 작성해야 할 수 있고, 일부 프레임워크에서는 GraphQL 지원이 미비할 수 있다.

이러한 장단점들을 고려하여 프로젝트를 제작할 때, 어떤 API 방식을 사용해야할지 주의 깊게 고려해야한다.

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

0개의 댓글