REST의 N번 호출, GraphQL의 1번 호출
리소스 중심으로 설계된 REST API는 화면 하나를 그리기 위해 사용자 정보, 게시글, 댓글, 좋아요 수 등을 각각 다른 엔드포인트에서 받아와야 하는 경우가 흔합니다. 필요 없는 필드까지 함께 내려오는 Over-fetching 문제도 겹치면, 실제 화면에 쓰이는 데이터보다 훨씬 많은 양이 네트워크를 통해 전송됩니다.
이 계산기는 동일한 화면을 그리기 위한 REST 호출 수와 호출당 평균 응답 크기를 곱해 REST 총 전송량을 구하고, 이를 동일한 데이터를 한 번에 가져오는 GraphQL 단일 쿼리의 응답 크기와 비교해 절감률을 보여줍니다.
다만 GraphQL이 항상 유리한 것은 아닙니다. 쿼리가 복잡해질수록 서버의 리졸버 처리 비용이 늘어나고, N+1 문제 같은 별도의 성능 이슈도 생길 수 있습니다. 이 도구는 순수 데이터 전송량 관점의 비교이므로, 실제 도입 여부는 서버 처리 비용까지 함께 고려해 결정하는 것을 권장합니다.
자주 묻는 질문
REST는 리소스 단위로 엔드포인트가 나뉘어 있어, 화면 하나에 여러 종류의 데이터가 필요하면 각 리소스마다 별도로 요청을 보내야 하는 경우가 많습니다.
필요한 필드만 선택해서 가져올 수 있어 과다 응답(Over-fetching)을 줄이지만, 쿼리가 복잡해지면 서버 측 리졸버 처리 비용이 늘어날 수 있어 항상 유리한 것은 아닙니다.
REST API는 응답 형태가 고정되어 있어 화면에 필요 없는 필드까지 함께 내려오는 경우가 많고, 이는 불필요한 데이터 전송으로 이어집니다.