Q1) GraphQL이란 무엇인가?
- 기존 REST API는 리소스마다 별도의 엔드포인트를 가지며(ex: /users, /oreders, /products), 응답 구조가 고정되어 있어 서버에서 정해놓은 JSON 스키마를 클라이언트가 그대로 받아야 함. 또한 여러 요청이 필요한 경우, API 요청을 여러 번 보내야 함.
- 반면, GraphQL은 /graphql 하나의 엔드포인트만 존재하며, 클라이언트가 필요한 데이터를 질문(Query) 형태로 전송하므로 서버는 해당 쿼리에 맞는 딱 필요한 데이터만 반환
Q2) 그렇다면 클라이언트에서 서버로 보내는 데이터 크기는 GraphQL과 REST API 중 어느 것이 더 클까?
- 일반적으로 REST API는 서버가 응답 구조를 고정해두므로 데이터 양이 불필요하게 커짐. 예를 들어, 클랑이언트가 실제로 필요한 건 name 하나 뿐이어도 서버에서는 name, email, phone 등 모든 사용자 정보를 보내 불필요한 데이터가 포함됨
- 반면, GraphQL에서는 클라이언트가 필요한 필드만 선택할 수 있으므로 과도하게 요청하지만 않으면 전송 데이터가 최소화
Q3) GraphQL이 장점이 많아보이는데, 여전히 REST API가 많이 쓰이는 이유는?
- REST API는 구조가 단순하고 직관적이어서 사용하기 쉽고, 오랜 기간 사용하면서 대부분의 언어 및 프레임워크에 정착됨. 또한 GraphQL의 경우, 클라이언트가 원하는 만큼 깊고 넓은 데이터를 요청할 수 있는 만큼 쿼리가 잘못 설계되었을 때 무한 중첩 쿼리 요청이 발생해 서버 부하 폭증이 발생할 수 있음.
- 따라서 단순 CRUD API, 공공 데이터 API 등에는 REST API가 적합하고, GraphQL은 복잡한 관계형 데이터 및 웹, 모바일 등 다양한 클라이언트에서 같은 API를 써야 하는 경우에 적합
'데이터 엔지니어링' 카테고리의 다른 글
데이터 수집 (0) | 2025.09.29 |
---|---|
데이터 시스템과 데이터베이스 기초 (0) | 2025.09.08 |