Graph QL
GraphQL은
클라이언트가 필요한 데이터 구조를 직접 정의해서 요청하는 API 방식이다.
REST의 과잉 응답 / 부족 응답 문제를 해결하기 위해 등장했다.
1. GraphQL의 핵심 개념
Section titled “1. GraphQL의 핵심 개념”단일 엔드포인트
Section titled “단일 엔드포인트”- 보통 하나의 엔드포인트만 사용한다
예시: POST /graphql
URL이 아니라 요청 본문(Query)가 의미를 가진다.
필요한 필드만 요청
Section titled “필요한 필드만 요청”클라이언트가 원하는 데이터 구조를 명시한다.
- 필요한 필드만 응답
- 중첩 구조를 한 번에 조회 가능
Unity UI 구조와 데이터 구조를 맞추기 쉽다.
2. REST와의 차이
Section titled “2. REST와의 차이”- REST는 서버가 응답 구조를 결정
- GraphQL은 클라이언트가 응답 구조를 결정
차이점:
- REST: 여러 엔드포인트
- GraphQL: 단일 엔드포인트
- REST: Over-fetch / Under-fetch 발생
- GraphQL: 필요한 만큼만 수신
3. Unity + C#에서 GraphQL의 장단점
Section titled “3. Unity + C#에서 GraphQL의 장단점”- UI에 맞는 데이터 구조를 한 번에 수신
- 네트워크 왕복 횟수 감소
- 복잡한 화면 구성에 유리
- 쿼리 작성 난이도
- 서버/클라이언트 모두 스키마 이해 필요
- 디버깅 난이도 증가
- 캐싱 전략이 복잡함
4. Unity 실무 사용 예시
Section titled “4. Unity 실무 사용 예시”- 복잡한 프로필 화면
- 인벤토리 + 캐릭터 + 장비 동시 조회
- 대시보드형 UI
- 운영툴, 어드민 페이지
5. Unity 기준 주의사항
Section titled “5. Unity 기준 주의사항”- 모바일 네트워크 환경에서는 쿼리 크기 주의
- 쿼리 복잡도 제한 필요 (서버 보호)
- REST와 혼용하는 경우가 많음
6. 한 줄 요약
Section titled “6. 한 줄 요약”GraphQL은
Unity에서 복잡한 UI 데이터를 효율적으로 가져오고 싶을 때 쓰는 방식이다.