M365Con 2027 – 무료 온라인 컨퍼런스 · 11–22 Jan 2027 · 120 sessions→ m365con.net

블로그 · Mirko Peters

Microsoft Graph Delta Queries 완벽 가이드

By ·

Microsoft Graph Delta Queries는 Microsoft 365 애플리케이션에서 데이터를 동기화하는 방식을 크게 바꿔 놓습니다. 전체 데이터 세트를 다시 내려받는 대신 변경 사항만 효율적으로 추적하고, 마지막 업데이트 이후 바뀐 내용만 요청할 수 있습니다…

Automatically translated with AI from the original post. Read the English original

Microsoft Graph Delta Queries는 Microsoft 365 애플리케이션에서 데이터를 동기화하는 방식을 크게 바꿔 놓습니다. 전체 데이터 세트를 다시 내려받는 대신 변경 사항만 효율적으로 추적하고, 마지막 업데이트 이후 바뀐 내용만 요청할 수 있습니다. 이 방식은 네트워크 트래픽을 줄일 뿐만 아니라 애플리케이션 성능도 높여 줍니다. 개발자와 IT 전문가는 API 사용량이 줄어들고 사용자 경험이 개선되는 효과를 얻을 수 있습니다. Delta Queries를 활용하면 시스템에 부담을 주지 않으면서도 애플리케이션을 빠르게 반응하고 최신 상태로 유지할 수 있습니다.

핵심 요약

  • Microsoft Graph Delta Queries를 사용하면 모든 데이터를 다시 내려받지 않고도 데이터 변경 사항을 추적할 수 있습니다.
  • Delta Queries를 사용하면 네트워크 트래픽이 줄어들어 애플리케이션의 속도와 효율을 높일 수 있습니다.
  • Delta Queries는 API 사용량을 낮춰 비용을 절감하고 성능을 개선하는 데 도움이 됩니다.
  • 애플리케이션이 사용자에게 더 빠르게 업데이트를 제공하여 사용자 경험을 높일 수 있습니다.
  • Delta Queries를 구현하면 증분 업데이트가 가능해져 변경된 부분만 새로 고칠 수 있습니다.
  • Delta Queries를 사용하려면 Azure Active Directory에서 앱을 만들고 권한을 부여하십시오.
  • 변경 사항을 효율적으로 계속 추적하려면 첫 번째 요청 후 deltaLink를 반드시 저장하십시오.
  • 실시간 업데이트와 더 나은 성능을 원한다면 Delta Queries를 웹후크와 함께 사용하십시오.

Delta Queries 개요

Microsoft Graph Delta Queries의 주요 기능

Microsoft Graph Delta Queries는 전체 데이터 세트를 조회하지 않고도 리소스의 변경 사항을 조회할 수 있게 해 주는 강력한 메커니즘입니다. 이 기능은 추가, 삭제, 업데이트와 같은 변경 사항을 효율적으로 추적하는 데 특히 유용합니다. Delta Queries를 사용하면 데이터 동기화 프로세스를 간소화하고 애플리케이션 성능을 높일 수 있습니다.

동기화에 Microsoft Graph Delta Queries를 사용하면 다음과 같은 이점이 있습니다.

  • 효율성: Delta Queries를 사용하면 마지막 요청 이후의 변경 사항만 가져올 수 있습니다. 이 방식은 네트워크로 전송되는 데이터양을 크게 줄여 주므로, 자주 업데이트해야 하는 애플리케이션에 특히 유용합니다.

  • API 사용량 감소: 가져와야 하는 데이터를 최소화하면 API 사용량이 낮아집니다. 이는 비용 절감과 성능 향상으로 이어지며, 애플리케이션은 관련 있는 변경 사항만 처리하는 데 집중할 수 있습니다.

  • 사용자 경험 개선: Delta Queries를 사용하면 애플리케이션이 계속 빠르게 반응할 수 있습니다. 사용자는 업데이트를 더 빨리 받게 되어 전반적인 사용자 경험이 좋아집니다. 이는 Microsoft Teams 같은 협업 도구나 SharePoint 같은 문서 관리 시스템처럼 실시간 데이터가 중요한 환경에서 특히 중요합니다.

  • 증분 업데이트: Delta Queries를 사용하면 증분 업데이트를 구현할 수 있습니다. 전체 데이터 세트를 다시 불러오는 대신 변경된 부분만 효율적으로 업데이트할 수 있습니다. 이 기능은 시스템에 부담을 주지 않으면서 데이터를 최신 상태로 유지하는 데 필수적입니다.

엔터프라이즈 환경에서는 변경 사항에 대한 즉각적인 알림이 필요하지 않은 경우에 Delta Queries가 특히 유용합니다. 새로 추가되었거나 업데이트된 객체만 효율적으로 조회할 수 있기 때문입니다. 예를 들어 SharePoint Online의 Teams처럼 엔터티 목록을 표시해야 한다면, Delta Queries를 사용해 불필요한 부담 없이 필요한 메타데이터를 가져올 수 있습니다.

또한 델타 쿼리는 애플리케이션이 마지막 확인 이후의 변경 사항만 조회할 수 있도록 해 주므로, 기존의 폴링 방식보다 효율적입니다. 변경 이벤트를 즉시 전달하는 웹후크 알림과 함께 사용하면 대규모 전체 스캔 없이도 최신 상태의 시맨틱 캐시를 유지할 수 있습니다.

Microsoft Graph 델타 쿼리 설정

Setting Up Microsoft Graph Delta Queries

초기 요청 및 동기화

Microsoft Graph 델타 쿼리를 사용하기 전에 몇 가지 사전 요구 사항을 충족해야 합니다. 다음 항목을 준비하십시오.

  1. 앱 만들기: 이 앱은 애플리케이션이 Microsoft Graph를 호출할 때 사용하는 인터페이스 역할을 합니다.
  2. 앱 승인: 동기화하려는 데이터에 접근하는 데 필요한 권한을 앱이 갖추고 있는지 확인하십시오.
  3. Azure에서 앱 확인: 앱이 Azure Active Directory에 올바르게 등록되고 구성되었는지 확인하십시오.
  4. 흐름 계획: 데이터 동기화 프로세스를 어떻게 처리할지 결정하십시오.
  5. 스토리지 구성: 가져온 변경 사항을 추적할 수 있도록 스토리지 솔루션을 설정하십시오.

이러한 사전 요구 사항을 갖추었다면 델타 쿼리의 초기 요청을 진행할 수 있습니다. 먼저 Azure Active Directory에 애플리케이션을 등록합니다. 등록이 끝나면 샘플 애플리케이션이 올바르게 구성되도록 appsettings.json 파일에 클라이언트 ID를 입력하십시오.

초기 동기화는 사용자 계정이나 그룹과 같은 특정 스키마 유형에 대해 쿼리를 실행하는 것으로 시작합니다. 이 쿼리는 해당 스키마 유형의 전체 목록과 함께, 쿼리 시점의 데이터 상태를 나타내는 상태 토큰을 반환합니다. 이후 쿼리는 이 상태 토큰을 사용하여 마지막 요청 이후 변경된 객체만 반환합니다. 이 방식을 사용하면 증분 동기화를 효율적으로 수행할 수 있으며, 애플리케이션은 필요한 업데이트만 처리하게 됩니다.

Microsoft Graph 델타 쿼리를 설정할 때는 인증과 권한도 함께 고려해야 합니다. 다음은 반드시 살펴봐야 할 주요 보안 고려 사항입니다.

주제HTTP 오류 코드권장 사항
사용자에게 액세스 권한이 없음403권한이 없는 사용자에게는 일반적인 "액세스 거부" 오류를 표시하십시오.
찾을 수 없음404존재하지 않거나 삭제되었을 수 있는 리소스를 고려하여 처리하십시오.
조절(Throttling)429조절 응답을 항상 처리하고 백오프 전략을 구현하십시오.

이러한 단계와 권장 사항을 따르면 Microsoft Graph 델타 쿼리를 효과적으로 설정할 수 있습니다. 이렇게 구성하면 애플리케이션이 데이터를 효율적으로 동기화하여 성능과 사용자 경험을 높일 수 있습니다.

그룹 델타 변경 사항을 위한 델타 쿼리 실행

Microsoft Graph에서 변경 사항 추적

그룹 델타 변경 사항을 효과적으로 추적하려면 후속 요청을 실행하는 구조화된 절차를 따라야 합니다. 먼저 다음 엔드포인트를 사용하여 그룹 멤버 자격 변경에 대한 델타 쿼리를 시작하십시오.

https://graph.microsoft.com/v1.0/groups/delta?$select=members

Invoke-MgGraphRequest 메서드를 사용하면 이 요청을 실행하고 결과를 가져올 수 있습니다. 이 메서드를 사용하면 Microsoft Graph API와 원활하게 상호 작용할 수 있습니다.

초기 요청에 대한 응답에는 중요한 링크 두 개인 @odata.nextLink와 @odata.deltaLink가 포함될 수 있습니다. 이 링크들은 다음과 같이 처리하십시오.

  • @odata.nextLink는 데이터의 다음 페이지가 더 있음을 나타냅니다. 모든 항목을 가져오려면 이 링크를 계속 따라가야 합니다.
  • @odata.deltaLink는 마지막 페이지의 데이터를 받은 후에 저장해야 합니다. 이 링크를 사용하면 다음 동기화가 이전 동기화가 끝난 지점부터 시작됩니다. 그룹 전체를 다시 동기화하는 일을 피하려면 deltaLink를 영구적인 저장소에 보관하는 것이 중요하며, 이것이 바로 델타 쿼리를 사용하는 핵심 목적입니다.

이후 요청에서는 이전 응답의 @odata.deltaLink를 사용하여 변경 사항 추적을 이어가십시오. 이 방식을 사용하면 마지막 동기화 이후의 변경 사항만 가져오므로 데이터 조회 과정이 최적화됩니다.

응답을 처리할 때 여러 가지 형식을 마주칠 수 있습니다. 일반적인 응답 형식은 다음과 같습니다.

  • 사용자 컬렉션 객체와 함께 반환되는 200 OK 응답 코드입니다.
  • 데이터의 추가 페이지가 있음을 나타내는 @odata.nextLink URL이 존재하는 경우입니다.
  • 사용 가능한 데이터가 모두 반환되었음을 나타내는 @odata.deltaLink URL입니다.

델타 쿼리로 반환되는 변경 사항의 양을 효율적으로 관리하려면 다음 모범 사례를 고려하십시오.

  1. 서비스 중단을 방지하려면 적절한 속도 제한 및 스로틀링 메커니즘을 구현하십시오.
  2. 429 오류가 발생한 후 요청을 재시도할 때는 지수 백오프(exponential backoff)를 사용하십시오.
  3. 배치 요청을 사용해 여러 작업을 단일 요청으로 묶으면 API 호출 횟수를 줄일 수 있습니다.
  4. 요청을 관리하고 허용된 한도 내에 머물도록 큐 시스템을 구축하십시오.
  5. 자주 액세스하는 데이터를 캐시하여 API 호출을 줄이고 응답성을 높이십시오.
  6. $select 및 $filter와 같은 쿼리 매개 변수를 최적화하여 페이로드 크기를 최소화하십시오.

이러한 전략을 따르면 애플리케이션이 그룹 델타 변경 사항을 효율적으로 처리하고 최적의 성능을 유지할 수 있습니다.

델타 쿼리에서 자주 발생하는 문제

Microsoft Graph 델타 쿼리를 사용할 때 애플리케이션의 성능과 안정성에 영향을 줄 수 있는 여러 문제에 직면할 수 있습니다. 이러한 문제를 이해하면 효과적인 해결책을 구현하는 데 도움이 됩니다.

흔히 발생하는 문제 중 하나는 델타 토큰의 제한된 유효 기간입니다. 토큰이 만료되면 동기화가 복잡해집니다. 애플리케이션이 제때 토큰을 갱신하지 않으면 중요한 변경 사항을 놓칠 수 있습니다. 또한 SharePoint의 사용자 기술과 같이 기본 데이터 저장소 외부에 저장된 속성의 변경 사항은 델타 쿼리로 추적되지 않습니다. 이 제약으로 인해 데이터 동기화가 불완전해질 수 있습니다.

또 다른 문제는 처리 지연입니다. 변경이 발생한 시점과 델타 쿼리 응답에 나타나는 시점 사이에 지연이 있을 수 있습니다. 이 지연으로 애플리케이션이 오래된 정보를 기준으로 동작할 수 있으며, 이는 사용자를 혼란스럽게 할 수 있습니다. 더불어 애플리케이션은 변경 사항이 다시 전달되는(replay) 경우도 처리해야 합니다. 동일한 변경 사항이 여러 응답에 나타나 불필요한 처리가 발생할 수 있습니다.

이러한 문제를 해결하기 위해 다음 모범 사례를 고려하십시오.

  1. 재시도 로직 구현: 애플리케이션에 항상 재시도 로직을 포함하십시오. 이 방식은 429 Too Many Requests 응답을 효과적으로 관리하는 데 도움이 됩니다. API에 과부하를 주지 않도록 지수 백오프를 사용하십시오.

  2. 오류 로깅: 오류를 추적할 수 있도록 로깅 시스템을 설정하십시오. 이렇게 하면 패턴을 파악하고 반복되는 문제를 신속하게 해결할 수 있습니다.

  3. Graph Explorer에서 테스트: 애플리케이션을 배포하기 전에 Graph Explorer에서 API 호출을 테스트하십시오. 이 단계를 거치면 요청이 예상대로 작동하는지 확인할 수 있습니다.

  4. 오류 처리 표준화: 오류 메시지 형식을 일관되게 유지하십시오. 일관성이 있으면 사용자가 무엇이 잘못되었고 어떻게 해결하는지 쉽게 이해할 수 있습니다.

  5. 델타 링크 활용: Microsoft Graph가 반환한 deltaLink를 사용하여 마지막 동기화 이후의 변경 사항만 요청하십시오. 이 방법은 데이터 전송량을 줄이고 성능을 향상시킵니다.

  6. 웹후크와 델타 쿼리 결합: 최적의 성능을 위해 웹후크를 사용하여 변경 알림을 신속하게 받으십시오. 알림을 받은 후에는 델타 쿼리를 사용하여 정확한 변경 사항을 가져오십시오. 이 조합을 사용하면 과도한 API 호출 없이 애플리케이션을 최신 상태로 유지할 수 있습니다.

델타 쿼리를 사용할 때 직면할 수 있는 일부 제한 사항은 다음과 같습니다.

제한 사항 설명세부 정보
$select 쿼리 매개 변수반환되는 데이터를 제어하려면 초기 요청에 반드시 포함해야 합니다. $select에 지정된 속성만 변경 사항으로 추적됩니다.
상태 토큰초기 요청에는 상태 토큰이 포함되지 않습니다. 상태 토큰은 후속 요청에서 사용됩니다.
요청 수정후속 요청은 수정할 수 없습니다.

이러한 문제를 인식하고 제안된 해결책을 구현하면 Microsoft Graph 델타 쿼리를 최적으로 활용할 수 있습니다. 이러한 사전 대응 방식은 애플리케이션의 성능을 높이고 사용자가 적시에 업데이트를 받을 수 있도록 보장합니다.


Microsoft Graph Delta Queries는 최신 애플리케이션 개발에서 중요한 역할을 합니다. 전체 데이터 세트를 반복해서 가져올 필요 없이 데이터 변경 사항을 효율적으로 추적할 수 있습니다. 이 기능은 애플리케이션 성능을 높이고 리소스 사용량을 줄여 줍니다. Delta Queries에서 제공하는 실시간 업데이트는 디지털 transformation 이니셔티브에 필수적입니다.

더 자세히 살펴보려면 전체 읽기 없이 Users, Groups, Messages 같은 엔티티의 변경 사항을 찾는 데 Delta Queries를 활용해 보시기 바랍니다. 이 쿼리를 효과적으로 구현하는 데 도움이 되도록 문서와 동영상 튜토리얼을 포함한 추가 자료도 찾아볼 수 있습니다. Microsoft Graph Delta Queries를 도입하면 중복을 최소화하고, 네트워크 트래픽을 줄이며, 애플리케이션의 전반적인 성능을 개선할 수 있습니다. 이 주제를 더 깊이 알아보려면 관련 팟캐스트 에피소드 Microsoft Graph Delta Queries - Simply Explained도 꼭 확인해 보시기 바랍니다. 이 에피소드에서는 이러한 개념을 모두 자세히 설명하고 성공적인 구현을 위한 실용적인 전략을 공유합니다.

자주 묻는 질문

Microsoft Graph의 Delta Queries란 무엇인가요?

Delta Queries를 사용하면 전체 데이터 세트를 가져오지 않고도 데이터 변경 사항을 추적할 수 있습니다. 마지막 동기화 이후의 변경 사항만 요청할 수 있으므로 효율성이 향상됩니다.

Delta Queries는 어떻게 시작하나요?

먼저 Azure Active Directory에서 앱을 만드세요. 그런 다음 앱에 권한을 부여하고, 동기화하려는 데이터에 접근할 수 있도록 Microsoft Graph API를 사용하도록 구성합니다.

deltaLink란 무엇인가요?

deltaLink는 초기 요청 후 Microsoft Graph가 제공하는 고유 URL입니다. 이를 사용하면 마지막 동기화 이후에 발생한 변경 사항만 가져올 수 있습니다.

모든 Microsoft Graph 리소스에 Delta Queries를 사용할 수 있나요?

모든 리소스가 Delta Queries를 지원하는 것은 아닙니다. 어떤 리소스에서 이 기능을 사용할 수 있는지는 Microsoft Graph 문서에서 확인하시기 바랍니다.

Delta Query 요청은 얼마나 자주 보내야 하나요?

애플리케이션의 요구 사항에 따라 요청 빈도를 정하시기 바랍니다. 업데이트가 잦은 데이터는 더 자주 쿼리해야 하고, 변경이 적은 데이터는 덜 자주 쿼리해도 됩니다.

deltaLink가 만료되면 어떻게 되나요?

deltaLink가 만료되면 전체 데이터 세트를 다시 가져오기 위해 전체 동기화를 수행해야 합니다. 이 문제를 피하려면 토큰 만료 여부를 정기적으로 확인하시기 바랍니다.

API를 사용할 때 제한(throttling)은 어떻게 처리하나요?

지수 백오프(exponential backoff)를 적용한 재시도 로직을 구현하시기 바랍니다. 이 방식을 사용하면 429 Too Many Requests 응답을 효과적으로 처리하고 애플리케이션의 응답성을 유지할 수 있습니다.

Delta Queries를 사용할 때 권장되는 모범 사례가 있나요?

네, deltaLink를 사용해 데이터 전송량을 최소화하고, 실시간 업데이트를 위해 웹후크와 Delta Queries를 함께 사용하며, 쿼리를 최적화해 페이로드 크기를 줄이시기 바랍니다.


🎧 함께 들으면 좋은 에피소드

마지막 검토: 2026년 7월.

Entities in this article

Microsoft Graph OData Change notifications and webhooks Microsoft Entra ID SharePoint Throttling Graph Explorer Semantic model Microsoft Teams

Related articles

RSS