외국인 직원과 일하는 사장님, 해외 거래처와 소통하는 담당자의 공통 고민은 단체방입니다. 일대일 대화는 번역기를 쓰면 되지만 단톡방은 흐름이 빠르고 언어가 섞여 번역기를 오가는 사이 맥락을 놓칩니다. 해외 매장의 왓츠앱 단톡방에 실시간 번역 봇을 붙여 두 달 넘게 운영하며 정리한 설계 요소들입니다.
실시간 번역 봇의 기본 흐름과 첫 결정들
구조 자체는 단순합니다. 방의 메시지를 수신해 외국어면 번역해서 같은 방에 답장으로 달아 줍니다. 설계 결정은 디테일에 있습니다.
첫째, 어디에 번역을 달 것인가. 별도 채널로 보내면 원문과 번역이 갈라져 맥락이 끊기므로, 같은 방에 원문 바로 아래 답장으로 달았습니다. 번역문에는 식별 접두어를 붙여 사람 메시지와 구분되게 했습니다.
둘째, 무엇을 번역할 것인가. 모든 방의 모든 메시지가 아니라, 번역 역할이 켜진 방의 외국어 메시지만입니다. 자동화는 기본이 꺼짐이고 방 단위로 명시적으로 켜는 구조라야, 봇이 엉뚱한 방에서 수다를 떠는 사고가 없습니다.
언어 감지는 자동, 예외는 수동 트리거
언어 판별은 LLM의 자동 감지에 맡기는 것이 기본입니다. 영어처럼 감지가 안정적인 언어는 문제가 없었습니다. 문제는 광둥어였습니다. 표준 중국어와 문자 체계가 겹쳐 감지가 흔들리는 언어입니다.
해법은 자동과 수동의 병행이었습니다. 감지가 흔들리는 언어에는 접두 기호 트리거를 두어 사용자가 메시지 앞에 기호 하나를 붙이면 해당 언어로 강제 지정됩니다. 완전 자동을 고집하며 감지율과 씨름하는 대신, 실패가 잦은 지점에 사람이 쓸 수 있는 명시적 스위치를 주었습니다. 운영에서 이 트리거는 자연스러운 습관으로 정착했습니다.
번역 품질의 반은 맥락 주입이다
범용 번역과 "그 방을 위한 번역"의 차이는 모델이 아니라 맥락에서 나옵니다. 매장 단톡방에는 그 가게만의 은어, 메뉴 약칭, 근무 약어가 흐릅니다. 이런 표현이 직역되면 번역이 오히려 혼란을 만듭니다.
우리는 은어사전과 약어표를 시스템 프롬프트에 주입해 번역이 그 가게의 언어를 알고 움직이게 했습니다. 사전은 운영자가 시트에서 직접 관리합니다. 이 설계는 별도 글(은어사전 번역 프롬프트)에서 자세히 다룹니다.
조용히 무너지지 않게: 루프, 폭주, 폴백
번역 봇 운영에서 실제로 부딪힌 함정들입니다.
- 자기 메시지 루프: 봇이 단 번역 답장을 봇이 다시 수신해 번역하는 무한 루프 위험입니다. 봇 계정의 자기 메시지를 식별해 처리에서 제외하는 가드가 필수인데, 메시지 수신 이벤트의 종류에 따라 자기 메시지가 잡히기도 안 잡히기도 해서 실운영 초기에 핫픽스로 잡은 지점입니다.
- 응답 지연과 타임아웃: LLM 응답이 길어지면 번역이 뒤늦게 달려 대화 흐름과 어긋납니다. 우리는 운영 데이터로 응답 시간의 기준선을 잡고 타임아웃을 조정했습니다.
- 키 없는 상황의 폴백: 번역 API 키가 없거나 실패해도 시스템 전체가 죽지 않도록, 표식이 붙은 모의 응답으로 흐름은 유지되게 했습니다. 번역 실패는 그 메시지 하나의 실패로 끝나야 합니다.
언제 이 구성이 맞는가
실시간 번역 봇은 기존 단톡방의 흐름을 바꾸지 않으면서 언어 장벽만 걷어내고 싶을 때 맞는 구성입니다. 참여자에게 새 앱을 깔게 하거나 채널을 옮기게 하는 순간 도입은 실패하기 때문입니다. 반대로 새로 시작하는 고객 응대 채널이라면 처음부터 공식 API 기반 챗봇 구조를 검토하는 것이 맞습니다. 이 판단 기준은 메신저 주문 자동화 기준에서 다룬 것과 같습니다.
이 번역 봇이 들어간 시스템의 전체 그림(스케줄·정산·영수증 자동화까지)은 왓츠앱 번역 자동화 사례에서 볼 수 있습니다.
자주 묻는 질문
실시간 번역 봇은 어떤 메신저에서 가능한가요?
봇 API가 있는 메신저(텔레그램, 슬랙 등)는 정공법으로 가능하고 왓츠앱 단톡방처럼 공식 API가 지원하지 않는 영역은 웹 세션 방식의 우회가 필요합니다. 우회 방식은 세션·계정 리스크가 있으므로 안전장치와 리스크 공유를 전제로 결정해야 합니다.
번역이 틀리면 오히려 위험하지 않나요?
두 가지로 관리합니다. 은어·약어 사전을 주입해 그 조직 특유의 표현이 직역되는 오류를 줄이고 번역문에 식별 표식을 붙여 "이것은 기계 번역"임을 참여자 모두가 알게 합니다. 중요한 결정은 원문 확인을 병행하는 문화가 함께 가야 합니다.
감지가 어려운 언어는 어떻게 처리하나요?
자동 감지에 수동 트리거를 병행합니다. 감지가 흔들리는 언어(광둥어 등)는 메시지 앞 접두 기호로 언어를 강제 지정하는 스위치를 두면, 감지율과 씨름하지 않고도 실용적인 정확도가 나옵니다. 완전 자동보다 실패 지점에 명시적 스위치를 주는 쪽이 운영이 편합니다.
봇이 자기 번역을 다시 번역하는 일은 없나요?
가드 없이는 실제로 일어나는 사고입니다. 봇 계정의 메시지를 식별해 처리 대상에서 제외하는 자기 메시지 가드가 필수이며 메신저의 수신 이벤트 종류에 따라 자기 메시지 포착 여부가 달라질 수 있어 실환경 테스트로 확인해야 합니다.