리팩토링 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 측정하고 개선 목표 정하기
    • 회원가입 로직 병렬 처리
    • 이미지 다운 샘플링 적용
    • 메이트 리스트 페이지내이션 적용