2026년 05월 09일
-
[WebRTC 디버깅] ‘끊긴다’ 현상이 보일 때 보는 5가지
결론 먼저 — 5축 체크리스트 축 본다 도구 1. ICE 상태 iceConnectionState 천이 로그 chrome://webrtc-internals 2. 네트워크 품질 RTT, jitter, packet loss getStats() 3. 디바이스…
-
[WebRTC] 외부 TURN 서비스 vs self-host — 4축 의사결정
결론 먼저 — 4축 비교 축 외부 TURN 서비스 self-host (Coturn / Pion TURN) 시작 비용 0 (가입 즉시) VM/리전 설정 필요 변동 비용 분당…
-
[Google STT] 실시간 음성 → 텍스트 — 음성 turn에서의 스트리밍 패턴
결론 먼저 — interim_results=true 없이는 음성 UX가 깨진다 옵션 설정 영향 API 종류 StreamingRecognize partial result 수신 가능 interim_results true 발화 중 실시간 텍스트 single_utterance…
-
[AI 음성 상담] 데이터 플로우 5단계 — 각 단계의 실패 모드와 fallback
결론 먼저 — 5단계 × 실패 모드 × 복구 가능성 단계 핵심 동작 대표 실패 복구 1. 사용자 요청 인증·세션 토큰 발급 토큰 만료 /…
-
[설계 판단] 미디어 평면과 비즈니스 평면을 두 서비스로 쪼갠 이유
결론 먼저 — 한 서비스 vs 두 서비스, 4축 비교 축 한 서비스 두 서비스 분리 장애 격리 한쪽이 죽으면 둘 다 격리됨 배포 주기…
-
[WebRTC] STUN과 TURN, 언제 무엇을 — NAT 종류 × 성공률 매트릭스
결론 먼저 — Symmetric NAT가 양쪽이면 STUN은 0%다 A 측 NAT B 측 NAT STUN만으로 P2P 가능? fallback 필요 Full Cone 아무거나 O — Restricted…
-
[Gemini] 2.0 Flash를 고른 이유 — 음성 상담의 응답 속도 vs 품질
결론 먼저 — 음성 상담에서 latency는 품질이다 축 Pro 계열 Flash 계열 응답 latency (체감) 높음 낮음 긴 문맥 (32k+) 추론 품질 우수 충분 function…
-
[음성 파이프라인] STT → LLM → TTS 전체 latency 분해 — 4구간 절단법
결론 먼저 — 음성 파이프라인 latency는 4구간으로 쪼개야 줄일 수 있다 구간 이름 대표 단축 전략 1 VAD → STT 종료 (사용자 발화 끝 인식)…
-
[WebRTC] 연결의 6단계 — Offer/Answer부터 ICE Connected까지
결론 먼저 — 단계별 실패 위치를 알면 디버깅이 빨라진다 단계 이름 대표 실패 원인 1 Signaling 채널 수립 WebSocket 인증/CORS/방화벽 2 SDP Offer/Answer 교환 codec…
-
[Pion] ForwardTrack 루프 — 미디어를 흘려보내는 가장 짧은 코드
결론 먼저 — 미디어 forward의 본질은 한 루프다 항목 값 핵심 코드 라인 수 ~10줄 Track 타입 TrackLocalStaticRTP 패킷 단위 RTP 패킷 (재인코딩 없음) 고루틴…