프로파일링 선택 기준

프로파일링 도구는 병목 신호에 맞춰 선택한다

NestJS 성능 문제를 볼 때 Chrome DevTools, clinic.js, APM은 서로 대체재가 아니라 관측 깊이와 운영 맥락이 다른 도구입니다.

병목 유형별 도구 선택

Chrome DevTools

로컬 코드 경로 확인

node --inspect로 실행해 controller, service, mapper 함수가 CPU 시간을 쓰는지 봅니다.

clinic.js

Node 런타임 병목 진단

doctor, flame, bubbleprof로 event loop 지연, 비동기 대기, CPU 부하를 시각화합니다.

APM

운영 요청 추적

라우트별 latency, DB span, 외부 API 호출을 실제 트래픽 기준으로 연결합니다.

프로파일 결과를 읽는 순서

1 재현 조건 고정 같은 route, 같은 payload, 같은 부하로 수집해야 비교가 됩니다.
2 넓은 블록 확인 flame graph에서 넓은 함수는 CPU 시간을 많이 쓴 후보입니다.
3 비동기 대기 분리 DB, Redis, HTTP 호출 대기와 순수 계산 병목을 나눠 봅니다.
병목 도구 선택

프로파일링은 한 번의 스냅샷으로 결론 내리지 않습니다. 모니터링 이상치, 프로파일 결과, 수정 후 같은 부하의 재측정이 같은 방향을 가리킬 때 최적화를 확정합니다.