GraphQL 오버페칭 해결 실전 결
사이드 프로젝트에서 GraphQL을 처음으로 적용해본 경험이 있습니다. REST API를 사용할 때 화면마다 필요한 필드가 달라 오버페칭이 발생하거나, 반대로 여러 엔드포인트를 호출해야 하는 언더페칭 문제가 있었습니다. GraphQL의 가장 큰 장점은 클라이언트가 필요한 필드만 명시할 수 있어 네트워크 비용을 줄일 수 있다는 점이었습니다.
스키마 타입 정의가 백엔드와 프론트엔드 간 계약 역할을 해서, 타입 기반 자동 완성이 되는 개발 경험이 REST보다 편리했습니다. 리졸버 설계에서 N+1 쿼리 문제를 처음 겪었는데, DataLoader 패턴으로 배치 처리해 해결했습니다. 한계는 REST보다 초기 설정이 복잡하고, 간단한 CRUD에서는 오히려 REST가 더 빠를 수 있다는 점입니다. GraphQL은 다양한 클라이언트가 같은 데이터를 다르게 필요로 할 때 진가를 발휘한다는 결을 얻었습니다.