리팩토링 2주차 계획 회의 - Team-HGD/SniffMEET GitHub Wiki
추가하면 좋을 테스크
벤치마킹 툴 만들기
SNMLogger처럼(static한 객체) 시간 측정이 가능한 측정 툴을 직접 만들면 어떨까
- 시간 측정
- ex) SNMLogger.benchMark.start, SNMLogger.benchMark.end
로그를 디버깅 모드일 때만 실행할 수 있도록 제한하기
#if DEBUG #end
Instruments 좀 더 사용해보기
-
Time profiling
시간 기반 sampling 수행
-
System Trace
운영체제에서 무슨일이 일어나는지 볼 수 있음.
스레드 및 virtual memory를 통해 앱 성능 파악
-
File activity
fileSystem 및 disk I/O를 기록하고 분석합니다.
-
Swift Concurrency
-
Logging
통합 로깅 시스템의 로그 및 표지판(?) 시각화.
-
Zombie
일반적인 메모리 사용량을 측정
-
SceneKit Application
-
Activity Monitor
시스템과 프로세스에 대한 CPU, Memory, disk, network 사용량 통계
-
Allocations
virtual memory 와 heap을 추적하고 객체에 대한 retain/release 기록 제공(선택적)
-
App Launch
스레드 상태를 추적하여 애플리케이션 성능 조정
목표를 수치적으로 세우기
- Instruments 코드를 삽입해가지고 찍어볼수 있음
- 위에서 만든 벤치마크랑 같이 써서 좀 더 측정을 확실하게 해보자!!
- 오프라인으로 진행하며 다같이 확인하자
문서 작성
기능이 전처럼 동작하는 것을 보장 → 같이 방식을 정해보면 좋을 것 같다
리팩토링 대상이 코드만 포함되는 것은 아니어보인다 → 중요도 있는 문서도 함께 개선
2주차 목표
- 서비스에서 성능과 사용성에 영향을 주는 부분에 대해 다방면으로 모니터링을 수행한다.
- 구체적인 개선 목표와 해결 방식을 정한 후 본격적인 개선 작업에 들어간다.
- 리팩토링에 관련된 CS 지식과 Instruments를 학습한다.
2주차 계획
- 월-화
- 측정 전에 필요한 부분 구현 (벤치마크 툴)
- Instruments 사용 전에
- 수 오프라인 1회 광주
- 기존 측정 결과 코드 삽입 통해 더 자세하게 측정하고 개선 목표 수치화하기
- 사용해보지 않았던 Instruments 추가 시도해 더 다양하게 측정해보기
- NI + MPC Impacts 측정하고 개선 목표 정하기
- 목
- 회원가입 로직 병렬 처리
- 이미지 다운 샘플링 적용
- 메이트 리스트 페이지내이션 적용