CHAPTER 1 / 8
언어보다 먼저 workload 측정
성능 언어 선택은 benchmark 순위가 아니라 사용자 SLO를 막는 실제 병목과 변경 비용에서 시작합니다.
이 개념이 필요해진 배경
Request latency를 network, queue, application CPU, database와 model inference로 나눕니다. Application CPU가 5%라면 그 부분을 두 배 빠르게 해도 전체 개선은 작습니다.
Representative input, warmup, concurrency, percentile와 resource limit을 고정해야 비교가 재현됩니다. 평균만 보면 tail latency와 memory pressure, garbage collection pause를 놓칠 수 있습니다.
성능 언어 선택은 benchmark 순위가 아니라 사용자 SLO를 막는 실제 병목과 변경 비용에서 시작합니다.
Profile과 benchmark가 최적화 가능한 시간·resource 비중을 수치로 드러냅니다.
Production trace의 시간 비중과 동일 조건 benchmark를 연결해 예상 전체 개선 상한을 계산합니다.
구체적인 시스템에서 따라가기
응답이 느리다는 현상만으로 language를 바꾸면 network 대기, database query, model inference와 serialization 중 실제 병목을 놓칠 수 있습니다. Trace로 end-to-end 시간을 나누고 CPU profile, allocation, queue와 downstream capacity를 측정해야 application code가 차지하는 비율을 알 수 있습니다. 개선 가능한 상한은 병목 비중보다 클 수 없습니다.
대표 workload에는 평균 요청뿐 아니라 큰 payload, 동시 사용자와 오류 조건이 포함되어야 합니다. Microbenchmark에서 parser가 두 배 빨라도 전체 요청의 5%만 차지하면 사용자 latency 변화는 작을 수 있습니다. Rewrite 결정은 처리량과 tail latency뿐 아니라 library 성숙도, 배포 복잡성, 팀의 review 능력과 장애 대응 시간을 포함한 총비용으로 비교해야 합니다.
선택 기준과 실패 경계
잘못된 workload나 microbenchmark는 production 결론을 왜곡합니다.
피해야 할 오해: Compiled language로 rewrite하면 network와 model latency도 빨라진다는 생각은 틀립니다.
직접 검증하기
Production trace의 시간 비중과 동일 조건 benchmark를 연결해 예상 전체 개선 상한을 계산합니다.
이 장의 공식 출처
본문의 기술 사실은 다음 1차 자료를 기준으로 검토했습니다. 도해와 비교는 이 자료를 바탕으로 저자가 재구성했습니다.
- OpenTelemetry, 「Signals」검토일 2026-08-28 · 적용 범위 공식 문서 최신판
- Anthropic, 「Demystifying Evals for AI Agents」검토일 2026-08-28 · 적용 범위 공식 문서 최신판