Communitygithub.com

모바일 성능 및 신뢰성

Flutter 모바일 앱의 시작, 프레임 렌더링, 스크롤, 애니메이션, 메모리, 배터리, 네트워크 성능 및 서비스 신뢰성을 반복 가능한 증거 기반으로 측정하고 개선합니다. 느리거나 버벅거리는 앱, 성능 예산, 프로파일링, 프로덕션 신뢰성에 사용하세요.

모바일 성능 및 신뢰성란 무엇인가요?

이 스킬은 Flutter 모바일 애플리케이션의 성능 및 신뢰성 문제를 체계적으로 식별, 측정 및 개선하기 위한 종합적인 프레임워크를 제공합니다. 주요 기능으로는 성능 예산 설정, 프로파일링 계획 수립, 시작/프레임/메모리/네트워크 측정, 병목 진단, 신뢰성 지표 분석, 성능 회귀 검사, 증거 기반 개선 조언이 포함됩니다. 실제 물리적 기기에서 Flutter 프로필 모드로 측정해야 하며, 디버그/에뮬레이터 결과는 릴리스 성능 증거로 인정되지 않습니다. UI 및 래스터 프레임 타이밍을 별도로 검사하고, 디스플레이 주사율에 따른 프레임 예산을 적용하며, P50/P95 백분위수를 보고합니다. 최적화는 측정된 원인을 해결하는 가장 작은 변경부터 시작하며, 회귀 측정/테스트를 추가하고, 동일 조건에서 전후 결과를 비교합니다. 또한 프로덕션 크리티컬 경로에 대해 Operations와 협력하여 SLI/SLO를 정의하고, 충돌/ANR 비율, 시작 회귀, 백엔드 의존성, 타임아웃, 재시도 폭풍 등을 조사합니다. 모든 주요 성능 요구사항은 반복 가능한 시나리오, 환경, 메트릭, 백분위수, 임계값, 기준선을 가져야 하며, 최적화 결과는 전후 증거로 뒷받침되어야 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ParkersYourDad/flutter-engineering-skills/tree/HEAD/skills/mobile-performance-reliability

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

모바일 성능 및 신뢰성은(는) 무엇을 하나요?

공유 표준

리포지토리 수준의 다음 문서를 단일 진실 공급원으로 사용하세요. 이 스킬에 해당 체크리스트를 복사하거나 충돌하는 로컬 변형을 생성하지 마십시오:

미션

측정된 병목 지점을 찾고, 조기 최적화나 불필요한 아키텍처 변경 없이 사용자에게 보이는 결과를 개선합니다.

담당

성능 예산, 프로파일링 계획, 시작/프레임/메모리/네트워크 측정, 병목 진단, 신뢰성 지표, 성능 회귀 검사, 증거 기반 개선 조언.

담당하지 않음

시각적 방향, 제품 요구사항 변경, 증거 없는 광범위한 리팩터링, 디버그/에뮬레이터 측정 결과를 근거로 한 주장.

측정 프로토콜

  • 물리적 기기에서 Flutter 프로필 모드로 프로파일링하고, 릴리스 스모크 및 시작 동작은 릴리스 빌드를 사용합니다. 디버그 및 에뮬레이터 결과는 릴리스 성능 증거가 아닙니다.
  • 가장 낮은 지원 기기부터 시작하고, 관련이 있는 경우 높은 주사율 기기를 포함합니다.
  • 기기, OS, 주사율, Flutter/Dart 버전, 빌드 모드, 시나리오, 데이터셋 크기, 네트워크 상태, 반복 횟수, 도구를 기록합니다.
  • UI 및 래스터 프레임 타이밍을 별도로 검사합니다. 프레임 예산은 디스플레이 주사율에서 파생되며, 모든 기기에 60Hz 임계값 하나를 강요하지 마십시오.
  • 샘플 크기가 충분하면 P50/P95를 보고합니다. 콜드 스타트와 웜 스타트, 첫 사용 애니메이션과 워밍된 애니메이션, 로컬 렌더링과 네트워크 대기를 구분합니다.
  • 사용자 여정을 측정합니다: 첫 상호작용, 주요 탐색, 스크롤, 검색/타이핑, 미디어, 시트, 고비용 전환.
  • 웜업 후 및 반복 여정 후 메모리를 측정하고, 일시적 할당 및 정상 가비지 수집을 유지된 객체 누수와 구분합니다.
  • 페이로드 크기, 요청 수, 지연 시간, 재시도, 취소, 캐시 히트/미스, 느린 네트워크 동작을 측정합니다.
  • 앱이 폴링, 위치, 미디어, 빈번한 동기화 또는 실시간 스트림을 사용하는 경우에만 에너지/백그라운드 작업을 모니터링합니다.

최적화 순서

  1. 제어된 시나리오에서 문제를 재현합니다.
  2. 기준선을 캡처하고 병목이 빌드/레이아웃, 래스터/GPU, Dart CPU, 네이티브/플러그인, 이미지 디코드, 메모리 압력, I/O, 또는 네트워크인지 식별합니다.
  3. 측정된 원인을 해결하는 가장 작은 변경을 선택합니다.
  4. 회귀 측정/테스트를 추가하거나 업데이트합니다.
  5. 동일 조건에서 전후를 비교합니다.
  6. 정확성, 접근성, 메모리, 배터리 트레이드오프를 확인합니다.

피해야 할 것

조기 격리, 과도한 RepaintBoundary, 무제한 캐시, 전체 데이터셋 로딩, 불필요한 폴링, 고비용 opacity/clipping/saveLayer 효과, 광범위한 리빌드, 빌드 내 동기 작업, 증거 없는 렌더러 플래그. 프로파일링이 기기별 문제를 입증하고 결정이 문서화되지 않는 한 Flutter 렌더러 기본값을 유지합니다.

신뢰성

프로덕션 크리티컬 여정의 경우 Operations와 협력하여 완료, 지연 시간, 가용성, 신선도에 대한 SLI/SLO를 정의합니다. 충돌/ANR 비율, 시작 회귀, 백엔드 의존성, 타임아웃, 재시도 폭풍, 앱 일시 중지/재개 또는 연결 변경 후 복구를 조사합니다.

승인 게이트

모든 중요한 성능 요구사항은 반복 가능한 시나리오, 환경, 메트릭, 백분위수, 임계값, 기준선을 가져야 합니다. 발견 사항은 원인을 식별하고, 주장된 최적화는 전후 증거를 포함합니다. 측정되지 않은 하드웨어/플랫폼 동작은 "확인되지 않음"입니다.

관련 스킬