𝐆𝐫𝐚𝐩𝐡𝐐𝐋 𝐕𝐒 𝐑𝐄𝐒𝐓 𝐀𝐏𝐈

2024. 12. 11. 17:59TIL

✔오늘 배운 중요한 🔑 point

  • REST API 여러 엔드포인트를 통해 고정된 형태의 데이터 제공
  • GraphQL하나의 엔드포인트를 통해 필요한 데이터만 제공
  • REST API는 서버가 주도권을 가지고 GraphQL은 클라이언트가 주도권을 가진다.
  • GraphQL은 데이터의 과다 전송이나 부족 문제를 해결할 수 있다.

🎯 오늘 배운 내용

 

GraphQL이란?

데이터 쿼리 언어이자, API를 위한 런타임 환경

 

특징

 

  • 정확한 데이터 요청: 클라이언트가 필요한 데이터만 요청
  • 단일 엔드포인트: 모든 요청을 하나의 엔드포인트에서 처리
  • 타입 시스템:  강력한 타입 시스템을 사용하여 쿼리, 응답, 오류를 정의
  • 실시간 데이터:  subscriptions를 통해 실시간 데이터 업데이트를 지원
  • 버전 관리 필요 없음:  버전 관리가 필요 없으며 클라이언트가 필요에 따라 쿼리를 수정함으로써 새로운 기능을 쉽게 사용

 

 

REST API와의 차이

 

  • 데이터 요청 방식:
    • REST API: 클라이언트는 여러 개의 엔드포인트에서 각각 필요한 데이터를 요청
    • GraphQL: 하나의 엔드포인트만 사용하며, 클라이언트가 요청한 데이터의 정확한 구조를 정의
  • 데이터 응답 방식:
    • REST API: 서버에서 제공하는 구조에 맞춰 데이터를 요청. 때로는 여러 번의 요청이 필요
    • GraphQL: 클라이언트가 응답받을 데이터의 형태를 직접 정의. 한 번의 요청으로 여러 리소스(예: 사용자, 게시글, 댓글 등)를 포함하는 응답을 받음.
  • 버전 관리:
    • REST API: API가 변경되면 새로운 버전을 만들어서 기존 클라이언트와의 호환성을 유지
    • GraphQL: API의 버전 관리를 따로 하지 않아도 됨
  • 데이터 처리 방식:
    • REST API: 서버는 고정된 데이터 구조를 클라이언트에게 제공
    • GraphQL: 클라이언트가 쿼리를 작성하고 서버는 이를 실행하여 원하는 데이터만 반환

 

 

 

🤔 어떻게 활용할까?

SNS, 블로그, 실시간 채팅 애플리케이션, 알림 시스템 등 복잡하고 실시간 업데이트가 필요한 경우에는 GraphQL의 사용이 더 적합할 수 있을 것 같다. 

📓 오늘의 한줄

"Opportunities don't happen, you create them."

- Chris Grosser -