데이터 엔지니어링

데이터 생성

codingreewon 2025. 9. 15. 20:48

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