아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
핀터레스트 favicon핀터레스트

핀터레스트(Pinterest), 안드로이드(Android) 앱 성능 측정 자동화 시스템 구축

by DD
2026-04-08
3개월 전
조회수 26

핀터레스트(Pinterest)는 사용자 체감 지연 시간(User Perceived Latency) 측정을 위해 맞춤형 측정 로직(Customized Measurement Logic)을 각 UI 표면에 적용해야 하는 문제에 직면함

Base UI 클래스(Base UI Class)에 Visually Complete 로직을 통합하여 모든 UI 표면의 지연 시간을 자동 측정하는 시스템 구축

PerfImageView, PerfTextView, PerfVideoView 등 공통 미디어 뷰 인터페이스(Common Media View Interfaces)를 정의하고, View Tree 순회(View Tree Traversal)를 통해 렌더링 상태를 판단

안드로이드(Android)에서 성공적으로 도입 후 iOS 및 웹 플랫폼으로 확장하여 전반적인 성능 가시성(Performance Visibility) 확보 및 개선을 유도

사용자 체감 지연 시간(User Perceived Latency) 측정의 어려움

본문에 따르면 사용자 체감 지연 시간(User Perceived Latency)은 각 UI 표면(Surface)마다 Visually Complete의 정의가 달라, 맞춤형 측정 로직(Customized Measurement Logic) 구현이 불가피했다.

문제점: 새로운 UI 표면(Surface)이 추가될 때마다 엔지니어(Engineer)들은 별도의 측정 로직을 구현해야 했고, 이는 개발 생산성 저하(Reduced Development Productivity)로 이어짐

해결책: Base UI 클래스(Base UI Class)에 Visually Complete 로직을 통합하여, 모든 UI 표면에서 일관된 성능 측정 가능

결과: 새로운 기능 개발 시에도 별도의 측정 로직 구현 없이 가능

자동으로 성능 지표(Performance Metrics) 확보

뷰 트리(View Tree) 순회를 통한 렌더링 상태 판단

핀터레스트(Pinterest)는 뷰 트리(View Tree)를 순회하며 PerfImageView, PerfTextView, PerfVideoView 등 공통 미디어 뷰 인터페이스(Common Media View Interfaces)의 렌더링 상태를 판단한다.

PerfImageView, PerfTextView, PerfVideoView: isDrawn(), isVideoLoadStarted() 등 렌더링 상태를 보고하는 메서드(Method) 포함

RootView: BaseSurface 레벨에서 RootView에 접근하여 가시적인 뷰(Visible View)들을 순회

판단 기준: 모든 PerfImageView, PerfTextView 인스턴스가 그려졌는지, PerfVideoView의 비디오 로드가 시작되었는지 여부

이러한 방식을 통해 각 UI 표면의 Visually Complete 시점(Visually Complete Point)을 정확하게 파악하고, 사용자 체감 지연 시간(User Perceived Latency)을 측정한다.

안드로이드(Android) 플랫폼에서의 실제 적용 사례

본 시스템은 안드로이드(Android) 플랫폼에서 60개 이상의 UI 표면(Surface)에 적용되어 실시간 사용자 체감 지연 시간(User Perceived Latency)을 시각화하고 있다.

효과: 단기적으로 사용되는 기능(예: 크리스마스 랜딩 페이지)의 지연 시간(Latency) 측정 가능

장점: 모든 UI 표면의 성능을 동일한 기준으로 비교 분석 가능

결과: 제품 개발팀(Product Team)의 긍정적인 반응을 얻었으며, 각 표면의 성능 개선을 유도

이러한 성공적인 사례를 바탕으로 iOS 및 웹 플랫폼으로 확장하여, 전반적인 성능 관리(Overall Performance Management)를 강화했다.

성능 측정 자동화 시스템의 확장성

핀터레스트(Pinterest)는 안드로이드(Android)에서 성공적인 시스템 구축 후, iOS 및 웹 플랫폼으로의 확장을 통해 다양한 환경에서의 성능 측정(Performance Measurement)을 지원한다.

iOS: 안드로이드(Android)와 유사한 방식으로 성능 측정 자동화 시스템(Performance Measurement Automation System) 구축

웹: 웹 환경에 맞는 측정 방식 도입

기대 효과: 모든 플랫폼에서 일관된 성능 지표(Performance Metrics)를 확보하고, 개발 생산성(Development Productivity) 향상 및 사용자 경험(User Experience) 개선

결과적으로, 핀터레스트(Pinterest)는 성능 측정 자동화를 통해 지속적인 성능 개선(Continuous Performance Improvement)을 추구한다.

Performance for Everyone
중급
아키텍처
Android
Mobile
핀터레스트 favicon핀터레스트
중급
아키텍처
Android
Mobile

관련 추천 글

깃허브 모바일(GitHub Mobile) 안드로이드(Android) 네비게이션 개선

깃헙 로고

GitHub Mobile, Copilot 세션 필터/정렬 기능 강화

깃헙 로고

Android 17, 지능형 시스템으로의 진화 시작!

프로덕트 헌트 로고
원문 읽기
원문 읽기

관련 추천 글

깃허브 모바일(GitHub Mobile) 안드로이드(Android) 네비게이션 개선

깃헙 로고

GitHub Mobile, Copilot 세션 필터/정렬 기능 강화

깃헙 로고

Android 17, 지능형 시스템으로의 진화 시작!

프로덕트 헌트 로고

GitHub Mobile, 이슈 관리 효율성을 높이다!

깃헙 로고

Docker 컨테이너로 Android 에뮬레이터 실행

깃헙 트랜딩 로고

GitHub Mobile에서 Copilot으로 코드 수정이 더 쉬워졌어요!

깃헙 로고

댓글 0

첫 번째 댓글을 남겨보세요!