성능을 숫자로 다루는 사이클

성능을 숫자로 다루는 사이클 A workflow diagram generated by Archify. 01 / 반복하는 다섯 단계 02 / 단계별 도구 EX / 측정을 건너뛰면 심고 모은다 찾아서 고친다 확인한다 계속 도는 구간 계측 · 측정 지점 심기 · 반복하는 다섯 단계 › 심고 모은다 계측 측정 지점 심기 수집 · 기록 쌓기 · 반복하는 다섯 단계 › 계속 도는 구간 › 심고 모은다 수집 기록 쌓기 분석 · p50 · p90 · p99 · 반복하는 다섯 단계 › 계속 도는 구간 › 찾아서 고친다 · 평균 말고 분포 분석 p50 · p90 · p99 평균 말고 분포 개선 · 지목된 곳만 수정 · 반복하는 다섯 단계 › 계속 도는 구간 › 찾아서 고친다 개선 지목된 곳만 수정 검증 · 전후 비교 · 반복하는 다섯 단계 › 계속 도는 구간 › 확인한다 검증 전후 비교 일회성 측정 · 개발 중 확인 · 단계별 도구 › 심고 모은다 일회성 측정 개발 중 확인 실사용자 지표 · 기기 · 회선이 제각각 · 단계별 도구 › 심고 모은다 실사용자 지표 기기 · 회선이 제각각 시스템 트레이스 · 시간축에서 원인 찾기 · 단계별 도구 › 찾아서 고친다 시스템 트레이스 시간축에서 원인 찾기 추측으로 결정 · 숫자 없이 고르기 · 측정을 건너뛰면 › 심고 모은다 추측으로 결정 숫자 없이 고르기 엉뚱한 곳 수정 · 체감 변화 없음 · 측정을 건너뛰면 › 찾아서 고친다 엉뚱한 곳 수정 체감 변화 없음 병목 지목 회귀 감시 계측을 빼면 프로덕션 개발 중 원인 추적 Legend User UI Agent logic Policy Tool action Context / trace Cloud service External system

감은 자주 틀린다

  • • 이미지 디코딩인 줄 알았는데 앞의 DB 쿼리인 경우가 흔하다
  • • 어디를 고칠지와 고쳐졌는지를 둘 다 추측하게 된다
  • • 숫자가 있으면 두 추측이 모두 사라진다

평균은 꼬리를 숨긴다

  • • 평균 800ms는 10%가 5초를 기다린다는 사실을 가린다
  • • 느린 쪽에 있는 사용자가 앱을 지운다
  • • 백분위로 봐야 그 사용자가 보인다

회귀는 조용히 온다

  • • 기능 하나마다 50ms씩 늘어난다
  • • 릴리스 하나만 보면 눈치채지 못한다
  • • 계속 기록해야 꺾이는 지점이 보인다