GraphQL vs REST
REST API와 GraphQL의 차이점을 실제 요청/응답 비교로 학습합니다
시나리오 선택
REST API
REST 요청을 실행해보세요
GraphQL
GraphQL 요청을 실행해보세요
Over-fetching & Under-fetching
Over-fetching (REST)
필요하지 않은 데이터까지 모두 받아오는 문제
GET /users/1 → 모든 사용자 정보 (이름만 필요한데...)Under-fetching (REST)
필요한 데이터를 얻기 위해 여러 번 요청해야 하는 문제
GET /posts/1 → GET /users/1 → GET /commentsGraphQL 해결책
필요한 데이터만 정확히 요청하여 단일 쿼리로 해결
장단점 비교
REST
✅ 간단하고 직관적
✅ 캐싱이 쉬움
✅ 파일 업/다운로드 용이
❌ Over/Under-fetching
❌ 버전 관리 복잡
GraphQL
✅ 정확한 데이터 요청
✅ 단일 엔드포인트
✅ 강력한 타입 시스템
❌ 학습 곡선이 가파름
❌ 캐싱이 복잡함
GraphQL 스키마 예제
type User {
id: ID!
name: String!
email: String!
posts: [Post!]!
followers: [User!]!
}
type Post {
id: ID!
title: String!
content: String!
author: User!
comments: [Comment!]!
}
type Query {
user(id: ID!): User
post(id: ID!): Post
users: [User!]!
}
type Mutation {
createPost(title: String!, content: String!): Post!
updateUser(id: ID!, name: String, email: String): User!
}언제 무엇을 사용할까?
REST가 적합한 경우
- • 간단한 CRUD 작업
- • 파일 업로드/다운로드
- • 캐싱이 중요한 경우
- • 팀의 GraphQL 경험이 없는 경우
- • 공개 API (더 보편적)
GraphQL이 적합한 경우
- • 복잡한 데이터 관계
- • 모바일 앱 (데이터 최적화 중요)
- • 마이크로서비스 아키텍처
- • 빠른 프로토타이핑
- • 실시간 업데이트 (Subscriptions)
🧑💻
1nnovator 김민성
JavaScript 학습 센터 개발자
🌟 이 프로젝트가 도움이 되셨다면 블로그에서 더 많은 개발 이야기를 확인해보세요!
🤖이 페이지는 생성형 AI의 도움을 받아 제작되었습니다.