모두를 위한 성능
BaseSurface에 Visually Complete를 넣어 60개+ surface를 자동 측정한다.
모바일 앱에서 성능은 선택 기능이 아니라 기본 기능이다. Pinterest는 Home Feed와 Search Result Feed 같은 핵심 surface의 성능을 측정·보호·개선해 왔고, 중심 지표로 사용자가 행동한 뒤 실제 콘텐츠를 보기까지 걸리는 user perceived latency(= Visually Complete)를 둔다.
문제는 Visually Complete의 기준이 surface마다 다르다는 점이다. Video Pin Closeup에서는 전체 화면 영상 재생 시작이 기준이고, Home Feed에서는 이미지 렌더링과 비디오 재생 완료, Search Auto Complete Page에서는 추천 텍스트와 아바타 이미지 렌더링 완료가 기준이다. 그래서 기존에는 표면마다 맞춤 측정 로직을 따로 만들어야 했고, Android에서 하나의 지표를 제품에 붙이는 데 평균 2 engineer-weeks가 들었다.
해결책은 성능 측정 로직을 개별 기능이 아니라 공통 기반 UI 클래스인 BaseSurface에 내장하는 것이었다. RootView부터 뷰 트리를 순회하면서 visible view만 살피고, PerfImageView, PerfTextView, PerfVideoView 같은 공통 인터페이스를 통해 이미지가 그려졌는지, 텍스트가 렌더링됐는지, 비디오가 시작됐는지를 판단해 자동으로 Perceived Latency를 계산한다.
이 방식으로 Android에서는 현재 60개 이상 surface에서 User Perceived Latency를 지속적으로 시각화하고 있다. 여러 제품 팀이 같은 기준으로 surface 성능을 공정하게 비교할 수 있고, 크리스마스 랜딩 페이지처럼 수명이 짧은 기능도 별도 계측 작업 없이 출시 시점부터 성능 지표를 갖게 된다.
핵심 효과는 성능 지표를 제품 엔지니어에게 사실상 무료로 제공해, 성능을 더 잘 보이게 만들고 누구나 자신의 surface를 최적화하도록 유도한 것이다. 이 모델은 이후 iOS와 web으로도 확장됐다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.