GraphQL

개요

Cheolsu Proxy는 GraphQL 요청과 응답을 자동으로 감지하고 분석합니다. 일반 HTTP 트래픽 목록에서는 모든 GraphQL 요청이 같은 엔드포인트(/graphql)로 표시되어 구분이 어렵지만, GraphQL 대시보드에서는 작업 이름, 타입, 변수 등 GraphQL 고유 정보를 기준으로 트래픽을 분류합니다.


자동 감지

다음 조건 중 하나를 만족하면 GraphQL 요청으로 자동 감지합니다:

  • POST 요청 바디에 query 필드가 존재
  • Content-Type에 graphql이 포함
  • GET 요청의 쿼리 파라미터에 query가 포함
  • 배치 쿼리 (배열 형태의 요청 바디)

분석 정보

작업 정보

항목설명
작업 타입Query, Mutation, Subscription
작업 이름query GetUser { ... }에서 GetUser
쿼리전체 GraphQL 쿼리 문자열
변수쿼리에 전달된 변수 (JSON)
엔드포인트요청 URL

응답 분석

항목설명
data응답 데이터
errorsGraphQL 에러 목록 (메시지, 위치, 경로)
extensions서버 확장 데이터 (성능 메트릭 등)

배치 쿼리

하나의 HTTP 요청에 여러 GraphQL 작업이 포함된 배치 쿼리를 지원합니다. 각 작업은 배치 인덱스와 함께 개별적으로 표시됩니다.


활용 사례

작업별 필터링

Query와 Mutation을 구분하여 데이터 변경 작업만 모니터링하거나, 특정 작업 이름으로 필터링하여 관심 있는 API 호출만 추적할 수 있습니다.

에러 추적

GraphQL 에러는 HTTP 상태 코드 200으로 반환되는 경우가 많아 일반적인 HTTP 모니터링으로는 감지하기 어렵습니다. GraphQL 대시보드에서는 응답의 errors 필드를 파싱하여 에러를 명확하게 표시합니다.

N+1 쿼리 감지

Analytics와 연동하여 동일한 엔드포인트에 대한 반복 쿼리를 탐지하고, N+1 문제를 식별할 수 있습니다.


사용 방법

Desktop

  1. 사이드바에서 GraphQL 메뉴 선택
  2. 작업 목록에서 Query/Mutation/Subscription 별로 확인
  3. 작업을 선택하면 쿼리, 변수, 응답 상세 정보 표시

MCP

"GraphQL mutation 목록을 보여줘"
"GetUser 쿼리의 응답을 확인해줘"