통화가 실패했을 때 처리하는 법

실패는 없애는 것이 아니라 고르는 것입니다. 무엇이 흔들렸는지 구분하고, 통화를 끊는 대신 낮추고, 남은 처리를 콘솔에서 마무리하는 순서.

실시간 통화에서는 예외를 던지고 끝낼 수가 없습니다. 실패를 없애는 것은 목표가 될 수 없고, 실패하는 방식을 고르는 것이 목표가 됩니다. 통화를 끊는 것보다는 기능을 낮추는 편이, 잘못된 답을 자신 있게 말하는 것보다는 모른다고 말하는 편이 낫다고 보았습니다.

무엇이 흔들렸는지 구분하기

모든 실패를 같은 방식으로 다루면 대응이 무뎌집니다. 벤더 쪽 품질이 떨어진 것과, 우리 쪽 기능이 불확실한 상태인 것과, 상대의 회선이 끊긴 것은 서로 다른 사건이며 각각 다른 처리를 필요로 합니다.

실패를 다루는 순서
  1. 구분

    벤더, 기능, 회선 중 무엇이 흔들렸는지 나눕니다

  2. 저하

    통화를 끊는 대신 해당 기능을 한 단계 낮춥니다

  3. 이어가기

    가능한 한 통화를 끝까지 유지합니다

  4. 기록

    무엇이 낮아졌는지 콘솔에 남깁니다

통화가 진행되는 동안

벤더가 흔들릴 때

음성 합성은 외부 벤더에 의존합니다. 한 벤더의 품질이 통화 도중 떨어지면 남은 통화 구간 동안 다른 벤더로 고정 전환합니다. 매 문장마다 오가면 목소리가 바뀌는 것이 더 이상하기 때문에, 한 번 넘어가면 그 통화에서는 계속 그쪽을 씁니다.

기능이 불확실할 때

우리 쪽 기능이 불확실할 때는 플래그가 그 기능을 한 단계 낮춥니다. 플래그 가이드에서 이 등급 구조를 자세히 다룹니다. 여기서 중요한 것은 낮아진 상태로도 통화가 계속된다는 점입니다.

파이프라인이 끊기는 대신 저하됩니다 — 벤더의 일시적 문제가 통화의 죽음을 뜻하지 않습니다.

고정형 페일오버무음 감시와 상태 게이트 기반 배포

끊기지 않고 이어지는 흐름
주방 수전에서 그릇을 향해 물이 가늘고 꾸준한 한 줄기로 흐르고 있습니다.

통화가 끝난 뒤

실패한 통화도 기록으로 남습니다. 무엇이 낮아진 상태로 진행되었는지가 남아 있어야 다음에 같은 자리에서 같은 판단을 반복하지 않습니다.

  • 어느 단계에서 낮아졌는지, 그리고 통화가 끝까지 유지되었는지 확인합니다.
  • 전사를 다시 읽어 상대 쪽에서 무엇이 달라졌는지 봅니다 — 전사 검토 가이드의 순서를 따릅니다.
  • 같은 패턴이 반복되면 흐름이 아니라 설정을 조정 대상으로 표시합니다.
  • 도입이나 배포 범위에 관한 판단이 필요하면 지원 페이지에서 다음 단계를 확인합니다.

이 글은 파이프라인이 죽지 않는다는 이야기가 아닙니다. 죽습니다. 다만 죽는 방식을 고르려고 했습니다.

기능을 여는 순서와, 통화 이후의 검토로 이어집니다.

다음 단계를 함께 정합니다

무엇을 언제 여는지는 배포마다 다릅니다. 현재 환경을 알려 주시면 지금 구현된 것에 근거해 경로를 그려 드립니다.

  • 스택 문서

    통화가 지나는 순서, 커스텀 프로세서, 플래그 구조를 정리했습니다.

    문서 보기
  • 지원과 자주 묻는 질문

    배포 범위, 데이터 처리, 전화망 연동에 대한 실제 답을 모았습니다.

    지원 보기