[GraphQL] #1 GraphQL이란? REST api와 비교했을 때 어떤 장점이 있을까

김까치·2023년 4월 13일
0

GraphQL

목록 보기
1/5

GraphQL api와 REST api의 차이점

GraphQL과 REST는 모두 API를 만들기 위한 다른 방법론입니다. GraphQL은 페이스북에서 만들어진 쿼리 언어로, 클라이언트 애플리케이션이 필요로 하는 데이터를 정확하게 요청하고 수신하는 데 중점을 둡니다. 반면에 REST는 Representational State Transfer의 약자로, 자원을 URL로 식별하고 HTTP 요청 방식을 사용하여 해당 자원에 대한 조작을 표현하는 아키텍처 스타일입니다.

GraphQL과 REST API의 가장 큰 차이점은 데이터를 요청하는 방식입니다. REST API는 클라이언트에서 필요한 데이터를 얻기 위해 여러번의 API 호출을 해야 할 수 있습니다. 이는 overfetching과 underfetching을 초래할 수 있습니다. overfetching은 클라이언트가 필요로 하지 않는 정보를 받는 것을 의미하며, underfetching은 클라이언트가 원하는 모든 데이터를 가져오기 위해 여러 번의 API 요청이 필요한 것을 의미합니다.

반면, GraphQL API는 클라이언트에서 필요한 데이터를 직접 쿼리하여 요청할 수 있으므로, overfetching과 underfetching을 줄일 수 있습니다. GraphQL API는 단일 엔드포인트를 사용하므로 여러 번의 요청이 필요하지 않습니다. 이는 애플리케이션의 성능을 향상시키고, 대역폭을 줄이며, 개발자와 클라이언트 사이의 협력을 강화합니다.

GraphQL과 REST API 모두 장단점이 있으며, 선택은 개발자의 필요에 따라 다릅니다. 그러나 GraphQL은 매우 유연하며, 클라이언트에서 필요한 데이터를 직접 요청할 수 있으므로, 애플리케이션의 성능과 확장성을 향상시키는 데 도움이 됩니다.


GraphQL API의 장점

1. 유연한 데이터 요청

GraphQL을 사용하면 클라이언트는 필요한 데이터만 요청할 수 있습니다. REST API에서는 일반적으로 하나의 엔드포인트에서 모든 데이터를 요청해야합니다. 이러한 방식은 대규모 애플리케이션에서 성능 저하의 원인이 될 수 있습니다. 반면에 GraphQL을 사용하면 필요한 데이터만 요청하므로 애플리케이션의 성능이 향상됩니다.

2. 여러 데이터 소스 지원

GraphQL은 여러 데이터 소스를 지원하므로 데이터베이스, 캐시, 검색 엔진 등 다양한 데이터 소스에서 데이터를 가져올 수 있습니다. 이는 애플리케이션의 데이터 처리를 간단하게 만들어줍니다.

3. 강력한 타입 시스템

GraphQL은 강력한 타입 시스템을 가지고 있습니다. 이를 통해 개발자는 클라이언트에서 어떤 데이터를 요청할 수 있는지 미리 알 수 있으므로 애플리케이션의 유지 보수가 훨씬 쉬워집니다.

4. API 버전 관리가 쉬움

GraphQL은 쿼리에서 필요한 필드만 요청하므로 API의 버전을 관리하는 데 유리합니다. 새로운 필드를 추가하거나 기존 필드를 변경할 때 기존 클라이언트 코드에 영향을 미치지 않도록 할 수 있습니다.

5. 개발 생산성 향상

GraphQL은 다양한 개발 도구와 함께 작동하며, 개발 생산성을 향상시킵니다. 예를 들어, GraphQL Playground와 같은 도구를 사용하면 쿼리 및 스키마를 쉽게 테스트할 수 있습니다.

6. 안정성과 보안

GraphQL은 요청 및 응답의 구조가 일관성 있으므로 개발자는 의도하지 않은 결과를 예방할 수 있습니다. 또한, GraphQL에서는 모든 데이터에 대한 권한 검사를 수행하므로 보안성도 향상됩니다.

이러한 이유로 GraphQL은 많은 기업들이 API를 개발하는 데 사용하는 인기있는 기술 중 하나입니다.

profile
개발자 연습생

0개의 댓글