C.W.K.
Stream
Lesson 03 of 05 · published

예산이 널 정직하게 만들어

~10 min · latency-budgets, measurement, benchmarks, discipline

Level 0불씨 없음
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"짓기 전에 적어둔 숫자만이 네가 실패하고 있다고 말해줄 수 있어."

왜 예산을 적어둬

10~40초 재앙이 벌어진 건 부분적으로 '충분히 빠름' 이 뭔지 아무도 안 적어둬서야. 숫자가 없으면, 개별 결정 하나하나가 합리적으로 보여 — 당연히 정리는 똑똑해야지, 당연히 좋은 브레인을 써야지 — 그리고 총합이 조용히 못 쓰게 돼. 지연 예산은 유혹이 도착하기 전에 하는 약속이야. '이거 느린 것 같아' 를 '이건 예산을 8초 초과해' 로 바꿔, 그건 논쟁을 시작하는 대신 끝내는 논거야.

Firekeeper 의 예산

단축키 -> 녹음 시작           150 ms 미만   (웜 스타트 후)
첫 부분 전사                  1.5 s 미만    (평범한 말)
최종 STT, 짧은 발화           1 s 미만
최종 STT, 30초 받아쓰기       3 s 미만      (Apple Silicon)
정리, 평범한 받아쓰기         2 s 미만      (데워진 로컬 모델)

# 각 단계가 숫자를 소유해. 합이 제품이야.

예산이 단계별 이란 걸 봐. 그게 중요해: 단일 종단간 숫자는 네가 느리다고 말하지만 어디가 인지는 안 말해주고, 느린 단계가 빠른 단계 뒤에 숨을 수 있어. 단계별 예산은 퇴행이 자기 이름을 댄다는 뜻이야 — 정리가 2초를 넘으면, 마이크 코드를 뒤지러 안 가.

벤치마크 하니스가 진짜로 만들어

안 재는 예산은 소망이야. Firekeeper 는 녹음 클립을 각 엔진과 모델에 돌려 전사와 지연을 찍는 작은 벤치마크 CLI 를 실어, '뭐가 더 빠른가' 가 감이 아니라 데이터가 되게. 같은 규율이 정리 레인에 적용돼: 네 기계에서 단계별 비용을 못 재면, 다음에 순진해 보이는 재사용이 기어들 때 40초 버그를 다시 발견할 거야.

기능 쓰기 전에 예산을 써. 미리 정한 성능 목표는 설계 제약이고; 나중에 정한 건 합리화야. 각 단계가 처음부터 숫자를 소유하면, 모든 구현 선택이 자동으로 그것에 대조돼 — 그리고 조용히 30초를 더했을 선택이 실망한 유저한테 발견되는 대신 설계 시점에 거부돼.
웜 스타트는 변명이 아니라 예산의 일부야. 150ms 단축키-부터-녹음 목표는 데워진 엔진을 가정해 — 그게 정확히 실행 때 프리웜이 최적화가 아니라 기능인 이유야. 예산이 두 번째 호출에서만 달성 가능하면, 첫 호출이 유저가 널 판단하는 그거야. 그날 첫 누름에 예산이 버티게 웜업을 설계해.

Code

단계별 예산, 그래서 퇴행이 자기 이름을 댐·text
단계                         예산        소유자
----                         ----        ------
단축키 -> 녹음               <150 ms     단축키 + 오디오 (프리웜 필요)
첫 부분 전사                 <1.5 s      STT 엔진
최종 STT (짧음)              <1 s        STT 엔진
최종 STT (30초 클립)         <3 s        STT 엔진
정리 (평범)                  <2 s        정리 레인

# 종단간 숫자 하나는 "느림" 이라고 말해.
# 단계별 숫자는 "정리가 느리고, 얼마나" 라고 말해.

External links

Exercise

네가 지은 기능에 대해, 사후에 단계별 지연 예산을 쓰고, 실제 숫자를 재. 어느 단계가 예산을 터뜨려? 이제 불편한 질문을 해: 그 숫자가 먼저 적혀 있었어도 같은 구현 선택을 했을까?
Hint
보통 최소 한 단계가 5~10배 초과고, 거의 항상 강력하고 편한 컴포넌트를 집은 그 단계야. 미리 쓴 예산이 널 더 똑똑하게 만들진 않았을 거야 — 고르는 순간에 비용을 보이게 만들었을 거고, 그게 선택을 바꾸기 싼 유일한 순간이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.