본문 바로가기
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

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

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