자동 번역 설정 (Beta)
Mattermost v11.8Mattermost v11.5부터 자동 번역은 채널 메시지를 각 사용자의 선호 표시 언어로 자동으로 번역합니다. 자동 번역은 비동기식 큐 기반 아키텍처를 사용합니다. 두 가지 번역 공급자 옵션을 사용할 수 있습니다: 다음 번역 공급자 중 하나를 선택하고 선택한 항목에 대한 설정 지침을 따르세요.
Mattermost v11.5부터 자동 번역은 채널 메시지를 각 사용자의 선호 표시 언어로 자동으로 번역합니다. 이를 통해 다국어 팀이 언어 장벽 없이 협업할 수 있습니다.
자동 번역은 비동기식 큐 기반 아키텍처를 사용합니다. 자동 번역이 활성화된 채널에 메시지가 게시되면, 메시지는 설정된 모든 타깃 언어로 번역되도록 큐에 추가됩니다. 번역된 메시지는 표시 언어가 타깃 언어와 일치하는 사용자에게 원본 표시를 대체하며, 메시지의 번역 아이콘을 선택하면 언제든지 원본 텍스트를 볼 수 있습니다. 사용자의 번역 타깃 언어는 Mattermost 표시 언어(설정 > 표시 > 언어 에서 설정)에 따라 결정되며, 현재는 번역 타깃을 표시 언어와 분리하는 기능은 지원되지 않습니다.
두 가지 번역 공급자 옵션을 사용할 수 있습니다:
- LibreTranslate: 자체 호스팅, 오픈 소스 기계 번역 엔진.
- Agents: 설정된 LLM 백엔드를 사용하는 Mattermost Agents 플러그인.
시작하기 전에#
- Mattermost Enterprise Advanced 라이선스가 필요합니다.
- 번역 공급자를 선택하고 인프라를 사용할 수 있는지 확인합니다:
- LibreTranslate: Mattermost 서버에서 접근 가능한 실행 중인 LibreTranslate 서버.
- Agents: 하나 이상의 LLM 서비스가 설정된 Mattermost Agents 플러그인 이 설치 및 설정되어 있어야 합니다.
자동 번역 설정#
번역 공급자 설정#
다음 번역 공급자 중 하나를 선택하고 선택한 항목에 대한 설정 지침을 따르세요.
LibreTranslate 설정#
LibreTranslate 는 자체 호스팅, 오픈 소스 기계 번역 엔진입니다. 배포 지침은 LibreTranslate 설치 가이드 를 참조하세요.
LibreTranslate 서버가 실행되면:
- System Console > Site Configuration > Localization 으로 이동합니다.
- 번역 공급자 를
libretranslate로 설정합니다. - LibreTranslate URL 을 입력합니다(예:
http://libretranslate.internal:5000). - LibreTranslate 인스턴스에 인증이 필요한 경우 LibreTranslate API 키 를 입력합니다.
- 저장 을 선택합니다.
Mattermost 서버는 네트워크를 통해 LibreTranslate URL에 접근할 수 있어야 합니다. Mattermost 서버와 LibreTranslate 인스턴스 간의 연결을 허용하는 방화벽 규칙과 DNS 해석을 확인하세요.
Agents 공급자 설정#
Agents 공급자는 Mattermost Agents 플러그인을 사용하여 설정된 LLM 서비스를 통해 메시지를 번역합니다.
사전 요구 사항:
- Mattermost Agents 플러그인 이 설치 및 활성화되어 있어야 합니다.
- Agents 플러그인에 하나 이상의 LLM 서비스가 설정되어 있어야 합니다.
- System Console > Site Configuration > Localization 으로 이동합니다.
- 번역 공급자 를
agents로 설정합니다. - Agents 플러그인에서 설정된 LLM 서비스와 일치하는 Agents LLM 서비스 ID 를 입력합니다.
- 저장 을 선택합니다.
LibreTranslate와 Agents 중 선택: LibreTranslate는 가벼운 자체 호스팅 번역 엔진입니다. Agents 공급자는 LLM 백엔드를 사용하며 일반적으로 더 정확한 번역을 생성합니다. 특히 문맥 이해가 품질을 향상시키는 일본어, 한국어, 중국어와 같은 언어에서 더욱 그렇습니다. 번역 품질 요구 사항과 기존 인프라를 고려하여 선택하세요. LibreTranslate는 모든 언어 쌍 간의 직접 번역을 지원하지 않습니다. 지원되지 않는 조합의 경우 중간 언어(일반적으로 영어)를 거치는 피벗 번역을 수행하며, 이로 인해 해당 언어 쌍의 정확도가 떨어질 수 있습니다.
Agents 공급자를 위한 LLM 선택: 자동 번역에는 더 작고 빠른 모델이 권장됩니다. 번역은 잘 정의된 작업이므로 더 큰 모델의 확장된 추론 기능이 도움이 되지 않습니다. 오히려 더 큰 모델은 작업을 과도하게 고민하여 품질 향상 없이 불필요한 지연 시간만 추가할 수 있습니다. 현재 설정된 LLM 제공업체에서 지원되고 사용자의 환경에서 검증된, 작고 지연 시간이 짧은 모델을 선택하세요.
자동 번역 활성화#
- System Console > Site Configuration > Localization 으로 이동합니다.
- 자동 번역 활성화 를 True 로 설정합니다.
- 번역 공급자 (
libretranslate또는agents)를 선택합니다. - 허용된 언어 를 설정합니다. 자동 번역이 활성화된 채널의 모든 메시지는 이 목록의 각 언어로 번역됩니다.
- 저장 을 선택합니다.
허용된 언어 목록에서 사용 가능한 언어는 Site Configuration > Localization 아래의 Available languages 설정(AvailableLocales)에 의해 제어됩니다. 이 필드가 비어 있으면 지원되는 모든 언어를 사용할 수 있으며, 그렇지 않으면 나열된 언어만 선택 가능한 자동 번역 타깃으로 표시됩니다. EnableExperimentalLocales 설정을 사용하면 추가 로케일 코드를 사용할 수 있습니다. 일부 로케일(예: zh-Hans)은 베타 상태이며, Mattermost UI의 일부가 여전히 영어로 표시될 수 있는데 이는 UI 현지화 제한 사항이며 메시지 번역에는 영향을 미치지 않습니다.
다이렉트 및 그룹 메시지에서 자동 번역 제한 설정을 사용하여 다이렉트 및 그룹 메시지에서 자동 번역을 활성화할 수 있는지 여부를 제어합니다.
사용 가능한 모든 설정은 자동 번역 설정 참조 를 참조하세요.
채널에서 자동 번역 활성화#
자동 번역은 채널별로 관리되며 모든 채널에서 기본적으로 비활성화되어 있습니다. 시스템 관리자와 채널 관리자는 개별 채널에 대해 자동 번역을 활성화하거나 비활성화할 수 있습니다.
- 채널에서 자동 번역이 활성화되거나 비활성화되면, 시스템 게시물이 채널 멤버에게 변경 사항을 알립니다.
채널에서 자동 번역을 활성화하면 앞으로 새 메시지만 번역됩니다. 기존 메시지 기록은 소급하여 번역되지 않습니다.
워커 성능 조정#
대부분의 배포에는 기본 워커 설정으로 충분합니다. 배포에 메시지 양이 많거나, 설정된 타깃 언어가 많거나, 번역 큐 깊이가 증가하는 것이 관찰되면 워커 수를 늘려야 할 수 있습니다. 이 섹션에서는 올바른 값을 계산하고 모니터링하는 방법을 설명합니다.
번역 큐의 작동 방식#
자동 번역이 활성화된 채널에 메시지가 게시되면 노드별 번역 큐에 추가됩니다. 워커가 게시물을 가져와 설정된 각 타깃 언어로 순차적으로 번역합니다. 완료된 각 언어 번역은 채널에 웹소켓 브로드캐스트를 트리거하여 사용자가 실시간으로 번역이 도착하는 것을 볼 수 있습니다.
고가용성 배포에서 각 노드는 자체 워커 풀을 실행하고 자체 큐를 독립적으로 처리합니다.
워커 수 계산#
각 노드에 필요한 워커 수를 추정하려면 다음 공식을 사용하세요:
required_workers = ceil(
(posts_per_sec × pct_autotranslated × num_languages × avg_provider_latency_ms / 1000)
/ num_app_nodes
× 1.2
)
여기서:
- posts_per_sec — 서버 전체의 평균 메시지 속도.
- pct_autotranslated — 자동 번역이 활성화된 채널의 게시물 비율(0.0~1.0).
- num_languages — 설정된 타깃 언어 수.
- avg_provider_latency_ms — 번역 공급자의 평균 응답 시간(밀리초).
- num_app_nodes — Mattermost 애플리케이션 노드 수.
- 1.2 — 트래픽 급증을 흡수하기 위한 여유 계수(20%).
| 타깃 언어 | % 자동 번역 | 노드당 워커 |
|---|---|---|
| 7 | 100% | 38 |
| 6 | 100% | 32 |
| 3 | 75% | 8 |
6개 언어 테스트에서 공식은 33을 산출하지만 설정된 최대값으로 인해 워커가 32로 제한되었습니다. 계산된 값에 맞게 번역 워커 설정을 조정하세요.
확장 고려 사항#
- 타깃 언어가 가장 큰 배수입니다. 각 추가 언어는 게시물당 워커 시간과 게시물당 웹소켓 브로드캐스트 수를 모두 증가시킵니다. 타깃 언어 수를 줄이는 것이 부하를 줄이는 가장 효과적인 방법입니다.
- 웹소켓 트래픽은 언어에 따라 확장됩니다. 각 타깃 언어는 번역된 게시물당 하나의 채널 전체 웹소켓 브로드캐스트를 생성합니다. 높은 부하에서 포화의 주요 증상은 연결별 전송 큐가 가득 차서 발생하는 웹소켓 연결 해제입니다.
- 공급자 지연이 트래픽 패턴을 형성합니다. 지연이 낮으면 번역이 더 빠른 버스트로 완료되어 웹소켓 트래픽이 집중됩니다. 지연이 높으면 이벤트가 시간이 지남에 따라 분산됩니다. 공급자 응답 시간을 모니터링하고 용량 계획에 반영하세요.
Prometheus로 모니터링#
Mattermost는 자동 번역을 위해 다음 Prometheus 메트릭을 제공합니다:
mattermost_autotranslation_queue_depth_total(게이지) — 큐에서 대기 중인 현재 작업 수. 꾸준히 상승하는 값은 워커가 들어오는 게시물을 처리하지 못함을 의미합니다.mattermost_autotranslation_provider_call_duration_seconds(히스토그램; 레이블: provider, result) — 번역 공급자 지연. 위 공식에서 사용된avg_provider_latency_ms값입니다. 다음 PromQL 쿼리로 평균을 계산하세요:
rate(mattermost_autotranslation_provider_call_duration_seconds_sum{result="success"}[10m])
/
rate(mattermost_autotranslation_provider_call_duration_seconds_count{result="success"}[10m])
mattermost_autotranslation_worker_task_duration_seconds(히스토그램) — 워커가 모든 타깃 언어에 걸쳐 하나의 게시물을 처리하는 데 걸리는 총 시간.
설정 참조#
- 번역 워커: 노드당 동시 워커 수. 기본값은 6 입니다. 높은 트래픽 배포에서는 이 값을 늘리거나 리소스 소비를 줄이기 위해 감소시킵니다.
- 번역 타임아웃: 단일 번역 요청의 최대 시간(밀리초). 기본값은 5000 ms (5초)입니다. 네트워크 지연이나 높은 부하로 인해 번역 공급자에서 타임아웃이 발생하는 경우 이 값을 늘립니다.
mmctl config set AutoTranslationSettings.Workers <number>
자주 묻는 질문#
메시지가 번역되지 않는 이유는 무엇인가요?#
- System Console > Site Configuration > Localization 에서 자동 번역이 전역적으로 활성화되어 있는지 확인합니다.
- 특정 채널에 대해 자동 번역이 활성화되어 있는지 확인합니다.
- 번역 공급자가 선택되고 올바르게 설정되어 있는지 확인합니다.
- Mattermost 서버가 번역 공급자(LibreTranslate URL 또는 Agents 플러그인)에 접근할 수 있는지 확인합니다.
- 번역 오류에 대해 Mattermost 서버 로그를 검토합니다.
번역 공급자가 사용 불가능한 경우 어떻게 되나요?#
메시지는 정상적으로 계속 게시됩니다. 공급자 다운타임으로 인해 실패한 번역은 건너뛰어지고 사용자는 원본 미번역 메시지를 보게 됩니다. 공급자가 복구되면 새 메시지가 예상대로 번역됩니다.
어떤 언어가 지원되나요?#
지원되는 언어는 번역 공급자에 따라 다릅니다:
- LibreTranslate: LibreTranslate 배포에서 사용 가능한 언어를 지원합니다. 자세한 내용은 LibreTranslate 언어 목록 을 참조하세요.
- Agents: 언어 지원은 설정된 LLM의 기능에 따라 달라집니다. 대부분의 최신 LLM은 다양한 언어를 지원합니다.