Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- ios
- Xcode
- Refactoring
- 스위프트
- HIG
- RxCocoa
- swiftUI
- 클린 코드
- tableView
- Observable
- Human interface guide
- swift documentation
- UITextView
- 애니메이션
- ribs
- SWIFT
- uiscrollview
- clean architecture
- uitableview
- Protocol
- combine
- scrollview
- rxswift
- MVVM
- Clean Code
- 리팩토링
- collectionview
- map
- 리펙토링
- UICollectionView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] 최적화 - 성능 모니터링 시스템 구축 사례 XCMetrics (스포티파이, XCMetrics 오픈소스) 본문
최적화하기
[iOS - swift] 최적화 - 성능 모니터링 시스템 구축 사례 XCMetrics (스포티파이, XCMetrics 오픈소스)
jake-kim 2025. 10. 22. 01:06XCMetrics 오픈소스

- 오픈소스
- github: https://github.com/spotify/XCMetrics
- 스포티파이가 만든 오픈소스이며, 성능에 관해 실시간으로 모니터링 할 수 있는 시스템
- xcactivitylog 형식으로 저장된 Xcode 및 xcodebuild 로그를 파싱할 수 있는 도구인 XCLogParser를 기반으로 구축
- Spotify iOS 앱에서 약 100만 개의 빌드와 100억 개 이상의 단계를 수집했고, 이를 통해 프로젝트 구조 및 아키텍처와 관련하여 중요하고 정보에 기반한 결정을 내릴 수 있음
- 이점
- xcactivitylog 파일에서 데이터를 추출하여 빌드 시간, 경고, 오류 및 기타 메타데이터를 원하는 방식으로 볼 수 있음
- 정렬, 검색이 가능하여, 어떤 부분이 빌드 시간이 오래걸리고 언제부터 문제가 있었는지 파악이 가능
- xcactivitylog 파일에서 데이터를 추출하여 빌드 시간, 경고, 오류 및 기타 메타데이터를 원하는 방식으로 볼 수 있음

XCMetrics의 원리
- Xcode는 테스트, 프로덕션 환경 모두 xcodebuild는 xcactivitylog라는 로그 파일을 생성함
- xcactivitylog라는 로그 파일을 보면, 경고, 오류, 빌드 시간 등 유용한 성능에 관한 정보를 얻을 수 있음
XCMetrics 구조
- 백엔드쪽은 Swift로 작성되어있고, multipart request를 통해 메타데이터를 첨부
- 데이터베이스는 ProgresSQL이 사용되어 있으며, 데이터가 날짜별로 분기되어있음

스포티파이와 XCMetrics
- 스포티파이는 아래 사진과 같이 코드베이스와 상태를 모니터링하기 위해 매일 사용되는 데이터 파이프라인과 대시보드가 존재
- XCMetrics를 통해 로그를 파악하면서 프로젝트 구조에 대해서 많은 개선을 시도함
- 빌드 숫자, 코드 커버리지, 통계, 용량, warnings, errors 등 파악에 용이

* 참고
'최적화하기' 카테고리의 다른 글
Comments