유대선
프로젝트로
·기술 회고·5

Latency Optimization Playbook (612 lines, 25 tricks) — story behind the asset

ScreenBridge Vision LLM 호출 9.5s → 6.5s 가는 동안 학습한 25 trick을 6 dimension으로 정리한 612-line playbook. 사용자가 '메커니즘 배워서 앞으로도 써먹어야지'라 했고, transferable knowledge 박는 게 임시 fix보다 가치 큼.

문제

사용자가 dogfooding 도중 발견:

"어떻게 빨라진거지? 이거... 이런 속도 개선점은 순서대로 반드시 정리해야한다 이런 엔지니어링 인사이트 도출을 원함 내가 찾은게 아니어도 메커니즘은 배워서 앞으로도 써먹어야지"

임시 fix가 아니라 재사용 가능 knowledge 박는 게 가치. 다음 vision LLM 프로젝트 / 다른 사람 프로젝트에서도 first principle 적용 가능해야.

결정 분기

3 옵션:

A. 인라인 comments — 코드 안에 왜 빠른지 박음

B. 프로젝트 README append — README에 latency section 추가

C. ⭐ 별도 playbook 파일docs/playbooks/latency-optimization.md

선택 C.

박힌 거

docs/playbooks/latency-optimization.md — 612 lines, 25 trick, 6 dimension:

Dimension 1 — Vision LLM payload (3 tricks)

Dimension 2 — macOS SDK (4 tricks)

Dimension 3 — General LLM API (5 tricks)

Dimension 4 — Perceived UX (4 tricks)

Dimension 5 — Async patterns (5 tricks)

Dimension 6 — Measurement (4 tricks)

Top-5 quick wins (priority order)

  1. Image downscale — 1 line 변경, 30% latency 즉시. 시도 무조건.
  2. maxOutputTokens 줄임 — 1 line. 응답 quality 변화 없음.
  3. TLS/DNS pre-warm — 5 lines. 첫 호출 1-2s 절감.
  4. async let parallel — 코드 구조 변경. 1.5-2x throughput.
  5. Progressive loading message — UX 변경. perceived 30% 빠름.

Universal principles

박힌 메타 원칙 3개:

  1. "Measure-first, optimize-second"log show 같은 persistent log 먼저 박음. optimization은 measured bottleneck에만.

  2. "Vendor pays for what you send" — Gemini formula tokens = w × h / 750. payload reduction은 돈 + 속도 둘 다.

  3. "Perceived latency ≥ actual latency" — Loading message + skeleton + progressive update이 실 latency 안 줄여도 사용자 만족 압도. 50% UX gain.

비용

다음 playbook 후보

memory engineering-playbooks-index 박혀있음:

패턴

Commit

04430d72 (2026-05-30 14:42 -0400) — 612 lines added to docs/playbooks/latency-optimization.md + PROJECT_TIMELINE.md 40 lines.