티스토리 뷰

반응형

✅ GraphQL과 REST의 차이점과 장단점 비교

최근 프론트엔드 개발에서는 REST API를 넘어 GraphQL이 주목받고 있습니다.
면접에서도 “REST와 GraphQL의 차이점은 무엇인가요?”, “언제 어떤 것을 선택해야 하나요?”와 같은 질문이 자주 등장합니다.
이번 글에서는 두 방식의 구조적 차이, 장단점, 그리고 실무 적용 기준까지 정리합니다.


📌 1. 기본 개념

✅ REST API란?

  • 자원을 URL로 표현하고, **HTTP 메서드(GET, POST, PUT, DELETE)**를 통해 조작
  • 각각의 endpoint는 고정된 응답 구조를 가짐

✅ GraphQL이란?

  • 클라이언트가 필요한 데이터만 쿼리로 요청하는 데이터 질의 언어
  • 하나의 endpoint(/graphql)에서 다양한 형태의 요청을 처리

📌 2. 요청 및 응답 방식 비교

항목 REST API GraphQL

Endpoint 수 여러 개 (/users, /posts) 하나 (/graphql)
응답 구조 고정 클라이언트가 지정
데이터 초과/부족 Overfetch / Underfetch 발생 요청한 만큼만 수신
버전 관리 URI 버전 (v1, v2 등) 불필요, 타입 스키마 기반
전송 형식 주로 JSON JSON

✅ 예시: 사용자 이름과 게시글 제목 조회

🔹 REST 방식

GET /users/1
GET /users/1/posts
  • 두 번의 요청 필요
  • 응답에 불필요한 필드 포함될 수 있음

🔹 GraphQL 방식

반응형
query {
  user(id: 1) {
    name
    posts {
      title
    }
  }
}
  • 한 번의 요청으로 필요한 필드만 조회

📌 3. REST와 GraphQL의 장단점

✅ REST의 장점

항목 설명

단순한 구조 HTTP 메서드 기반으로 직관적
캐싱이 쉬움 각 요청은 URI로 구분되어 브라우저 캐시 활용 가능
학습 난이도 낮음 도구 없이 쉽게 테스트 가능 (Postman 등)

❌ REST의 단점

  • Overfetch / Underfetch 문제 발생
  • 리소스 간 관계 조회가 불편
  • endpoint가 많아지고 관리가 어려움

✅ GraphQL의 장점

항목 설명

필요한 데이터만 요청 가능 네트워크 비용 절감
단일 endpoint 유지보수 간편
스키마 기반 개발 자동 문서화, 타입 안정성
빠른 개발 속도 클라이언트 주도 개발 가능 (frontend-first)

❌ GraphQL의 단점

  • 복잡한 캐싱 (endpoint가 하나이기 때문에 HTTP 캐싱 불리)
  • N+1 문제 발생 가능 (연관된 데이터 반복 조회)
  • 학습 곡선이 존재 (스키마 설계, Resolver 구성 등)

📌 4. 실무에서 겪은 사례

🧪 문제

모바일 앱에서 사용자와 사용자의 주문 정보를 함께 요청하려면
REST 기준으로 /user와 /orders를 두 번 요청해야 하며,
불필요한 데이터도 함께 내려와 성능 저하

✅ 해결

GraphQL 도입 후 다음과 같이 쿼리 작성:

query {
  user(id: 1) {
    name
    orders {
      id
      status
    }
  }
}
  • API 호출 1회로 모든 데이터 처리
  • 네트워크 비용 20% 절감, 로딩 속도 향상

📌 5. 선택 기준: 언제 REST? 언제 GraphQL?

조건 추천 방식

단순한 CRUD API REST
SEO 중요 (정적 응답 필요) REST
다양한 데이터 조합 필요 GraphQL
프론트가 다양한 플랫폼에서 사용됨 GraphQL
빠른 프로토타입 개발 필요 GraphQL

📌 6. REST ↔ GraphQL 공존도 가능

  • 백엔드는 REST 유지, 프론트는 GraphQL Gateway(API Gateway) 도입
  • 기존 시스템에 부담 없이 도입할 수 있음

📌 면접에서 이렇게 답하세요

REST는 직관적이고 단순한 구조의 API 설계에 적합하며, 브라우저 캐싱이나 SEO에 유리합니다.
반면 GraphQL은 클라이언트가 필요한 데이터만 요청할 수 있어 네트워크 효율성유연성이 뛰어나며,
복잡한 데이터 조합이 필요한 프로젝트에 유리합니다.
실무에서는 REST와 GraphQL을 병행하며, 각 목적에 맞게 선택하여 API 구조를 설계합니다.



GraphQL,RESTAPI,API설계,데이터요청,프론트엔드면접,GraphQL장단점,RESTvsGraphQL,스키마기반API,Overfetch,프론트백엔드연동

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함
반응형