이 글은 GraphQL의 대안으로 REST API에서 over-fetching 문제를 해결하는 방법을 소개합니다.
핵심 해결책: include 쿼리 파라미터
REST API의 약점으로 지적되는 over-fetching(필요 이상의 데이터를 가져오는 문제)을 include
파라미터로 해결할 수 있습니다. 클라이언트가 필요한 추가 데이터를 명시적으로 요청하는 방식입니다.
구현 예시
GET /transactions?limit=2&include=total,categories.totalSum
이 요청은 기본 트랜잭션 목록과 함께:
total
: 전체 항목 수 (페이지네이션용)categories.totalSum
: 카테고리별 합계
를 선택적으로 포함시킵니다.
장점
- GraphQL처럼 클라이언트가 필요한 데이터만 요청 가능
- REST의 단순함 유지
- 구현이 비교적 간단
- 집계 쿼리 등 복잡한 요구사항도 처리 가능
글에서는 .NET 9과 Entity Framework를 사용한 실제 구현 예제를 제공하며, IncludeQueryParameter
클래스를 통해 쉽게 처리하는 방법을 보여줍니다. 이는 GraphQL의 복잡성 없이도 유연한 API를 만들 수 있는 실용적인 접근법입니다.