누가 API를 소비하고 그들의 데이터 요구가 얼마나 다양한지를 기준으로 선택하세요 — 유행이 아니라. 다양한 클라이언트가 각자 데이터를 형태 잡아야 할 때는 GraphQL이 이기고; 요청이 균일하고 캐시 가능하며 단순할 때는 REST가 이깁니다.
누가 API를 소비하고 그들의 데이터 요구가 얼마나 다양한지를 기준으로 선택하세요 — 유행이 아니라. 다양한 클라이언트가 각자 데이터를 형태 잡아야 할 때는 GraphQL이 이기고; 요청이 균일하고 캐시 가능하며 단순할 때는 REST가 이깁니다.
user -> posts -> comments)를 순회합니다.GET 모델은 모든 계층에서 손쉽게 캐시됩니다; GraphQL은 근접하려면 persisted query가 필요합니다.| 고려 사항 | GraphQL | REST |
|---|---|---|
| Over/under-fetching | 설계상 해결됨 | 흔한 문제 |
| HTTP/CDN 캐싱 | 어려움(작업 필요) | 기본 제공, 쉬움 |
| Query-cost/DoS 제어 | 직접 추가해야 함 | 본질적으로 제한됨 |
| 클라이언트 유연성 | 높음 | 낮음 |
| 서버 복잡성 | 더 높음 | 더 낮음 |
이 둘은 배타적이지도 않습니다 — 많은 시스템이 공개/캐시 가능한 endpoint에는 REST를, 풍부한 내부 클라이언트에는 GraphQL을 노출합니다.
senior 면접관은 충성심이 아니라 판단력을 시험합니다. 강한 답은 축들 — 클라이언트 다양성, 캐싱 요구, 팀 성숙도, DoS 표면 — 을 짚고, GraphQL을 보편적으로 더 낫다고 파는 대신 그 실제 비용(캐싱과 query-cost 제어)을 인정합니다.
주니어부터 시니어까지 상세한 답변이 포함된 IT 면접 질문 라이브러리.
후원하기