Computer Science

[네트워크] Rest API와 GraphQL의 차이

You_mool 2023. 8. 12. 02:04
반응형

REST API와 GraphQL은 웹에서 데이터를 조회하고 조작하기 위한 두 가지 접근 방식입니다. 

GraphQL이 요새 많은 회사에서 도입을 하고 있지만 대부분의 API는 REST로 되어 있기 때문에 나중에 GraphQL을 익히면 될 거 같습니다.

  1. 엔드포인트 구조:
    • REST: 각 리소스에 대해 별도의 엔드포인트가 있습니다. 예를 들어, 사용자 정보를 얻기 위해서는 /users 엔드포인트에, 게시물 정보를 얻기 위해서는 /posts 엔드포인트에 요청을 보냅니다.
    • GraphQL: 단일 엔드포인트(대부분 /graphql)에서 모든 데이터 조작을 수행합니다. 클라이언트는 필요한 데이터를 명시하는 쿼리를 이 엔드포인트로 전송합니다.
  2. 데이터 요청 및 응답:
    • REST: 엔드포인트와 HTTP 메소드에 따라 정해진 데이터 형식으로 응답합니다. 때로는 필요하지 않은 정보까지도 응답에 포함될 수 있습니다.
    • GraphQL: 클라이언트는 필요한 데이터만을 명시적으로 요청하고, 서버는 해당 요청에 딱 맞는 데이터만 응답합니다. 이로 인해 오버페칭과 언더페칭 문제를 피할 수 있습니다.
  3. 버전 관리:
    • REST: 새로운 데이터나 기능이 추가될 때 새로운 버전의 API를 생성해야 할 수 있습니다. (예: /v1/users, /v2/users)
    • GraphQL: 스키마에 새로운 필드나 타입을 추가하면서 기존 쿼리에 영향을 주지 않고 변화를 관리할 수 있습니다.
  4. 타입 시스템:
    • REST: 대부분의 RESTful API는 명시적인 타입 시스템을 갖지 않습니다.
    • GraphQL: 강력한 타입 시스템을 내장하고 있어, 클라이언트와 서버 간의 계약을 명확하게 정의하고 검증할 수 있습니다.
  5. 개발 도구:
    • REST: 특별한 사양이나 도구 없이 다양한 프레임워크 및 라이브러리와 함께 사용됩니다.
    • GraphQL: GraphQL을 위한 특화된 도구(예: GraphiQL, Apollo Client)가 있어 개발 및 디버깅이 용이합니다.
반응형