REST vs GraphQL: 무엇을 언제 선택할까
데브노트 편집팀·2026.07.10·6분 읽기
ADVERTISEMENT
"요즘 GraphQL이 좋다던데 무조건 써야 하나?" 아닙니다. 둘은 해결하는 문제가 다릅니다.
REST의 한계: 오버페칭·언더페칭
REST는 엔드포인트마다 정해진 데이터를 줍니다. 그래서 화면이 필요로 하는 양과 어긋납니다.
- 오버페칭: 이름만 필요한데 사용자 전체 객체가 옴
- 언더페칭: 화면 하나에
/user,/posts,/comments여러 번 호출
GET /users/1 -> 필요 없는 필드까지 전부
GET /users/1/posts -> 추가 요청
GET /users/1/comments -> 또 추가 요청 (N+1 요청)
GraphQL: 필요한 것만 한 번에
클라이언트가 원하는 필드를 명시해 한 번의 요청으로 받습니다.
query {
user(id: 1) {
name
posts { title }
comments { text }
}
}
딱 필요한 데이터만, 한 번의 라운드트립으로 받습니다. 모바일처럼 네트워크가 중요한 환경에서 강점입니다.
트레이드오프 비교
| 항목 | REST | GraphQL |
|---|---|---|
| 데이터 양 조절 | 고정 | 클라이언트가 선택 |
| 요청 횟수 | 여러 번 | 한 번 |
| HTTP 캐싱 | 쉬움(URL 기반) | 어려움(POST 단일 엔드포인트) |
| 러닝커브 | 낮음 | 높음(스키마·리졸버) |
| 파일 업로드·단순 CRUD | 편함 | 번거로움 |
선택 기준
- REST가 낫다: 단순 CRUD, 공개 API, 강한 HTTP 캐싱이 필요할 때
- GraphQL이 낫다: 화면마다 데이터 모양이 제각각, 여러 소스를 합쳐야 할 때, 모바일·복잡한 UI
마무리 체크리스트
- 문제는 '유행'이 아니라 오버/언더페칭이 실제로 아픈가
- 캐싱이 중요하면 REST의 URL 캐싱이 강력
- 복잡한 관계형 데이터·다양한 클라이언트면 GraphQL
- 둘을 혼용(핵심은 GraphQL, 파일·결제는 REST)해도 좋다
도구가 아니라 문제에 맞춰 고르세요.
ADVERTISEMENT
함께 보면 좋은 글
백엔드·인프라· 7분
JWT 인증 제대로 이해하기: 세션과 무엇이 다른가
JWT가 무엇이고 왜 쓰는지, 액세스/리프레시 토큰 전략과 저장 위치, 보안 함정까지. 인증 설계의 기본기를 한 번에 정리합니다.
2026.07.09
백엔드·인프라· 7분
REST API 설계 원칙: 실무에서 욕먹지 않는 7가지 규칙
URL에 동사를 넣고, 200으로 에러를 내보내는 잘못된 API는 이제 그만. 리소스 명명, HTTP 메서드, 상태 코드, 버저닝까지 실무 표준에 맞춰 REST API를 설계하는 법을 정리했습니다.
2026.06.25
백엔드·인프라· 7분
CORS 에러, 도대체 왜 나는 걸까: 원리와 해결
브라우저의 동일 출처 정책, preflight(OPTIONS) 요청, Access-Control-Allow-* 헤더의 역할을 이해하면 CORS 에러는 더 이상 미스터리가 아닙니다.
2026.06.12