솔루션 성능, 안정성 및 신뢰성 향상
솔루션은 앱, 테이블, 흐름, 웹 리소스, 플러그인 등의 객체를 배포하는 데 사용됩니다. Power Platform 이 문서에서는 솔루션 검사기 기능을 소개합니다. 이 기능은 일련의 모범 사례 규칙에 따라 솔루션 객체에 대한 포괄적인 정적 분석을 수행하는 강력한 도구입니다. ... 솔루션 검사기를 사용하면 구성 요소에서 문제가 되는 패턴을 빠르게 식별하고 문제점, 영향을 받은 구성 요소를 강조 표시하고 각 문제를 해결하는 방법에 대한 설명서 링크를 제공하는 자세한 보고서를 받을 수 있습니다. 이를 통해 솔루션의 성능, 안정성, 신뢰성이 최적화됩니다.
솔루션 검사기는 환경에서 내보낼 수 있는 비관리형 솔루션에서 작동합니다.
Power Apps (make.powerapps.com) 또는 PowerShell을 사용하여 솔루션 검사기를 실행할 수 있습니다.
솔루션 검사기가 어떻게 도움이 되나요?
복잡한 비즈니스 요구 사항을 충족하기 위해 제작자는 종종 Power Platform 을 사용자 지정하고 확장하는 매우 진보된 솔루션을 사용할 수 있습니다. 고급 구현에서는 성능, 안정성 및 안정성 문제가 도입되어 사용자 환경에 부정적인 영향을 줄 수 있는 위험이 증가합니다. 이러한 문제를 해결하는 방법을 확인하고 이해하는 것은 복잡하고 시간이 많이 걸릴 수 있습니다. 솔루션 검사기 기능을 사용하면 몇 초 안에 솔루션에 대한 검사를 수행할 수 있으며, 일련의 모범 사례 규칙을 사용하여 문제가 있는 패턴을 빠르게 식별할 수 있습니다. 검사가 완료되면 Power Apps 문제점, 영향을 받은 구성 요소 및 코드, 각 문제의 해결 방법을 설명하는 문서 링크 등이 나열된 자세한 보고서가 이메일 메시지와 함께 전송됩니다.
솔루션 검사기에서 이러한 솔루션 구성 요소를 분석합니다.
- Dataverse 사용자 지정 워크플로 활동
- Dataverse 웹 리소스(HTML 및 JavaScript)
- SDK 메시지 단계와 같은 Dataverse 구성
- Power Automate 흐름(흐름 검사기를 통해)
- Power Fx 식(앱 검사기를 통해)
참고
- 솔루션 검사기는 ECMAScript 2015(ES6) 이상부터 ECMAScript 2018(ES9)까지 구문을 위한 전역 변수를 지원합니다. ES6 이후의 전역 변수나 ES9 이후 구문을 사용하여 JavaScript를 검색하면 웹 리소스가 웹을 지원하지 않는 문제가 있습니다.
- 솔루션 검사기를 사용해도 솔루션 가져오기가 성공할 것이라는 보장은 없습니다. 솔루션에 대해 수행된 정적 분석 검사는 대상 환경의 구성된 상태를 알지 못하며, 가져오기 성공은 환경의 다른 솔루션이나 구성에 따라 달라질 수 있습니다.
솔루션 검사 실행
Power Apps에 로그인합니다.
왼쪽 탐색 창에서 솔루션을 선택합니다. 항목이 측면 패널 창을 경우 ...자세히를 선택한 다음 원하는 항목을 선택하세요.
분석하려는 비관리형 솔루션 옆, ... 을 클릭하고 솔루션검사기를 가리킨 다음 실행을 선택합니다.
솔루션 검사기 명령 버튼에는 로딩 표시기가 있으며 실행 중... 이 표시됩니다. 솔루션 목록의 솔루션 확인 열에서 상태를 표시합니다.
참고
- 솔루션 검사기에서 분석을 완료하는 데 몇 분 정도 걸릴 수 있습니다.
- 확인이 완료되면 Power Apps 사이트의 알림 영역에 전자 메일 알림 및 알림이 표시 됩니다.
- 검사가 완료 되면 보고서를 봅니다.
검사 취소
환경에서 솔루션 검사를 제출한 후에는 솔루션 페이지의 오른쪽 상단 영역에 있는 상태 창을 통해 검사를 취소할 수 있습니다.
검사를 취소 하면 솔루션 검사가 실행을 중지하고 솔루션 확인 상태가 이전 상태로 돌아갑니다.
솔루션 검사기 상태
사용자 환경에서 솔루션 검사기를 설치하면 솔루션 확인 열이 솔루션 목록에 제공됩니다. 이 열에는 솔루션용 솔루션 분석 상태가 표시됩니다.
상태 | 설명 |
---|---|
실행 되지 않은 | 솔루션이 분석 된 적이 없습니다. |
실행 중 | 솔루션이 분석되고 있습니다. |
완료할 수 없습니다. | 솔루션 분석이 요청되었으나 분석이 성공적으로 완료되지 않았습니다. |
날짜 및 시간의 결과 | 솔루션 분석을 완료하고 결과를 다운로드할 수 있습니다. |
완료할 수 없습니다. 날짜 및 시간의 결과 | 최신 분석 요청이 성공적으로 완료되지 않았습니다. 마지막으로 성공한 결과를 다운로드할 수 있습니다. |
Microsoft에서 확인 | 이것은 Microsoft 관리형 솔루션입니다. 솔루션 분석은 이러한 솔루션에 허용되지 않습니다. |
게시자에게 확인 | 이것은 Microsoft가 아닌 관리형 솔루션입니다. 현재 솔루션 분석은 솔루션에 사용할 수 없습니다. |
솔루션 검사 보고서 검토
솔루션 검사가 완료되면 포털에서 분석 보고서를 보거나 웹 브라우저에서 보고서를 다운로드할 수 있습니다. 포털에는 문제, 위치 또는 심각도를 기준으로 결과를 정렬하며, 솔루션에서 발견된 문제에 대한 자세한 정보를 보는 옵션이 있습니다.
왼쪽 탐색 창에서 솔루션을 선택합니다. 항목이 측면 패널 창을 경우 ...자세히를 선택한 다음 원하는 항목을 선택하세요.
솔루션 검사기 보고서를 보려는 비관리형 솔루션 옆의 ... 을 선택합니다. 솔루션 검사기를 가리킨 다음 결과 보기를 선택합니다.
문제를 선택하여 해결 방법에 대한 세부 사항 및 지침을 봅니다.
솔루션 검사 결과를 다운로드할 수도 있습니다. 솔루션 검사기 zip 파일이 웹 브라우저에서 지정한 폴더로 다운로드 됩니다. 다운로드 보고서는 Excel 형식이며 솔루션에서 검색된 각 문제의 영향, 유형 및 위치를 식별하는데 도움이 되는 여러 시각화 및 열을 포함 합니다. 이 문제를 해결하는 방법에 대한 자세한 지침에 대한 링크가 제공됩니다.
- 왼쪽 탐색 창에서 솔루션을 선택합니다. 항목이 측면 패널 창을 경우 ...자세히를 선택한 다음 원하는 항목을 선택하세요.
- 솔루션 검사기 보고서를 다운로드할 비관리형 솔루션 옆의 ... 을 선택합니다. 솔루션 검사기를 가리킨 다음 결과 다운로드를 선택합니다.
- 솔루션 검사기 zip 파일이 웹 브라우저에서 지정한 폴더로 다운로드 됩니다.
다음은 보고서의 각 열에 대한 요약입니다.
보고서 열 | 설명 | 구성 요소에 적용 |
---|---|---|
이슈 | 솔루션에서 식별된 문제의 제목입니다. | 모두 |
범주 | 성능, 유지 관리 가능성, 사용, 지원 가능성, 디자인, 보안, 접근성 또는 업그레이드 준비와 같은 식별된 문제의 범주입니다. | 전체 |
심각도 | 식별된 문제의 잠재적 영향을 나타냅니다. 사용 가능한 영향 유형은 중요, 높음, 보통, 낮음, 정보입니다. | 전체 |
지침 | 문제, 영향 및 권장되는 작업을 자세히 설명하는 문서에 연결합니다. | 모두 |
구성 요소 | 문제를 해결하는 솔루션 구성 요소입니다. | 모두 |
Location | 어셈블리 또는 JavaScript 파일 이름과 같이 식별된 문제가 발생한 구성 요소의 위치 및/또는 소스 파일입니다. | 모두 |
꺾은선형 # | 영향을 받는 웹 리소스 구성 요소에 있는 문제의 줄 번호 참조입니다. | 웹 리소스 |
모듈 | 어셈블리에서 식별된 문제가 발견된 모듈 이름입니다. | 사용자 지정 워크플로 활동 |
유형 | 어셈블리에서 식별된 문제의 유형입니다. | 사용자 지정 워크플로 활동 |
구성원 | 어셈블리에서 식별된 문제의 구성원입니다. | 사용자 지정 워크플로 활동 |
문 | 문제를 일으킨 코드 문 또는 구성입니다. | 모두 |
코멘트 | 높은 수준의 해결 단계를 포함하는 문제에 대한 세부 정보입니다. | 전체 |
로컬에서 솔루션 검사기 규칙 실행
개발 환경에서 솔루션 검사기 규칙을 실행하여 솔루션 리소스를 생성하는 즉시 문제를 감지할 수 있습니다. 이것은 현재 웹 리소스(JavaScript 및 TypeScript)에 대해 지원됩니다. 자세한 내용은 NPM 패키지 @microsoft/eslint-plugin-power-apps를 참조하세요.
PowerShell을 사용하여 솔루션 검사기 실행
서비스와 직접 상호 작용하는 데 사용할 수 있는 PowerShell 모듈을 사용할 수 있습니다. Microsoft.PowerApps.Checker.PowerShell 모듈은 Power Apps 환경의 관리 및 비관리 솔루션 분석에 사용하거나 서비스를 자동화하고 빌드 및 릴리스 파이프라인에 통합하는 데 사용할 수 있습니다. 추가 정보: Microsoft.PowerApps.Checker.PowerShell Overview
솔루션 검사기에서 사용하는 모범 사례 규칙
다음 표에는 구성 요소 유형, 규칙 설명, 심각도, 및 범주가 나와 있습니다. 관리형 환경에서 솔루션 검사기 시행을 위해 구성된 경우 심각한 위반은 차단되거나 경고됩니다. 추가 정보: 관리형 환경에서 솔루션 검사기 사용
솔루션 구성 요소 | 규칙 이름 | 규칙 설명 | 심각도 | 카테고리 |
---|---|---|---|---|
플러그 인 또는 워크플로 활동 | meta-remove-dup-reg | 중복 Dataverse 플러그 인 등록을 사용하지 마십시오. | 중요 | 실적 |
플러그 인 또는 워크플로 활동 | meta-avoid-reg-no-attribute | Dataverse 플러그 인 등록에 필터링 특성을 포함하십시오. | 보통 | 실적 |
플러그 인 또는 워크플로 활동 | 메타-회피-reg-검색 | Retrieve 및 RetrieveMultiple 메시지에 등록된 Dataverse 플러그 인을 주의하여 사용하십시오. | 보통 | 실적 |
플러그 인 또는 워크플로 활동 | 메타-제거-비활성 | Dataverse에서 비활성 구성을 제거합니다. | 낮은 값 | 유지 관리 |
플러그 인 또는 워크플로 활동 | meta-avoid-crm4-event | Microsoft Dynamics CRM 4.0 플러그 인 등록 스테이지를 사용하지 마십시오. | 보통 | 업그레이드 준비 |
플러그 인 또는 워크플로 활동 | meta-avoid-retrievemultiple-annotation | 주석의 RetrieveMultiple에 플러그 인을 등록하지 마십시오. | 높은 값 | 사용 |
모델 기반 앱 | meta-license-sales-entity-operations | 솔루션에는 유효한 Dynamics 365 라이선스가 필요한 제한된 SDK 메시지 및 작업이 있는 엔터티가 포함되어 있습니다. | 낮은 값 | 라이선싱 |
모델 기반 앱 | meta-license-fieldservice-customcontrols | 솔루션에는 유효한 Dynamics 365 Field Service 라이선스가 필요한 사용자 지정 컨트롤이 포함되어 있습니다. | 낮은 값 | 라이선싱 |
모델 기반 앱 | meta-license-fieldservice-entity-operations | 솔루션에는 유효한 Dynamics 365 Field Service 라이선스가 필요한 제한된 SDK 메시지 및 작업이 포함된 엔터티가 포함되어 있습니다. | 낮은 값 | 라이선싱 |
웹 리소스 | use-async | 비동기적으로 HTTP 및 HTTPS 리소스와 상호작용 합니다. | 중요 | 실적 |
웹 리소스 | avoid-modals | 모달 대화 상자를 사용하지 마십시오. | 높은 값 | 지원 가능성 |
웹 리소스 | avoid-dom-form | 높은 값 | 지원 가능성 | |
웹 리소스 | avoid-dom-form-event | 높은 값 | 지원 가능성 | |
웹 리소스 | avoid-crm2011-service-odata | Microsoft Dynamics CRM 2011 OData 2.0 엔드포인트를 대상으로 지정하지 마십시오. | 중요 | 업그레이드 준비 |
웹 리소스 | avoid-crm2011-service-soap | Microsoft Dynamics CRM 2011 SOAP 서비스를 대상으로 지정하지 마십시오. | 중요 | 업그레이드 준비 |
웹 리소스 | avoid-loadtheme | loadTheme Fluent v8 API를 사용하지 마세요. |
낮은 값 | 지원 가능성 |
웹 리소스 | avoid-browser-specific-api | Internet Explorer 레거시 API 또는 브라우저 플러그 인을 사용하지 마십시오. | 중요 | 업그레이드 준비 |
웹 리소스 | avoid-unpub-api | 높은 값 | 지원 가능성 | |
웹 리소스 | avoid-window-top | 높은 값 | 지원 가능성 | |
웹 리소스 | avoid-2011-api | 더 이상 사용되지 않는 Microsoft Dynamics CRM 2011 개체 모델을 사용하지 마십시오. 대신 Dataverse Web API 설명서를 따르십시오. | 높은 값 | 업그레이드 준비 |
웹 리소스 | use-relative-uri | 절대 Dataverse 엔드포인트 URL을 사용하지 마십시오. | 보통 | 유지 관리 |
웹 리소스 | use-cached-webresource | 보통 | 실적 | |
웹 리소스 | use-client-context | 클라이언트 컨텍스트를 사용하십시오. | 보통 | 업그레이드 준비 |
웹 리소스 | use-navigation-api | 탐색 API 매개 변수를 사용합니다. | 보통 | 업그레이드 준비 |
웹 리소스 | use-offline | 보통 | 업그레이드 준비 | |
웹 리소스 | do-not-make-parent-assumption | 높은 값 | 설계 | |
웹 리소스 | use-org-setting | 조직 설정을 사용하십시오. | 보통 | 업그레이드 준비 |
웹 리소스 | use-global-context | 보통 | 업그레이드 준비 | |
웹 리소스 | use-grid-api | 그리드 API를 사용하십시오. | 보통 | 업그레이드 준비 |
웹 리소스 | use-utility-dialogs | 보통 | 사용 | |
웹 리소스 | avoid-isActivityType | Xrm.Utility.isActivityType 매서드를 새로운 Xrm.Utility.gettableMetadata로 대체하고 리본 규칙에서 사용하지 마십시오. | 보통 | 업그레이드 준비 |
웹 리소스 | meta-avoid-silverlight | Silverlight 웹 리소스 사용은 더 이상 사용되지 않습니다. | 보통 | 업그레이드 준비 |
웹 리소스 | remove-debug-script | 개발 환경이 아닌 곳에 디버그 스크립트를 포함하지 마세요. | 보통 | 사용 |
웹 리소스 | use-strict-mode | 가능한 경우 엄격 모드를 사용하십시오. | 보통 | 사용 |
웹 리소스 | use-strict-equality-operators | 완전 항등 연산자를 사용하십시오. | 보통 | 사용 |
웹 리소스 | avoid-eval | eval 함수나 이와 동등한 기능을 하는 함수를 사용하지 마세요. |
중요 | 보안 |
웹 리소스 | with 피하기 | 'with' 연산자를 사용하지 마세요. | 높은 값 | 실적 |
웹 리소스 | remove-alert | 'alert' 함수 또는 동일한 기능을 사용하지 마십시오. | 보통 | 사용 |
웹 리소스 | remove-console | 콘솔에서 메서드를 사용하지 마십시오. | 보통 | 사용 |
웹 리소스 | avoid-ui-refreshribbon | 양식 onload 및 EnableRule에서 refreshRibbon을 사용하지 마십시오. | 중요 | 실적 |
웹 리소스 | use-getsecurityroleprivilegesinfo | userSettings.securityRolePrivileges를 사용하지 마십시오. 대신 userSettings.getSecurityRolePrivilegesInfo를 사용하십시오. | 높은 값 | 실적 |
웹 리소스 | use-appsidepane-api | Xrm.Panels.loadPanel 대신 Xrm.App.sidePanes.createPane을 사용하세요. | 보통 | 업그레이드 준비 |
웹 리소스 | web-sdl-no-cookies | HTTP 쿠키는 내재된 위험과 제한이 있는 오래된 클라이언트 측 저장 메커니즘입니다. 대신 웹 스토리지, IndexedDB 또는 기타 최신 방법을 사용하세요. | 보통 | 보안 |
웹 리소스 | web-sdl-no-document-domain | 동일한 출처 확인을 우회하지 않도록 document.domain 속성에 대한 쓰기를 검토해야 합니다. azurewebsites.net과 같은 최상위 도메인의 사용은 엄격히 금지됩니다. | 보통 | 보안 |
웹 리소스 | web-sdl-no-document-write | document.write 또는 document.writeln에 대한 호출은 삭제 없이 DOM을 직접 조작하므로 피해야 합니다. 대신 document.createElement() 또는 유사한 메서드를 사용하세요. | 보통 | 보안 |
웹 리소스 | web-sdl-no-html-method | html() 메서드를 직접 호출하면 (예를 들어 jQuery 프레임워크에서) 아무런 정리 작업 없이 DOM을 조작하므로 피해야 합니다. 대신 document.createElement() 또는 유사한 메서드를 사용하세요. | 보통 | 보안 |
웹 리소스 | web-sdl-no-inner-html | innerHTML 또는 outerHTML 속성에 대한 할당은 삭제 없이 DOM을 직접 조작하므로 피해야 합니다. 대신 document.createElement() 또는 유사한 메서드를 사용하세요. | 보통 | 보안 |
웹 리소스 | web-sdl-no-insecure-url | HTTP 또는 FTP와 같은 안전하지 않은 프로토콜은 신뢰할 수 없는 네트워크를 통해 잠재적으로 민감한 데이터를 일반 텍스트로 보내는 것을 방지하기 위해 암호화된 프로토콜(HTTPS, FTPS)로 교체해야 합니다. | 보통 | 보안 |
웹 리소스 | web-sdl-no-msapp-exec-unsafe | MSApp.execUnsafeLocalFunction()에 대한 호출은 스크립트 주입 유효성 검사를 우회하므로 피해야 합니다. | 보통 | 보안 |
웹 리소스 | web-sdl-no-postmessage-star-origin | 트러스트 경계 외부의 데이터 유출을 방지하기 위해 postMessage를 사용하여 다른 창으로 데이터를 보낼 때 *가 아닌 항상 특정 대상 출처를 제공하십시오. | 보통 | 보안 |
웹 리소스 | web-sdl-no-winjs-html-unsafe | WinJS.Utilities.setInnerHTMLUnsafe() 및 이와 유사한 메서드를 호출하면 입력 유효성 검사를 수행하지 않으므로 피해야 합니다. 대신 WinJS.Utilities.setInnerHTML()을 사용하십시오. | 보통 | 보안 |
캔버스 앱 | app-formula-issues-high | 자세한 내용은 Power Apps 수식 참조 를 참조하세요. | 중요 | 설계 |
캔버스 앱 | app-formula-issues-medium | 자세한 내용은 Power Apps 수식 참조를 확인하십시오. | 보통 | 설계 |
캔버스 앱 | app-formula-issues-low | 자세한 내용은 Power Apps 수식 참조를 확인하십시오. | 낮은 값 | 설계 |
캔버스 앱 | app-use-delayoutput-text-input | 일부 시나리오에서는 지연된 로드를 사용하여 성능을 향상하세요. | 보통 | 실적 |
캔버스 앱 | app-reduce-screen-controls | 성능 향상을 위해 앱 제어 수를 제한하십시오. | 보통 | 실적 |
캔버스 앱 | app-include-accessible-label | 앱 접근성을 높이려면 명시적인 라벨을 사용하세요. | 보통 | 접근성 |
캔버스 앱 | app-include-alternative-input | 모든 대화형 요소가 대체 입력에 액세스할 수 있는지 확인합니다. | 보통 | 접근성 |
캔버스 앱 | app-avoid-autostart | 앱 내의 플레이어에서 자동 시작을 사용하지 마십시오. | 보통 | 접근성 |
참조 항목
Dataverse에 대한 모범 사례 및 지침
모델 기반 앱에 대한 모범 사례 및 지침
솔루션 검사기에 대한 일반적인 문제 및 해결 방법
참고
귀사의 설명서 언어 기본 설정에 대해 말씀해 주시겠습니까? 간단한 설문 조사에 응해주세요. (이 설문 조사는 영어로 되어 있습니다.)
이 설문 조사는 약 7분 정도 걸립니다. 개인 데이터는 수집되지 않습니다(개인정보처리방침).