Phase 0 산출물 — 실제 측정 없이 데모 모드로 동작하는 Terminal UI.
시연 시 최종 목표 화면을 가시화하고, 파라미터 조정에 반응하는
그럴듯한 추세를 시뮬레이션한다.
비교 대상 시스템:
- REST + HTTP/2 (TCP+TLS) + JSON
- gRPC + HTTP/2 (TCP+TLS) + Protobuf
- gRPC + HTTP/3 (QUIC+TLS1.3) + Protobuf ★ 본 연구 제안
조절 가능한 파라미터:
- 워크로드 시나리오 (Small-Many 1KB×10000 / Large-Few 1MB×50)
- 링크 지연 (0~500ms), 패킷 손실 (0~5%)
- 대역폭 (1~1000Mbps), 디바이스 수 (1~100)
화면 구성:
- 메인 메뉴 / 설정 / 실시간 진행 / 결과 비교 / 정보 5개 화면
- 진행률 막대, latency sparkline, 비교 차트(P50/P95/P99/RPS/연결시간)
구현:
- src/cmd/benchcli/main.go 진입점
- src/internal/ui/app.go Bubble Tea Model + 화면 dispatcher
- src/internal/ui/types.go Config / Result / RunState 정의
- src/internal/ui/styles.go Lipgloss 스타일·색상
- src/internal/ui/components.go progressBar / sparkline / slider
- src/internal/ui/simulator.go mock 시뮬레이터 (Phase 5에서 실측으로 교체)
- src/internal/ui/screen_*.go 각 화면 (menu/config/running/results/about)
의존성: bubbletea v1.2.4, lipgloss v1.0.0
빌드: `cd src && go run ./cmd/benchcli`
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>