Skip to content

Graph QL

GraphQL은
클라이언트가 필요한 데이터 구조를 직접 정의해서 요청하는 API 방식이다.

REST의 과잉 응답 / 부족 응답 문제를 해결하기 위해 등장했다.


  • 보통 하나의 엔드포인트만 사용한다

예시: POST /graphql

URL이 아니라 요청 본문(Query)가 의미를 가진다.


클라이언트가 원하는 데이터 구조를 명시한다.

  • 필요한 필드만 응답
  • 중첩 구조를 한 번에 조회 가능

Unity UI 구조와 데이터 구조를 맞추기 쉽다.


  • REST는 서버가 응답 구조를 결정
  • GraphQL은 클라이언트가 응답 구조를 결정

차이점:

  • REST: 여러 엔드포인트
  • GraphQL: 단일 엔드포인트
  • REST: Over-fetch / Under-fetch 발생
  • GraphQL: 필요한 만큼만 수신

  • UI에 맞는 데이터 구조를 한 번에 수신
  • 네트워크 왕복 횟수 감소
  • 복잡한 화면 구성에 유리
  • 쿼리 작성 난이도
  • 서버/클라이언트 모두 스키마 이해 필요
  • 디버깅 난이도 증가
  • 캐싱 전략이 복잡함

  • 복잡한 프로필 화면
  • 인벤토리 + 캐릭터 + 장비 동시 조회
  • 대시보드형 UI
  • 운영툴, 어드민 페이지

  • 모바일 네트워크 환경에서는 쿼리 크기 주의
  • 쿼리 복잡도 제한 필요 (서버 보호)
  • REST와 혼용하는 경우가 많음

GraphQL은
Unity에서 복잡한 UI 데이터를 효율적으로 가져오고 싶을 때 쓰는 방식이다.