| name | benchmark |
| description | 성능 기준선을 측정하고, PR 전후 회귀를 감지하며, 스택 대안을 비교할 때 사용하는 스킬입니다. |
| origin | ECC |
Benchmark — 성능 기준선 및 회귀 탐지
사용 시점
- PR 전후 성능 영향을 측정할 때
- 프로젝트의 성능 기준선을 세팅할 때
- 사용자가 "느린 것 같다"고 말할 때
- 출시 전에 성능 목표 충족 여부를 확인할 때
- 현재 스택과 대안을 비교할 때
동작 방식
모드 1: 페이지 성능
브라우저 MCP로 실제 브라우저 메트릭을 측정합니다.
1. 대상 URL마다 이동
2. Core Web Vitals 측정
- LCP < 2.5s 목표
- CLS < 0.1 목표
- INP < 200ms 목표
- FCP < 1.8s 목표
- TTFB < 800ms 목표
3. 리소스 크기 측정
- 전체 페이지 크기 < 1MB 목표
- JS 번들 < 200KB gzipped 목표
- CSS 크기
- 이미지 용량
- 서드파티 스크립트 용량
4. 네트워크 요청 수 집계
5. 렌더 차단 리소스 확인
모드 2: API 성능
API 엔드포인트를 벤치마크합니다.
1. 각 엔드포인트를 100회 호출
2. p50, p95, p99 지연 측정
3. 응답 크기, 상태 코드 추적
4. 동시 요청 10개 부하 테스트
5. SLA 목표와 비교
모드 3: 빌드 성능
개발 피드백 루프를 측정합니다.
1. 콜드 빌드 시간
2. 핫 리로드 시간(HMR)
3. 테스트 스위트 실행 시간
4. TypeScript 검사 시간
5. Lint 시간
6. Docker 빌드 시간
모드 4: 변경 전후 비교
변경 전후를 돌려 영향도를 측정합니다.
/benchmark baseline
# ... 변경 수행 ...
/benchmark compare
출력 예시:
| Metric | Before | After | Delta | Verdict |
|--------|--------|-------|-------|---------|
| LCP | 1.2s | 1.4s | +200ms | WARNING: WARN |
| Bundle | 180KB | 175KB | -5KB | ✓ BETTER |
| Build | 12s | 14s | +2s | WARNING: WARN |
출력
기준선은 .ecc/benchmarks/ 아래 JSON으로 저장합니다. Git 추적을 통해 팀이 기준선을 공유합니다.
연동
- CI: 모든 PR에서
/benchmark compare 실행
/canary-watch와 함께 배포 후 모니터링
/browser-qa와 함께 출하 전 전체 체크리스트 구성