Microsoft Dataverse는 복잡한 데이터 및 보안 모델을 지원하고 보다 사용자 지정된 사용자 환경을 구축할 수 있으므로 캔버스 앱의 데이터 원본으로 사용하는 것이 좋습니다. 캔버스 앱은 Dataverse를 다른 Power Platform 커넥터와 함께 데이터 원본으로 사용하여 SharePoint 목록, Microsoft Access 데이터베이스 또는 다른 비즈니스 애플리케이션의 데이터와 같은 여러 데이터 원본을 통합할 수 있습니다. Power Apps는 커넥터를 사용하여 Dataverse를 사용하지 않습니다. 커넥터 프레임워크 외부의 Dataverse에 직접 연결됩니다.
팁
이 문서에서는 캔버스 앱에서 Dataverse를 데이터 원본으로 사용하는 방법을 설명하기 위해 예제 시나리오와 일반화된 예제 아키텍처를 제공합니다. 아키텍처 예제는 다양한 시나리오 및 산업에 맞게 수정할 수 있습니다.
아키텍처 다이어그램
Workflow
다음 단계에서는 예제 아키텍처 다이어그램에 표시된 워크플로에 대해 설명합니다.
캔버스 앱: 캔버스 앱을 사용하면 사용자가 장소 및 세션 시작 및 종료 시간과 같은 회의 세부 정보를 관리할 수 있습니다. 캔버스 앱은 Dataverse의 데이터에 직접 액세스합니다. 사용자는 Microsoft Entra ID를 사용하여 Power Platform에 인증하고 동일한 ID를 사용하여 데이터에 액세스합니다. Dataverse에서 사용자의 Entra ID에 대한 모든 제한은 원활하게 적용됩니다.
Dataverse 데이터 원본: 캔버스 앱은 Dataverse를 데이터 원본으로 사용합니다. 테이블과 테이블 간의 관계를 손쉽게 사용할 수 있는 관계형 데이터 모델에 액세스할 수 있습니다. 기본 제공 옵션 세트 기능을 사용하면 복잡한 조회 및 조인을 작성할 필요가 없습니다. Power Apps는 Dataverse에 직접 연결되기 때문에 성능도 일반적으로 좋습니다.
Dataverse 테이블: 이 예에서 Dataverse 테이블은 장소에서 호스팅되는 회의 세션에 대한 데이터를 저장합니다. 테이블은 일대다 관계와 다대다 관계를 사용하여 관련됩니다. Dataverse 보안 역할은 앱 사용자의 역할과 일치시킵니다. Dataverse 수준에서 논리를 구현하여 값을 계산 및 롤업하고, 도메인 값을 적용하고, 데이터 작업을 자동화할 수 있습니다.
구성 요소
Power Platform 환경: 사용자 환경을 구현하는 Power Platform 리소스가 포함되어 있습니다.
Power Apps: 솔루션의 사용자 환경을 구현합니다. 제작자는 Dataverse 테이블을 애플리케이션 데이터 원본으로 추가하여 Dataverse를 사용하여 캔버스 앱을 빌드할 수 있습니다.
Power Apps 조직이 저장된 데이터에 대한 맞춤형 사용자 환경을 만들 수 있도록 합니다 Microsoft Dataverse.
- 모델 기반 Power Apps: 데이터보다 형태에 초점을 맞춘 애플리케이션 시나리오에 이상적입니다.
- 캔버스 Power Apps: 시각적 레이아웃을 사용자 정의하는 데 더 많은 유연성이 필요한 시나리오에 가장 적합합니다. 또한 사용자에게 Dataverse 다른 데이터 소스의 데이터에 대한 액세스를 동시에 제공해야 하는 경우에도 유용합니다. 이러한 시나리오에서 애플리케이션은 통합자 역할을 하여 사용자에게 여러 소스의 데이터에 대한 단일 보기를 제공합니다. Power Apps
Dataverse 커넥터: 복잡한 조회와 조인을 구축하여 관련 테이블을 검색하지 않고도 테이블과 테이블 간의 관계를 쉽게 사용할 수 있는 계층적 데이터 모델에 액세스할 수 있습니다. 또한 커넥터는 기존 커넥터 인프라를 우회하고 Dataverse 백 엔드를 직접 호출하여 성능을 향상시킵니다.
시나리오 세부 사항
Power Apps를 사용하면 Microsoft Dataverse에 저장된 데이터에 대한 사용자 지정 사용자 환경을 쉽게 만들 수 있습니다. 모델 기반 앱은 데이터보다 양식에 중점을 둔 시나리오에 이상적입니다. 캔버스 앱은 레이아웃을 사용자 정의하는 데 더 많은 유연성이 필요한 시나리오에 가장 적합합니다.
이 예제의 아키텍처는 Dataverse 및 다른 소스의 데이터에 대한 액세스를 동시에 제공해야 하는 경우에 유용합니다. 이러한 시나리오에서 앱은 통합자 역할을 하여 사용자에게 여러 소스의 데이터를 한눈에 볼 수 있는 기능을 제공합니다.
고려 사항
이러한 고려 사항은 워크로드의 품질을 개선하는 일련의 기본 원칙인 Power Platform Well-Architected의 핵심 요소를 구현합니다. Microsoft Power Platform Well-Architected에서 자세히 알아보세요.
안정성
불필요한 복잡성을 피하기 위한 워크로드 설계: Dataverse의 기본 제공 추상화 및 기능은 기존 데이터베이스 솔루션에 필요할 수 있는 불필요한 복잡성을 방지하는 데 도움이 됩니다. 예를 들어 Dataverse는 기본 제공 관계, 스마트 데이터 유형, 옵션 집합 및 보안 모델을 지원합니다.
보안
의도적인 세분화 및 경계 생성: 애플리케이션 수명 주기 단계에 대해 별도의 Power Platform 환경을 사용하고 세분화 정책을 지원하기 위해 올바른 사용자만 각 단계에 액세스할 수 있도록 합니다.
운영 효율성
안전한 배포 사례 채택: 파이프라인과 같은 자동화된 배포 프로세스를 사용하여 캔버스 앱에 대한 변경 사항의 배포를 표준화합니다. 변경 사항을 테스트한 후에만 애플리케이션을 프로덕션 환경에 배포하세요.
성능 효율성
성능 요구 사항을 충족하는 설계: 솔루션 성능 및 데이터 볼륨 요구 사항을 평가하여 Dataverse 테이블 디자인이 적절한지 확인합니다. 평가에는 데이터 액세스 방법과 앱이 Dataverse에 작업을 위임하는 방법에 대한 평가가 포함되어야 합니다. 데이터를 검색하고 필터링할 때 위임 제한 사항을 알아두세요. 이러한 제한 사항은 캔버스 앱의 위임 이해에 설명되어 있으며 앱에 적합한 데이터 원본을 선택할 때 고려해야 합니다.
성능 요구 사항을 충족하는 설계: 솔루션 성능 및 데이터 볼륨 요구 사항을 평가하여 Dataverse 테이블 디자인이 적절한지 확인합니다. 평가에는 데이터 액세스 방법과 앱이 Dataverse에 작업을 위임하는 방법에 대한 평가가 포함되어야 합니다. 데이터를 검색하고 필터링할 때 위임 제한 사항을 알아두세요. ... 이러한 제한 사항은 캔버스 앱에서 위임 이해 에 설명되어 있으며 앱에 적합한 데이터 소스나 백엔드를 선택할 때 고려해야 합니다.
논리 최적화: 기본적으로 캔버스 애플리케이션은 Dataverse 를 사용하여 논리를 구현합니다. Power Fx 이로 인해 여러 애플리케이션에서 여러 상호 작용이 발생하거나 논리가 반복될 수 있습니다. Dataverse 각 작업은 독립적이며 원자적 트랜잭션으로 처리되지 않습니다. 예를 들어, 애플리케이션에서 장소 행을 생성했지만 세션을 생성할 수 없는 경우 장소 행은 그대로 유지됩니다. Dataverse는 행 생성과 같은 Dataverse 테이블 이벤트에서 호출할 수 있는 논리를 구현하는 것을 지원합니다. Dataverse 또한 사용자 지정 API Dataverse 또는 기능의 함수를 사용하여 필요에 따라 논리를 호출하는 개념도 지원합니다. Dataverse 이 두 가지 접근 방식 모두에서 논리가 수행하는 작업은 트랜잭션으로 이루어집니다. Dataverse 데이터에서 수행된 모든 작업은 커밋되거나 롤백됩니다. 이전 예에서 오류가 발생한 후에는 Venue 행이 남아 있지 않았을 것입니다. 이러한 접근 방식을 통합하면 결합된 작업 단위로 성공적인 완료를 보장하고 재사용 가능한 논리를 중앙 집중화하여 이러한 시나리오에서 논리를 최적화할 수 있습니다.
경험 최적화
효율성을 위한 설계: 사용자가 여러 개별 앱과 상호 작용할 필요 없이 Dataverse 테이블과 함께 다른 데이터 원본에 액세스할 수 있는 캔버스 앱은 효율성을 개선하고 더 나은 환경을 제공합니다. 그러나 앱을 만들기 위해 불필요하게 복잡한 앱을 만들지 마세요. 앱은 사용자에게 효율성을 제공하거나 모델 기반 앱 환경에 비해 다른 아키텍처적 이점을 제공해야 합니다.
기여자
Microsoft는 이 문서를 관리합니다. 이 문서를 작성한 기여자는 다음과 같습니다.
주요 작성자:
- Mehdi Slaoui Andaloussi, 수석 엔지니어링 관리자