[ 성능 테스트 ] 1. 성능 목표 설정
오늘은 소프트웨어 성능 목표 설정 시 빼놓을 수 없는 핵심 개념, “목표 지표(KPI, Key Performance Indicator)”에 대해 이야기한다.
성능 목표를 수립하는 과정에서 ‘목표 지표’는 나침반과 같다. 방향성을 잡아주고, 제대로 가고 있는지 검증할 수 있게 만들어준다. 그런데 막상 ‘목표 지표’가 무엇인지, 어떻게 설정해야 하는지 헷갈리는 경우가 많다. 나 역시 초반에 이 부분에서 한참 고민했던 기억이 난다.
목표 지표란 무엇인가?
목표 지표는 성능 목표를 수치화해서 **측정 가능하게 만드는 ‘정량적 기준’**이다. 예를 들어, “우리 서비스는 빠른 응답 속도를 가져야 한다”라는 목표는 막연하지만, “API 응답 시간 95%가 300ms 이하”라면 구체적이고 명확하다.
목표 지표 = 성능 목표를 ‘수치’로 풀어낸 명확한 지침
이 지표가 있어야만 실제 성능 테스트, 모니터링에서 ‘합격’인지 ‘불합격’인지 판단할 수 있다.
왜 목표 지표가 중요한가?
- 객관적인 성능 평가 주관적인 감이나 경험에 의존하지 않고, 명확한 데이터로 성능을 평가할 수 있다.
- 개발과 운영의 공통 기준 개발팀과 운영팀이 같은 목표를 보고 협업할 수 있다.
- 지속적 개선의 출발점 성능 저하 원인 분석과 개선 작업 시 어떤 부분을 중점적으로 봐야 하는지 알려준다.
대표적인 성능 목표 지표 예시
지표명 의미활용 예시
| 응답 시간 (Response Time) | 사용자가 요청을 보낸 후 응답 받기까지 걸리는 시간 | 95% 요청의 응답 시간을 300ms 이하로 유지 |
| 처리량 (Throughput) | 단위 시간당 처리 가능한 요청 수 | 초당 1000건의 API 요청 처리 가능 |
| CPU 사용률 | 서버 CPU 자원 사용량 | CPU 사용률 80% 이하 유지 |
| 메모리 사용량 | 애플리케이션이 사용하는 메모리 크기 | 메모리 사용량 500MB 이하 유지 |
| 에러율 (Error Rate) | 전체 요청 중 실패한 요청 비율 | 에러율 0.1% 이하 유지 |
| 가용성 (Availability) | 서비스가 정상 동작하는 시간 비율 | 월 99.9% 이상의 가용성 유지 |
나의 성능 목표와 근거
최근 여러 통계 자료와 사용자 경험 데이터를 분석해보니, 웹사이트 성능에서 ‘속도’가 얼마나 중요한지 다시 한 번 실감했다. 특히 모바일 환경에서 사용자의 기대치와 행동 패턴은 성능 목표를 설정하는 데 큰 영향을 주었다.
주요 통계
- 53%의 모바일 웹 방문자는 페이지 로딩이 3초 이상 걸리면 바로 사이트를 떠난다.
- 모바일 사이트의 평균 로딩 시간은
- 3G 환경에서 19초,
- 4G 환경에서 14초로 매우 느린 편이다.
로딩 속도가 미치는 영향
- 5초 이내 로딩되는 모바일 사이트는 19초 걸리는 사이트 대비:
- 광고 가시성이 25% 더 높고,
- 평균 세션 시간은 70% 더 길며,
- 이탈률은 35%나 낮다.
- 페이지 로딩 시간이 1초에서 3초로 늘어나면, 이탈 확률은 무려 32% 증가한다.
사용자 기대치
- 인터넷 사용자의 약 50%는 웹페이지가 2초 이내에 로딩되길 기대한다.
- 성능이 좋지 않은 경험을 한 사용자의 약 80%는 그 페이지를 영구적으로 피하고 재방문하지 않는다.
나의 목표: TTFB 3초 이내 달성
이런 자료들을 바탕으로, 나는 웹사이트의 TTFB(Time To First Byte, 첫 바이트 도착 시간)를 3초 이내로 유지하는 것을 목표로 세웠다.
약 90%의 요청에 대해 3초 이하의 TTFB를 달성하는 것이 현실적이고, 동시에 사용자 경험을 크게 개선할 수 있는 최적의 성능 목표라고 판단했다.