[nodejs] REST API와 GraphQL의 차이점
REST API와 GraphQL은 모두 웹 애플리케이션에서 데이터를 전달하는 데 사용되는 도구입니다. 그러나 두 기술 간에는 몇 가지 중요한 차이점이 있습니다. 이 포스트에서는 REST API와 GraphQL의 주요 차이점에 대해 살펴보겠습니다.
1. 데이터 요청 방식
- REST API: REST API에서는 클라이언트가 서버로부터 데이터를 요청할 때마다 서버에서 미리 정의된 엔드포인트(Endpoint)를 통해 데이터를 얻습니다. 각 엔드포인트는 특정한 데이터 유형 및 액션에 대한 처리를 정의합니다.
- GraphQL: GraphQL에서는 클라이언트가 하나의 엔드포인트로 쿼리를 보내고 서버는 해당 쿼리에 맞게 데이터를 반환합니다. 클라이언트는 필요한 데이터의 구조와 양을 정확하게 지정할 수 있습니다.
2. 데이터 전송 형식
- REST API: REST API에서는 클라이언트가 서버로부터 필요한 데이터를 요청할 때마다 서버는 사전에 정의된 데이터 형식(예: JSON, XML)으로 응답합니다.
- GraphQL: GraphQL에서는 클라이언트가 요청한 대로 서버가 데이터를 반환하며, 반환 형식은 클라이언트가 요청한 쿼리에 따라 동적으로 결정됩니다.
3. 필드 레벨 요청
- REST API: REST API에서는 클라이언트가 특정 엔드포인트에서 반환되는 데이터의 필드를 사전에 정의된 형태대로 받게 됩니다.
- GraphQL: GraphQL에서는 클라이언트가 필요한 필드만을 지정하여 서버에 요청할 수 있습니다.
4. 오버패칭(Overfetching) 및 언더패칭(Underfetching) 문제
- REST API: REST API에서는 클라이언트가 하나의 엔드포인트로부터 필요한 데이터를 얻기 위해 너무 많거나 부족한 데이터를 받는 오버패칭 또는 언더패칭 문제가 발생할 수 있습니다.
- GraphQL: GraphQL에서는 클라이언트가 필요한 데이터만을 요청하므로 오버패칭 또는 언더패칭 문제가 발생하지 않습니다.
이렇듯 REST API와 GraphQL은 데이터 요청 및 전송 방식에서 중요한 차이가 있으며, 각각의 장단점을 고려하여 프로젝트의 요구에 맞게 선택해야 합니다.
이상으로 REST API와 GraphQL의 주요 차이점에 대해 알아보았습니다. 두 기술을 비교하여 프로젝트에 적합한 선택을 할 수 있도록 도움이 되기를 바랍니다.
참고 문헌: GraphQL 공식 문서, RESTful API 디자인 가이드