다음을 통해 공유


Windows 애플리케이션 개발 - 모범 사례

이 문서의 모범 사례는 전 세계 약 15억 명의 다양한 PC 사용자에게 도달하고 만족하는 훌륭한 Windows 앱을 빌드하는 데 도움이 됩니다. 이 문서는 다음 섹션으로 나뉩니다.

  1. 사용자 환경: 이 섹션의 지침은 앱의 모양, 느낌 및 유용성을 개선하는 데 도움이 됩니다.
  2. 성능 및 기본 사항: 이 섹션의 지침은 앱의 성능 및 리소스 사용률을 개선하는 데 도움이 됩니다.
  3. 운영 체제/하드웨어 최적화: 이 섹션의 지침은 다양한 하드웨어 구성에 대한 패키징 및 배포를 최적화하는 데 도움이 됩니다.
  4. 애플리케이션 검색 및 관리: 이 섹션의 지침은 사용자가 앱을 보다 쉽게 검색, 설치, 업데이트 및 제거할 수 있도록 합니다.
  5. 접근성: 이 섹션의 지침은 접근성 있고 포괄적인 환경을 구축하는 데 도움이 됩니다.
  6. 보안 및 개인 정보: 이 섹션의 지침은 보안 위험을 완화하고 사용자의 개인 정보 요구 사항을 충족하는 데 도움이 됩니다.

UX(사용자 환경)

Windows 11은 Windows 운영 체제의 시각적 진화를 제공하여 Windows의 모양, 느낌 및 유용성을 향상시킵니다. 연구에 따르면 사용자는 Windows 앱에 대한 기대치가 높습니다.

  • 사용자는 Windows 앱이 전체 입력 범위에서 작동할 것을 기대합니다.
  • 현재와 미래의 디바이스에서 전혀 이질감이 느껴지지 않는 디자인과 상호 작용 패턴을 기대합니다.
  • 현대식 창 워크플로 및 셸 통합 지점에 대한 지원을 기대합니다.

애플리케이션이 Windows 스타일 및 표준 Windows 동작을 준수하면 사용자가 상호 작용 패턴을 다시 학습할 필요가 없습니다. 이러한 일관성을 통해 사용자가 앱을 훨씬 쉽게 사용할 수 있습니다. 멋지게 보이는 앱은 훌륭한 첫인상을 만들 수 있지만 사용하기 쉽고 사용자가 목표를 달성하는 데 도움이 되는 앱은 지속적인 인상을 남깁니다.

Windows 11은 Windows 11 디자인 원칙을 기반으로 합니다. 앱을 빌드할 때 이러한 지침을 따르면 고객이 멋진 앱 환경에 대한 기대를 충족할 수 있습니다. Windows 애플리케이션에 최신 및 권장 Windows 애플리케이션 UI/UX 패턴을 통합하는 방법에 대해 생각할 때 다음 5가지 영역에 집중합니다.

  • 레이아웃
  • UI 상호 작용
  • 비주얼 스타일
  • 창 동작
  • 셸 통합 지점

WinUI 3공통 컨트롤을 통해 이러한 많은 환경 및 스타일을 기본적으로 지원합니다. WinUI 3을 사용할 수 없는 경우 디자인 도구 키트WinUI 갤러리에 표시된 스타일을 에뮬레이트하는 것이 좋습니다.

레이아웃

Windows 애플리케이션은 사용자의 요구 사항에 맞는 다양한 구성에서 실행됩니다. 다양한 차원, 디바이스, 창 크기, DPI 설정 및 크기 조정 설정에서 애플리케이션의 창과 페이지를 테스트합니다. 애플리케이션은 작은 크기로 크기를 줄여도 예상대로 작동해야 합니다.

DPI 인식

WinUI 애플리케이션은 실행 중인 각 디스플레이에 맞게 자동으로 스케일링됩니다. 다른 Windows 프로그래밍 기술(Win32, WinForms, WPF 등)은 모니터당 DPI 크기 조정을 자동으로 처리하지 않습니다. 이러한 기술에 대한 모니터별 DPI 크기 조정을 지원하기 위한 추가 작업이 없으면 애플리케이션이 흐리게 표시되거나 크기가 잘못 조정될 수 있습니다. 자세한 내용은 Windows의 High DPI Desktop 애플리케이션 개발을 참조하세요.

반응형 레이아웃

반응형 디자인 기술을 사용하여 다양한 창 크기에 맞게 앱 페이지를 최적화합니다. 이동 또는 스크롤에 대한 지침에 따라 앱 창이 아무리 작아져도 사용자가 항상 콘텐츠에 액세스할 수 있도록 합니다.

UI 상호 작용

Windows 사용자는 다양한 입력 디바이스 중에서 선택하여 애플리케이션과 상호 작용할 수 있으며 Windows에는 사용자가 사용하는 데 익숙한 특정 시스템 환경이 있습니다. 애플리케이션이 이러한 환경을 준수하는 경우 사용자는 애플리케이션을 안정적으로 사용할 수 있습니다. 앱이 이러한 규칙을 따르지 않으면 사용자가 혼란스럽거나 실망스러울 수 있습니다.

개체 기반 명령

상황에 맞는 메뉴, 살짝 밀기 명령바로 가기 키와 같은 개체 내 명령을 사용합니다. Windows 11은 오른쪽 클릭 상황에 맞는 메뉴의 동작을 개선하므로 앱에서 상황에 맞는 메뉴를 생성하는 경우 최신 상황에 맞는 메뉴 통합 지침을 참조하세요. WinUI 텍스트 컨트롤은 잘라내기, 복사 및 붙여넣기 명령을 자동으로 노출하지만 다른 컨트롤은 이러한 명령을 지원하기 위해 추가 작업이 필요할 수 있습니다.

텍스트 상호 작용

애플리케이션에 텍스트가 있을 때마다 사용자는 해당 텍스트를 선택하고 복사할 수 있을 것으로 예상합니다. 텍스트를 편집할 수 있는 경우 잘라내어 붙여넣을 수도 있습니다. 사용자에게 일관된 바로 가기를 제공하여 작업을 보다 효율적으로 완료할 수 있습니다. 사용자가 키보드, 마우스 또는 트랙 패드, 터치 및 펜을 사용하여 이러한 작업을 수행할 수 있는지 확인합니다.

이동 및 스크롤

애플리케이션의 UI가 스크롤할 필요가 없는 단일 페이지 안에 완전히 맞는 것은 드문 일입니다. 몇 가지 UI 요소만 있더라도 사용자는 앱 창의 크기를 자유롭게 조정하고 일부 UI 요소를 숨길 수 있습니다. 애플리케이션의 UI가 스크롤 및 이동(키보드, 마우스 또는 트랙패드, 터치 및 펜 사용)을 제대로 지원하여 사용자가 표시되는 창 영역에서 이동할 수 있는 모든 UI 요소에 액세스할 수 있도록 합니다.

비주얼 스타일

Windows 11 Windows 11 디자인 원칙인 간편함, 차분함, 개인화, 친숙함, 완전성 + 일관성을 기반으로 합니다. 이러한 원칙을 따르는 환경은 Windows에서 뛰어난 사용자 환경을 제공합니다.

재질: 아크릴 및 Mica

아크릴Mica는 대화형 UI 컨트롤에 고유한 "막힌" 시각적 스타일을 제공하는 시각적 재질입니다. 아크릴을 사용하여 상황에 맞는 메뉴, 플라이아웃 및 사용자가 가볍게 해제할 수 있는 기타 요소와 같은 일시적인 표면에 반투명 스타일을 적용합니다. 제목 표시줄과 같은 오래 지속되는 UI 표면에 미묘한 적응 색조를 추가하려면 Mica를 사용합니다.

아크릴 및 Mica 자료에 대한 자세한 내용은 Windows 11에서 앱을 멋지게 만들기 위해 수행할 수 있는 작업을 참조하세요.

어두운 테마 및 밝은 테마

어두운 테마 및 밝은 테마는 사용자가 시각적 취향에 맞게 앱을 조정할 수 있는 방법을 제공합니다. Windows 11은 순수한 흰색과 검정색을 피하고 눈에 더 부드럽게 색조를 업데이트하여 더 기분이 좋아지는 색을 만듭니다. WinUI는 기본적으로 어두운 테마와 밝은 테마 간의 전환을 지원합니다(XAML 테마 리소스 참조). Win32 앱의 경우 Win32 앱에서 어둡고 밝은 테마 지원을 참조하세요. (Win32 앱의 제목 표시줄은 어두운 테마에 자동으로 적응하지 않습니다. 문서의 제목 표시줄 지침을 따라야 합니다).

새로 고친 UI 요소

Windows 11 기하 도형은 최신 앱 환경을 지원합니다. 점진적으로 둥근 모퉁이, 중첩된 요소, 일관된 여백이 결합되어 목적과 사용 편의성의 통합을 강조하는 부드럽고, 차분하고, 접근 가능한 효과를 만듭니다.

시각적 개체 및 동작 변경 내용은 WinUI 3에 기본 제공됩니다. Windows 개발 팀이 이미 수행했던 작업을 활용할 수 있는 WinUI 3을 사용합니다. WinUI 3을 사용할 수 없는 경우 디자인 도구 키트WinUI 갤러리에 표시된 스타일을 에뮬레이트하는 것이 좋습니다.

상황에 맞는 메뉴

사용자가 마우스 오른쪽 버튼을 클릭하거나 길게 눌러 호출할 수 있는 컨텍스트 메뉴는, 사용자가 상호 작용하는 UI 요소의 컨텍스트에 관련된 명령을 표시합니다. 사용자는 상황에 맞는 메뉴의 모양과 동작이 Windows 전체에서 일관될 것으로 예상합니다. 가능하면 플랫폼 제공 상황에 맞는 메뉴를 사용하여 시스템의 나머지 부분과 일관성을 유지합니다.

아이콘 및 서체

Windows 11은 업데이트된 아이콘("Segoe Fluent 아이콘"), 향상된 애니메이션 아이콘 지원 및 새 UI 글꼴("Segoe UI 변수")을 제공합니다. Windows 11에서 일관성을 유지하려면 가능하면 이러한 새 아이콘과 글꼴을 사용합니다. 새로운 글꼴을 사용하면 형상이 훨씬 더 부드러워지고 텍스트를 훨씬 더 읽기 쉬워집니다.

Windows의 아이콘 및 입력 체계에 대한 자세한 내용은 Windows 11에서 앱을 멋지게 만들기 위해 수행할 수 있는 작업을 참조하세요.

창 동작 및 스타일

애플리케이션은 Windows에서 제공하는 프레임에서 실행됩니다. 사용자는 기본 제공 Windows 모양 및 동작이 앱 창 전체에서 일관될 것으로 예상합니다. 사용자가 Windows 11에서 예상한 대로 앱이 표시되고 작동하도록 하려면 여기에 나열된 기능을 지원하는 것이 좋습니다.

스냅 레이아웃

창 맞춤은 Windows 11에서 크게 향상되었으며, 맞춤 레이아웃 메뉴는 사용자가 창 맞춤 기능을 검색하고 사용하는 데 도움이 되는 새로운 기능입니다. 앱이 다양한 스냅 크기(예: 1/2, 1/3 및 1/4 화면)를 지원하도록 스냅 레이아웃 메뉴를 사용하여 다양한 스냅 레이아웃에서 앱을 테스트합니다.

앱의 스냅 레이아웃 메뉴가 기본적으로 표시되지 않는 경우 Windows 11에서 데스크톱 앱에 대한 스냅 레이아웃 지원을 참조하여 스냅 레이아웃 메뉴를 사용하도록 설정하는 단계를 알아보세요.

제목 표시줄 및 캡션 단추

사용자는 제목 표시줄 및 캡션 단추(최소화, 최대화, 닫기)와 상호 작용하여 앱 창의 크기를 조정, 이동 및 닫습니다. 일관된 환경을 통해 사용자가 애플리케이션을 원활하게 사용할 수 있습니다. Windows용 제목 표시줄 및 캡션 단추 디자인에 대해 알아보려면 Windows 앱 제목 표시줄을 참조하세요.

Windows 앱 SDK API를 사용하여 WinUI 3, .NET, WinForms 및 WPF 앱에서 제목 표시줄과 앱 콘텐츠를 통합할 수 있습니다.

둥근 모서리

대부분의 경우 앱 창은 기본적으로 Windows 11에서 둥근 모서리를 가지고 있습니다. 앱 창을 사용자 지정하고 모서리가 둥글지 않은 경우 Windows 11용 데스크톱 앱에서 둥근 모서리 적용에서 수정할 수 있는 몇 가지 사항을 참조하세요. 창 테두리와 그림자를 사용자 지정하는 것도 피해야 합니다. 시스템이 창 모서리를 둥글게 만들지 못하게 될 수 있습니다.

셸 통합 지점

Windows 셸 통합을 통해 사용자는 포그라운드 또는 화면에 표시되지 않는 경우에도 앱의 이점을 누릴 수 있습니다. 앱이 Windows와 잘 통합되면 다른 앱과 사용자의 워크플로의 일부가 되며 원활한 환경을 만드는 데 도움이 됩니다.

토스트 알림

알림 메시지는 사용자 화면 하단과 알림 센터에 표시되는 Windows 알림입니다.

  • 개인 설정, 실행 가능하도록 설정 및 알림이 사용자에게 유용한지 확인합니다. 사용자가 알고 싶은 것이 아니라 원하는 것을 사용자에게 제공합니다.
  • 시끄러운 알림을 피합니다. 앱에서 중단이 너무 많으면 사용자가 앱에 대해 이 중요한 통신 채널을 끄게 됩니다.
  • 사용자의 의도에 대응합니다. 알림을 선택하면 알림 컨텍스트에서 앱이 시작되어야 합니다. 이 지침의 유일한 예외는 사용자가 빠른 회신처럼 백그라운드 작업에 연결된 알림의 단추를 선택하는 경우입니다.
  • 일관적인 알림 센터 환경을 제공합니다. 이전 알림을 지워 알림 센터를 깔끔하게 유지합니다.

알림 메시지에 대한 자세한 내용은 알림 디자인 기본 사항을 참조하세요.

성능 및 기본 사항

Windows 사용자는 Windows 앱의 뛰어난 성능과 기본 사항을 기대합니다. 앱을 디자인하고 빌드할 때는 메모리 사용량, 전력 소비량, 응답성, 안정성 및 장기 지속 가능성에 미치는 영향을 최적화해야 합니다. 애플리케이션의 기본 사항 및 성능을 테스트하고 측정하는 시간을 할당하면 사용자가 일류 환경을 갖출 수 있습니다.

이 섹션의 모범 사례를 따르면 이러한 기준에서 고객의 기대치를 충족하는 데 도움이 됩니다.

자세한 내용은 성능 및 기본 사항 개요를 참조하세요. 이 문서에서는 "애플리케이션 성능이란 무엇이며 왜 중요한가요?" 및 "Windows 애플리케이션 성능을 측정하는 데 사용할 수 있는 도구는 무엇인가요?"와 같은 질문에 답변합니다. 또한 사례 연구, 관련 블로그, 지원 커뮤니티 및 애플리케이션이 지구에 미치는 영향을 줄여 성능 엔지니어링이 지속 가능성과 어떻게 교차하는지에 대한 정보와 연결됩니다.

운영 체제 및 하드웨어 최적화

여러 가지 방법으로 Windows 앱을 빌드, 패키지 및 제공할 수 있습니다. 이 섹션의 모범 사례는 하드웨어 구성에서 애플리케이션의 이러한 측면을 최적화하는 데 도움이 됩니다.

MSIX 앱 연결 및 Azure 가상 데스크톱

엔터프라이즈 환경에서 앱을 가장 잘 실행하려면 MSIX 앱 연결에 대한 지원을 추가합니다.

MSIX 앱 연결을 통해 물리적 머신과 가상 머신 모두에 MSIX 애플리케이션을 제공할 수 있습니다. 클라우드에서 실행되는 데스크톱 및 앱 가상화 서비스인 AVD(Azure Virtual Desktop)를 위해 특별히 설계되었습니다. MSIX 앱 연결을 AVD와 함께 사용하면 사용자의 로그인 시간을 개선하는 데 도움이 되며, 기업의 인프라 비용을 줄일 수 있습니다.

Arm 기반 Windows

Windows는 Arm 디바이스에서 실행할 수 있습니다. Arm PC는 배터리 수명 연장과 모바일 데이터 네트워크에 대한 통합 지원의 이점을 제공합니다. 이러한 PC는 뛰어난 애플리케이션 호환성을 제공하며 기존 x86x64 애플리케이션을 수정하지 않고 실행할 수 있습니다.

최상의 성능을 위해 앱이 전체 Arm 버전을 빌드하거나 네이티브 성능에서 가장 도움이 되는 코드베이스 부분을 최적화하여 에너지 효율적인 Arm 프로세서 아키텍처를 최대한 활용할 수 있도록 합니다. 이러한 기술에 대한 자세한 내용은 Windows on ArmWindows 11 앱용 Arm64EC를 참조하세요.

푸시 알림

푸시 알림을 사용하면 성능 최적화 방식으로 클라우드 서비스에서 앱으로 정보를 보낼 수 있습니다. 푸시 알림에는 클라우드 서비스에서 보낸 원시 알림, 배지 알림 및 알림 메시지가 포함됩니다.

  • 푸시 알림을 사용하여 항상 실행 상태를 유지하지 않고 앱 또는 클라이언트를 절전 모드 해제하여 사용자의 디바이스에서 성능을 최적화합니다.
  • 알림 채널을 사용하여 광고를 보내지 마세요.
  • 헤더 존중 retry-after – 이 방법은 서비스를 보호하고 알림 배달 성공을 보장합니다.
  • 시스템에서 만료되거나 해지된 채널을 제거합니다. WNS(Windows 알림 서비스)는 만료되거나 해지된 채널에 대한 요청을 처리하지 않습니다.
  • WNS에 대한 요청이 갑자기 대량으로 발생하지 않도록 합니다. 이 패턴은 제한된 응답으로 이어질 수 있습니다.
  • MS-CV 헤더를 활용합니다. 이 헤더는 엔드 투 엔드 추적 기능 및 진단에 도움이 됩니다.
  • 알림이 작동하지 않을 때를 대비한 백업 메커니즘을 구비합니다.
  • ANH(Azure Notification Hubs)를 사용합니다. ANH를 사용하면 대상 그룹 타겟팅, 알림 예약 및 알림 브로드캐스팅과 같은 참여 기능에 액세스할 수 있습니다. 현재 Windows 전용 개발자인 경우 ANH를 사용하면 나중에 알림 인프라를 다른 플랫폼으로 쉽게 전환할 수 있습니다.

애플리케이션 검색 및 관리

신뢰할 수 있는 설치, 업데이트 및 제거 환경은 일관된 고품질 사용자 환경의 중요한 부분입니다. 다음 모범 사례는 사용자가 검색하고 관리할 때 애플리케이션이 좋은 인상을 남기도록 하는 데 도움이 됩니다.

애플리케이션 검색

  • Microsoft Store에 앱을 나열하면 사용자가 앱을 더 쉽게 검색할 수 있습니다.
  • 여러 채널(예: 웹 사이트 및 Microsoft Store)에서 앱을 호스트하는 경우 모든 채널에서 일관된 애플리케이션 ID 및 업데이트 메커니즘을 사용합니다.
  • 사용자가 더 쉽게 검색할 수 있도록 Microsoft Store를 통해 앱을 배포합니다. Windows 사용자는 Windows 패키지 관리자 WinGet을 통해 스토어 앱에 액세스합니다. Microsoft Store에 앱을 게시하지 않더라도 WinGet 리포지토리를 통해 WinGet에서 앱을 쉽게 검색할 수 있습니다.

설치 및 제거

  • 사용자별 설치를 지원합니다. 이 지원을 사용하면 사용자가 더 쉽게 설치하고 UAC 프롬프트를 방지할 수 있습니다.
  • 애플리케이션 설치 시 오류가 없고, 설치가 투명하며, 파일 관리를 신중하게 해야 합니다. 애플리케이션 설치 시 임시 파일이 남아 있으면 안 됩니다.
  • 가급적이면 앱을 설치할 때 상승된 권한을 요구하거나 운영 체제를 다시 부팅하지 않도록 합니다.
  • 무인 설치를 지원합니다. 이 지원은 엔터프라이즈 환경의 앱 관리 효율성에 중요합니다.
  • 앱이 설치된 > 목록에 나열되어 있는지 확인합니다.
  • MSIX를 사용하여 사용자가 원활한 설치, 업데이트 및 제거 환경을 경험할 수 있도록 하는 것이 좋습니다. MSIX는 앱 이진 파일 및 데이터를 자동으로 제거합니다. 패키지된 앱이 파일 및 레지스트리 항목을 처리하는 방법에 대한 자세한 내용은 Windows에서 패키지된 데스크톱 앱을 실행하는 방법 이해를 참조하세요.
  • 패키지되지 않은 앱의 경우 사용자가 설정의 설치> 앱 목록을 통해 애플리케이션 쉽게 제거할 수 있는지 확인합니다. 사용자가 애플리케이션을 제거할 때 시작 메뉴 항목, 파일, 디렉터리, 레지스트리 항목 및 임시 파일도 제거되었는지 확인합니다. 사용자가 애플리케이션을 제거할 때 사용자에게 데이터 보존 옵션을 제공하는 것이 좋습니다.
  • 앱을 제거한 후 모든 바이너리와 애플리케이션 데이터가 제거되었는지 확인하십시오. 사용자가 만든 콘텐츠는 앱이 제거된 후에도 사용자가 유지할 수 있는 위치와 같은 Documents위치에 저장되어야 합니다.
  • 다시 부팅해야 할 수 있는 시스템 이진 파일을 설치하거나 업데이트하지 마십시오.
  • RestartManager와 통합하여 OS 업데이트 간에 상태를 저장하고 복원합니다.

업데이트

  • 사용자에게 편리한 경우 앱을 다시 시작할 수 있는 업데이트 메커니즘을 지원합니다. Windows 앱 SDK 다시 시작 API를 사용하여 WinUI 3 앱의 앱 동작을 관리하는 것이 좋습니다.
  • 업데이트 메커니즘이 업데이트해야 하는 변경된 필수 구성 요소만 다운로드하도록 합니다. 이 방법은 필요한 네트워크 대역폭을 최소화합니다.
  • 앱을 업데이트하고 복구하는 방법을 제공합니다. 업데이트 복구를 자동으로 처리하는 MSIX를 사용하는 것이 좋습니다. 자세한 내용은 앱 자동 업데이트 및 복구를 참조하세요.
  • 푸시 알림 기반 업데이트를 사용하거나 앱 시작 시 또는 다시 시작할 때 사용 가능한 업데이트를 확인하는 것이 좋습니다.

추가 리소스

접근성

액세스 가능한 Windows 애플리케이션은 가능한 한 많은 사용자에 대해 풍부하고 포괄적인 환경을 지원합니다 . 이러한 포용성은 장애가 있는 사용자(임시 및 영구), 개인 선호도, 특정 작업 스타일 또는 상황 제약 조건(예: 공유 작업 공간, 운전, 요리, 눈부심 등)으로 확장됩니다.

사실, 세계보건기구는 장애를 개인적 특징이 아니라 사람과 주변의 물리적/디지털 세계 사이의 어긋난 상호 작용으로 정의합니다.

사용자와 비즈니스 모두에 중요한 접근성

접근성은 책임

전 세계적으로 10억 명이 넘는 사람들이 어떤 형태로든 장애를 안고 있습니다. 그러나 10명 중 1명만이 우리 경제와 사회에 완전히 참여하는 데 필요한 보조 기술에 접근할 수 있습니다. 일반적으로 장애가 있는 사람들의 실업률은 장애가 없는 사람들의 두 배입니다. 그리고 상황, 임시 또는 영구적 인 장애는 언제든지 우리 중 어느에게나 영향을 미칠 수 있습니다.

접근성은 기회

Microsoft 접근성 방식 데이터시트에 따르면, 직장에서 장애가 있는 사용자를 고용하고 지원하는 모범 사례를 수용하는 포용적 조직은 다른 조직에 비해 성과가 높고 우수한 인재를 유치 및 유지하는 데 더 뛰어납니다. 전 세계 인력의 75% 밀레니엄 세대는 일반적으로 자신의 가치를 반영하는 고용주를 선택합니다. 이 목록의 맨 위에는 다양성과 포용성이 있습니다.

접근성 통합

Windows 앱에 접근성을 통합하면 사용자 참여를 극대화하고, 제품 만족도를 높이고, 제품 충성도를 높일 수 있습니다. 액세스 가능한 환경을 사전에 설계하고 구현하면 일반적으로 장기적으로 개발 및 유지 관리 비용이 줄어듭니다.

액세스 가능한 Windows 앱을 빌드하는 방법에 대한 자세한 지침은 Windows 11 및 Windows 10의 접근성을 참조하세요.

접근성 테스트

Accessibility Insights는 개발자가 앱 및 서비스의 접근성을 테스트할 수 있는 강력한 도구 모음입니다. 다음 도구를 사용하여 접근성을 테스트합니다.

  1. Windows용 Accessibility Insights에서 검사. 접근성 트리를 검사하여 레이블의 지시사항, 지정된 잘못된 역할 및 기타 문제와 같은 쉽게 해결할 수 있는 문제를 찾습니다.
  2. Accessibility Insights for Windows의 이벤트 모니터링 - Accessibility Insights. 이벤트 모니터링에 대한 자세한 내용은 UI 자동화 컨트롤 형식 지원을 참조하세요.
  3. PR 또는 CI/CD에서 Accessibility Insights 자동 검사를 실행합니다. 자세한 내용은 axe-pipelines-samples를 참조하세요.
  4. 모든 버그가 접근성에 직접적인 영향을 주므로 찾은 모든 버그를 수정합니다.

보안 및 개인 정보

안전하지 않은 애플리케이션은 공격자가 악의적인 활동을 수행할 수 있는 진입점이 될 수 있습니다. 앱에 보안 버그가 없더라도 악의적인 행위자가 앱을 사용하여 피싱 및 보안 및 개인 정보 보호 경계를 위반하는 기타 형태의 소셜 엔지니어링을 통해 공격을 시작할 수 있습니다. 이 섹션의 모범 사례는 보안 및 사용자 개인 정보 보호와 관련된 위험을 완화하는 데 도움이 됩니다.

보안 지침

  • 개발의 보안 개발 수명 주기를 따릅니다.
    • 위협 모델링은 보안 결함을 방지하는 데 도움이 될 수 있습니다.
    • 보안 라이브러리, 언어 및 도구를 사용하면 구현 결함이 최소화됩니다.
    • 보안 기본값은 사용자 오류로 인한 보안 문제를 방지할 수 있습니다.
  • 앱을 설치할 때 관리 권한을 요구하지 마세요.
    • 앱에서 관리 설치와 사용자별 설치를 모두 지원하는 것이 가장 좋습니다.
    • MSIX 패키징을 사용하는 것은 이 목표를 달성하는 한 가지 방법입니다.
  • 앱을 실행할 때 관리 권한을 요구하지 마세요.
  • 특히 신뢰할 수 없는 데이터 구문 분석과 같은 위험한 코드 경로의 경우 C#, JavaScript 또는 Rust와 같은 메모리 안전이 보장된 언어를 사용합니다.
  • 컴파일러 및 도구 집합에서 제공하는 모든 보안 완화 조치를 사용합니다(Visual C++은 Microsoft Visual C++의 보안 기능 참조).
  • 암호화 및 기타 보안에 민감한 코드에는 항상 본인이 선택한 언어 또는 프레임워크의 표준 라이브러리를 사용합니다. 직접 빌드하지 마세요.
  • 설치 관리자뿐만 아니라 제거자(있는 경우)도 애플리케이션의 모든 구성 요소에 디지털 서명합니다. 또한 앱을 구성하는 모든 EXE, DLL 및 기타 실행 파일에 서명합니다.
    • 디지털 서명을 사용하면 사용자가 앱의 신뢰성을 확인하고 엔터프라이즈 관리자가 Windows Defender 애플리케이션 제어를 사용하여 디바이스를 보호할 수 있습니다.
    • MSIX 패키징을 사용하는 것은 이 목표를 달성하는 한 가지 방법입니다.
  • 모든 네트워크 통신이 SSL과 같은 보안 전송을 통해 이루어지도록 합니다.
  • 공격자가 강제로 작업을 수행하도록 강요한 경우에도 사용자가 실수로 유해한 작업을 수행하지 못하도록 보호하는 데 도움이 되는 가드레일 또는 기타 완화를 제공합니다.
    • 간단한 "정말 X하시겠습니까? 사용자가 "예"를 클릭하도록 조건부가 지정되므로 예/아니요" 대화 상자는 일반적으로 유효하지 않습니다.

대부분의 최신 앱은 다양한 이유로 개인 데이터를 포함하여 많은 양의 데이터를 수집하고 사용합니다. 원격 분석, 제품 개선 및 수익 창출은 데이터를 사용하는 대표적인 이유이지만, 사용자와 규제 기관은 이러한 관행의 개인 정보 보호 영향에 점점 민감해지고 있습니다. 이들은 앱에서 수집하고 사용하는 데이터에 대한 투명성과 제어를 기대합니다. 다음 팁을 사용하여 사용자의 개인 정보 요구 사항을 충족할 수 있습니다.

개인 정보 지침

  • 앱이 정확한 개인정보처리방침을 제공하도록 하십시오. 이상적으로는 일반 사용자(사용자)를 위해 작성된 요약 문서와 긴 형식의 법률 정책(변호사용으로 작성됨)을 모두 제공하는 것이 좋습니다.
  • 앱을 사용할 수 있는 시장에서 개인 정보 보호 규정을 숙지합니다. 앱이 공개, 사용 권한, 삭제 요청 및 기타 개인 정보 보호 문제에 대한 요구 사항을 충족하거나 초과하는지 확인합니다.
  • 앱의 경험을 완료하는 데 필요한 최소한의 개인 데이터를 수집하십시오.
    • "만의 경우" 데이터를 수집하지 마세요. 고객의 환경을 개선하거나 수익 창출을 용이하게 하는 등 모든 데이터를 수집하는 타당한 이유가 있습니다.
  • 개인 데이터를 수집하고 저장하기 전에 항상 사용자의 동의를 얻습니다. 사용자에게 나중에 결정을 되돌릴 수 있는 쉬운 방법을 제공합니다. 동의 대화 상자에서 "예" 단추를 "아니요" 단추보다 크거나 더 두드러지게 만드는 것과 같은 "다크 패턴"을 사용하지 마세요.
    • 지정된 종류의 데이터에 필요한 특정 공개 및 동의를 확인하려면 해당 규정에 문의하세요. 예를 들어 일부 지역에서는 개발자가 저장한 사용자 데이터를 사용자가 보고, 변경하고, 삭제할 수 있습니다.
  • 네트워크를 통해 데이터를 전송해야 하는 경우 항상 TLS를 통해 연결과 같은 보안 연결을 사용합니다.
  • 웹 사이트와 같은 중앙 위치에 개인 데이터를 저장하지 않습니다. 개인 데이터를 저장해야 하는 경우 저장하는 데이터의 양을 최소화하고, 꼭 필요한 기간 동안만 저장하고, 안전하게 암호화되도록 합니다.
  • 사용하는 타사 라이브러리 또는 SDK에도 적절한 개인 정보 취급 방침이 있는지 확인합니다. 이 문제는 단지 SDK를 광고하는 것으로만 제한되지 않습니다. 인터넷에 연결되는 모든 라이브러리는 앱 사용자의 개인 정보에 영향을 미칠 수 있습니다.