다음을 통해 공유


JavaScript 개발자를 위한 Azure의 GraphQL

GraphQL은 JavaScript 애플리케이션이 단일 요청으로 필요한 데이터를 정확하게 검색할 수 있도록 도와줍니다. 이 문서에서는 GraphQL이 무엇인지, 왜 사용할 수 있는지, Azure 서비스를 통해 최소한의 노력으로 GraphQL 애플리케이션을 빌드하는 방법을 설명합니다. 기존 GraphQL 애플리케이션을 마이그레이션하든 새 애플리케이션을 빌드하든 관계없이 Azure는 프로세스를 간소화하는 도구와 서비스를 제공합니다.

GraphQL이란 무엇인가요?

GraphQL은 웹 애플리케이션이 서버 및 데이터베이스와 통신하는 현대적인 방법입니다. 필요한 정보를 정확히 요청하는 더 스마트한 방법이라고 생각하면 됩니다.

  • 그것은 마치 고정된 메뉴를 받아들이는 대신 맞춤 식사를 주문하는 것과 같습니다 - 당신은 당신이 원하는 것을 정확히 요구합니다
  • React, Vue 또는 Angular와 같은 JavaScript 애플리케이션과 잘 작동합니다
  • 웹 앱을 더 빠르고 쉽게 구축할 수 있습니다

GraphQL을 사용하면 대부분의 웹 서비스가 통신하는 표준 방식인 기존 REST API와 같이 서로 다른 서버 엔드포인트에 여러 요청을 하는 대신 필요한 모든 데이터를 가져오기 위해 하나의 정확한 요청을 할 수 있습니다.

내 웹 앱에서 GraphQL을 사용해야 하는 이유는 무엇인가요?

GraphQL은 다음과 같은 세 가지 주요 방법으로 JavaScript 애플리케이션을 개선합니다.

  • 필요한 것을 정확히 얻기: 앱은 그 이상도 그 이하도 아닌 지금 당장 필요한 데이터만 요청할 수 있습니다. 이것은 마치 뷔페에 가서 대부분이 낭비되는 거대한 고정 식사를 제공하는 대신 먹을 것만 가져가는 것과 같습니다. 이렇게 하면 더 적은 데이터를 다운로드하기 때문에 앱이 더 빨라집니다.

  • 많은 요청이 아닌 하나의 요청: 여러 곳에서 정보가 필요하십니까? GraphQL을 사용하면 5개의 서로 다른 엔드포인트에 5개의 서로 다른 요청을 하는 대신 한 번의 요청으로 모든 것을 얻을 수 있습니다. 이것은 마치 5개의 다른 상점을 방문하는 대신 한 사람이 모든 쇼핑을 모으는 것과 같습니다.

  • 더 나은 도구로 실수 감소: GraphQL에는 앱이 실행 중일 때가 아니라 코딩하는 동안 오류를 포착하는 데 도움이 되는 도구가 함께 제공됩니다. 문서를 게시한 후 오타를 발견하는 것이 아니라 입력하는 동안 작동하는 맞춤법 검사를 사용하는 것과 같습니다.

GraphQL 및 JavaScript를 사용하여 빌드할 때 다음과 같은 인기 있는 도구 중 하나를 사용할 수 있습니다.

  • Apollo Client: React, Vue, Angular 및 일반 JavaScript와 함께 작동하는 가장 널리 사용되는 GraphQL 클라이언트입니다.
  • URQL: 성능이 좋은 경량 대안입니다.
  • Relay: Facebook(GraphQL도 만든 사람)에서 만든 것으로 대규모 React 애플리케이션에 가장 적합합니다.

GraphQL 애플리케이션용 Azure 서비스

특정 시나리오에 따라 접근 방식을 선택합니다.

하고 싶다면... 그렇다면 당신은... 이러한 Azure 서비스 사용
기존 GraphQL 앱을 Azure로 가져오기 코드 변경 없이 응용 프로그램 배포Deploy your application without change your code Azure App Service 또는 Azure Container Apps
기존 데이터에 GraphQL 추가 최소한의 코딩으로 데이터에 대한 GraphQL 엔드포인트 생성 데이터 API 작성기
GraphQL API 계층 구축 기존 API를 통해 통합 GraphQL 인터페이스 생성 GraphQL 변환을 사용한 Azure API Management

Azure에서 GraphQL 애플리케이션 호스트

빌드하는 응용 프로그램의 유형에 따라 몇 가지 좋은 옵션이 있습니다.

  • 앱 서비스: 기존 웹 호스팅 서비스와 비슷하지만 추가 기능이 있습니다. 서버가 필요한 대부분의 JavaScript 응용 프로그램에 적합합니다.

  • 컨테이너 앱: 애플리케이션이 컨테이너(예: Docker)에 패키지된 경우 이 서비스를 사용하면 쉽게 실행하고 확장할 수 있습니다.

GraphQL 애플리케이션용 데이터 스토리지

GraphQL은 데이터에 연결해야 합니다. Azure는 이 작업을 수행하는 몇 가지 방법을 제공합니다.

  • 데이터베이스를 GraphQL API로 전환: "Data API builder" 도구는 코딩이 필요 없이 기존 데이터베이스에서 GraphQL 엔드포인트(앱이 GraphQL 요청을 보낼 수 있는 URL)를 자동으로 생성할 수 있습니다!

  • 데이터 저장: Azure는 다양한 요구 사항에 맞는 데이터베이스를 제공합니다.

    • SQL Database: 기존 테이블 기반 데이터용
    • Cosmos DB: 경직된 스키마가 없는 유연하고 확장 가능한 데이터 스토리지

GraphQL 애플리케이션 보안

  • 사용자 로그인 및 보안: Azure의 ID 플랫폼을 사용하면 적합한 사용자만 GraphQL 데이터에 액세스할 수 있도록 애플리케이션에 로그인 기능을 추가할 수 있습니다.
  • 역할 기반 액세스: GraphQL 엔드포인트를 통해 어떤 사용자가 어떤 데이터를 쿼리하거나 수정할 수 있는지 정확하게 제어합니다.
  • API 보호: GraphQL API의 남용을 방지하기 위해 속도 제한 및 모니터링을 추가합니다.

기존 데이터에 대한 GraphQL API 만들기

Azure에 이미 데이터가 있고 GraphQL을 사용하여 액세스하고 싶으신가요? 이 작업을 수행하는 간단한 방법이 있습니다.

  • API Management: 이 서비스는 기존 API 또는 데이터 원본 앞에 GraphQL 계층을 만들 수 있습니다. GraphQL을 기본적으로 사용하지 않는 시스템에 GraphQL 변환기를 추가하는 것과 같습니다.

  • Data API Builder: 이 도구는 데이터베이스에서 GraphQL 엔드포인트를 자동으로 생성합니다. 기존 데이터에 GraphQL을 추가하는 가장 빠른 방법이며, 데이터베이스를 가리키기만 하면 자동으로 작동합니다.

간단한 예제: 제품 데이터베이스에 대한 GraphQL API 작성

이 과정이 어떻게 진행되는지는 다음과 같습니다.

  1. 제품 정보(이름, 가격, 설명)가 포함된 데이터베이스가 있습니다.
  2. 데이터베이스에 연결하도록 Data API Builder를 설정합니다.
  3. Data API Builder는 GraphQL 엔드포인트를 자동으로 생성합니다.
  4. 이제 JavaScript 애플리케이션에서 GraphQL 쿼리를 다음과 같이 만들 수 있습니다.
{
  products(where: { price_lt: 50 }) {
    name
    price
    description
  }
}

이 쿼리는 $50 미만의 모든 제품을 가져와 이름, 가격 및 설명만 표시합니다.

시작하는 데 도움이 되는 리소스

Azure에서 GraphQL을 사용하여 자세히 알아보거나 빌드를 시작하려는 경우 다음과 같은 몇 가지 유용한 리소스가 있습니다.

다음 단계