다음을 통해 공유


Windows 앱의 반응성 개선

본 가이드는 시작 및 주요 상호 작용의 대기 시간을 최적화하여 Windows 애플리케이션의 반응성 개선에 도움이 됩니다. 신속하고 반응성이 높은 상호 작용(또는 '대기 시간이 짧은 상호 작용')은 더 나은 사용자 환경을 구현합니다. 상호 작용 기대치를 이해하고, 현재 지속 시간을 측정하고, 상호 작용 클래스에 따라 개선 목표를 세우면 사용자 환경과 만족도가 현저히 높아질 수 있습니다.

반응형 동작을 위한 상호 작용 최적화의 단계별 가이드

고객은 애플리케이션 시작, 메뉴 탐색 또는 페이지/콘텐츠 로드 속도가 느리다고 생각할 수 있습니다. 고객들은 빠르고 원활한 경험을 기대하게 되었으며, 이러한 기대치를 더 정확히 이해하기 위한 몇 가지 단계와 지침을 아래에 공유했습니다.

대기 시간 최적화를 위한 기본 단계:

  1. 시나리오를 정의하고 TraceLogging 이벤트를 추가합니다.

    앱 시작, 메뉴 열기, 새 페이지로 이동, 콘텐츠 렌더링 등 사용자가 앱을 실행하는 동안 겪게 되는 주요 상호 작용의 목록을 작성합니다. 이러한 각 상호 작용에 대한 시작 이벤트와 중지 이벤트를 추가하여 측정 및 분석에 활용합니다. Windows용 이벤트 추적(ETW)을 자체적으로 설명하는 형식인 TraceLogging을 추가하는 방법을 자세히 알아보세요.

  2. 상호 작용 클래스를 바탕으로 목표를 설정합니다.

    사용자는 상호 작용 유형에 따라 앱의 성능과 반응성에 서로 다른 기대치를 갖습니다. 예를 든다면 앱이 시작되는 속도와 페이지가 로드되는 속도를 비교합니다. 사용자가 앱에서 주요 상호 작용을 완료하는 데 걸리는 허용 가능한 경과 시간의 범위를 고려합니다. 이 시간은 200밀리초(ms)에서 5초(sec)까지 다양합니다. 다음으로 각 작업에 관련 목표가 있는 상호 작용 클래스 레이블을 할당합니다. 다음은 반응성에 대한 인식 개선을 위해 사용자 인터페이스(UI)를 포함하는 방법 제안과 함께 몇 가지 기본 지침을 소개합니다.

상호 작용 클래스 레이블 사용자 인식 지연 범위 예제 추천 UI
고속 최소한의 인지할 수 있는 지연 100~200밀리초 앱 바를 열고 메뉴를 오른쪽으로 클릭
대화형 적당히 빠름 300 ~500밀리초 앱 종료, 캐시된 검색 결과 표시
일시 중지 신속하지 않지만 응답성 있음 500밀리초~1초 다른 페이지로 이동하고, 일시 중단 상태에서 앱을 다시 시작하고, 웹 검색 결과를 표시합니다. 진입 애니메이션(예: 새 콘텐츠의 유입)을 사용하여 이 시나리오에 소요되는 시간을 가릴 수 있습니다.
Wait 시나리오 작업량으로 인해 빠르지 않음 1~3초 앱 시작 회전/대기 커서로 진행 상황을 기록할 수 있습니다. 이 시나리오에서는 종료 및 진입 애니메이션(예: 이전 페이지 밖으로 내보내기, 새 페이지 안으로 들여오기)을 모두 사용하여 소요 시간을 가릴 수 있습니다.
오래 대기 더 이상 응답 없음 2~5초 대형 앱 시작(확장된 시작 화면 사용), HD 비디오 스트림 시작 '로딩 중인 UI'가 표시되며, 가능한 경우 사용자를 위한 '취소' 옵션이 포함됩니다. 빠른 상호 작용 클래스 내에 로딩 중인 UI를 표시해야 합니다. 로딩 중인 UI에는 백분율이나 남은 시간을 표시할 필요가 없습니다.
종속 오랜 대기 - 불가피하게 길거나 복잡한 시나리오용으로 예약됨 5~10초 시스템 로그인 '로딩 중인 UI' 또는 대화 상자가 표시되며, 가능한 경우 사용자를 위한 '취소' 옵션이 포함됩니다. 빠른 상호 작용 클래스 내에 대화 상자를 표시해야 합니다. 사용자에게 유용한 컨텍스트를 제공할 수 있으면 대화 상자에 남은 시간 또는 백분율을 표시해야 합니다.
장기 실행 오랜 작업 - 사용자가 멀티태스킹(작업 중 다른 작업으로 전환)을 할 가능성이 높음 10~30+초 새로운 기능 또는 업데이트 설치, 대용량 파일 다운로드 멀티태스킹 가능성을 반영하여 UI를 설계해야 합니다. 완료 예상 시간(백분율, 남은 시간 등)을 포함한 진행률 대화 상자를 표시해야 합니다. 또는 UI를 전부 최소화하고, 시나리오가 완료되었을 때만 토스트 알림으로 사용자에게 알려도 됩니다.
  1. 특정한 상호 작용의 정확한 지속 시간을 확인하려면 Windows 성능 분석기(WPA)로 추적을 캡처 및 분석할 수 있습니다.

    • 추적을 캡처하기 전에 작업 관리자를 열어 테스트 장치를 유휴 상태로 만들고, CPU 사용률이 5% 미만인지 확인합니다. 그러면 측정 간섭을 최소화하고 합리적인 크기의 추적을 하게 됩니다. 그러면 측정하려는 상호 작용을 더 효과적으로 분리하는 데 도움이 됩니다.

    • 명령줄(PowerShell 또는 명령 프롬프트)을 관리자 모드에서 열어 추적을 캡처합니다.

    • wpr -start GeneralProfile -filemode 명령을 입력합니다.

    • 앱에서 상호 작용 시나리오를 실행합니다.

    • wpr -stop Trace.etl 명령을 입력합니다.

  2. 추적을 분석하여 개선할 기회를 찾습니다.

    Windows 성능 분석기(WPA)에서 방금 캡처한 추적을 열어 앱에서 지원하는 주된 각 상호 작용의 지속 시간을 분석합니다.

    • WPA에서 추적을 열려면 명령줄에 wpa.exe Trace.etl을(를) 입력합니다.
    • 시스템 활동을 확장하고 드롭다운에서 '일반 이벤트'를 두 번 클릭하여 분석 보기를 엽니다.
    • 애플리케이션과 관련된 이벤트 시리즈를 선택하고 '공급자 이름' 드롭다운을 확장하여 원하는 주요 상호 작용과 관련된 프로세스, 작업 이름 및 이벤트 이름을 찾을 수 있을 때까지 기다립니다. 상호 작용 이벤트의 기간은시간 열과 그래프에 지속 시간, 시작종료 시간이 표시된 상태로 나열됩니다.

    추적 기간이 상호 작용 클래스 목표(예: 500밀리초)를 충족하지 못하는 경우 앱의 주요 스레드(UI 스레드일 가능성이 높음)를 식별하고, CPU 사용량 및 대기 시간의 상위 스택을 살펴봅니다. *분석을 수행할 때 일부 문제는 사용자 고유의 애플리케이션 코드와 관련이 없을 수 있습니다.

    추적 이벤트 기간 분석

추가 리소스