LibreTranslate: 14.4K+ Stars 자체 호스팅 번역 API — 2026 프로덕션 배포 가이드

LibreTranslate (LT)는 Argos Translate 기반의 무ㅣㅣ료 오픈소스 기계 번역 API입니다. Docker, CUDA GPU, 30개 이상 언어 및 오프라인 배포를 지원합니다. 설치 설정, 성능 벤치마크, 모니터링 및 OpenAI Whisper, Coqui TTS, Argos Translate와의 통합을 다룹니다.

  • ⭐ 14400
  • AGPL-3.0
  • 업데이트 2026-05-19

{{< resource-info >}}

LibreTranslate는 스스로 호스팅하는 무ㅣㅣ료 오픈소스 기계 번역 API입니다. Google의 API 키는 필요 없습니다. DeepL의 문자당 과금도 없습니다. 데이터가 인프라를 떠나지 않습니다. 14,400개 이상의 GitHub Stars와活발한 릴리스 주기(2026년 5월 기준 v1.9.5)를 자랑하며, 비공개적이고 오프라인 가능한 제로 마진 비용 번역이 필요한 개발자들의 기본 선택이 되었습니다. 이 가이드는 LibreTranslate tutorial 및 libretranslate setup부터 libretranslate docker 프로덕션 배포까지 self-hosted translation 전 과정을 다루며, DeepL 및 Google Translate와의 상세 비교(libretranslate vs deepl)도 포함합니다. 이 가이드에서는 프로덕션 배포, 벤치마크 및 통합에 대해 설명합니다.

LibreTranslate Logo

LibreTranslate란 무엇인가? #

LibreTranslate는 오픈소스 Argos Translate 엔진 기반의 자체 호스팅 REST API 기계 번역 서비스입니다. 독점 번역 서비스를 대체할 수 있는 손쉬운 HTTP 인터페이스, 내장 Web UI, 30개 이상 언어 지원을 제공합니다. 이 프로젝트는 AGPL-3.0 라이선스하에 있으며 LibreTranslate 조직이 적극적으로 유지보수하고 있습니다.

큐큐 기반 번역 API와 달리 LibreTranslate는 사용자의 하드웨어에서 완전히 실행됩니다. 모든 텍스트 처리가 로컬에서 이루어지므로 프라이버시에 민감한 애플리케이션, 에어갭 네트워크 및 규정이 엄격한 산업에 적합합니다. 이 프로젝트는 프라이버시를 존중하는 번역 도구의 부재에 대한 대응으로 시작되었으며, 현재는 기업, 정부 및 개인 개발자가 사용하는 프로덕션 수준 플랫폼으로 성장했습니다.

LibreTranslate의 작동 방식 #

LibreTranslate의 아키텍처는 간단합니다. Python Flask 백엔드가 REST API를 제공하고, 번역의 핵심 처리는 Argos Translate의 신경망 기계 번역(NMT) 모델이 담당합니다. 이러한 모델은 처음 실행 시 다운로드되고 로컬에 캐시되어 초기 설정 후 오프라인 작동이 가능합니다.

핵심 아키텍처 #

LibreTranslate 아키텍처

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│   클라이언트    │────▶│  Flask REST API  │────▶│ Argos Translate │
│   (Web / API)   │◀────│    (포트 5000)   │◀────│   (NMT 엔진)    │
└─────────────────┘     └──────────────────┘     └─────────────────┘
                                                        │
                              ┌─────────────────────────┘
                              ▼
                        ┌──────────────┐
                        │   언어       │
                        │ 모델 (~2GB)  │
                        └──────────────┘

핵심 구성 요소 #

  • Flask API 서버: HTTP 요청, 인증, 속도 제한 및 요청 검증을 처리합니다.
  • Argos Translate 엔진: 언어 쌍 모델을 로드하고 추론을 수행하는 NMT 백엔드입니다.
  • 언어 모델: 각 언어 쌍에 대해 사전 학습된 OpenNMT 모델로, 필요 시 다운로드됩니다.
  • SQLite 데이터베이스: API 키 관리가 활성화되면 API 키, 요청 로그 및 사용 통계를 저장합니다.

번역 요청은 다음과 같이 시스템을 통해 흐릅니다: 클라이언트가 소스 텍스트, 소스 언어 및 대상 언어를 포함한 JSON 페이로드를 전송합니다. API가 요청을 검증하고 적절한 Argos 모델로 라우팅한 다음, 번역된 텍스트와 신뢰도 점수 및 감지된 언어와 같은 메타데이터를 반환합니다.

설치 및 설정 #

LibreTranslate는 여러 배포 경로를 제공합니다. 격리, 재현성 및 업데이트 용이성 때문에 Docker 경로가 프로덕션에 권장됩니다.

시스템 요구사항 #

구성CPURAM스토리지부팅 시간
최소 (3개 언어)1 vCPU2 GB1 GB~60초
권장 (11개 언어)2 vCPU4 GB3 GB~90초
전체 로드 (30+ 언어)4 vCPU8 GB10 GB~120초

Docker 빠른 시작 #

로컬에서 LibreTranslate를 실행하는 가장 빠른 방법:

# Docker로 실행
docker run -ti --rm -p 5000:5000 \
  -v lt-models:/home/libretranslate/.local \
  -e LT_LOAD_ONLY=en,es,fr \
  libretranslate/libretranslate:latest

시작 후 브라우저에서 http://localhost:5000을 엽니다. 처음 실행 시 언어 모델을 다운로드하므로 UI가 응답하기 전에 잠시 지연이 발생합니다.

프로덕션 Docker Compose #

프로덕션 배포를 위해 지속성 볼륨, 상태 확인 및 리소스 제한이 있는 전용 docker-compose.yml을 사용합니다:

# docker-compose.yml - 프로덕션 설정
version: '3.8'

services:
  libretranslate:
    container_name: libretranslate
    image: libretranslate/libretranslate:v1.9.5
    restart: unless-stopped
    ports:
      - "5000:5000"
    environment:
      - LT_LOAD_ONLY=en,es,fr,de,it,zh,ja,ru,pt,pl,nl
      - LT_API_KEYS=true
      - LT_REQ_LIMIT=60
      - LT_THREADS=4
      - LT_UPDATE_MODELS=true
    volumes:
      - lt-models:/home/libretranslate/.local
      - lt-db:/app/db
    healthcheck:
      test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s
    deploy:
      resources:
        limits:
          memory: 4G
        reservations:
          memory: 2G

volumes:
  lt-models:
  lt-db:

배포:

docker compose up -d

GPU 가속 배포 (CUDA) #

높은 처리량 시나리오의 경우 LibreTranslate는 CUDA를 통해 NVIDIA GPU 가속을 지원합니다. 요구사항: CUDA 11.2+ 및 nvidia-docker2가 설치된 NVIDIA GPU.

# 저장소 클론
git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate

# CUDA 지원 버전 빌드 및 실행
docker compose -f docker-compose.cuda.yml up -d --build

GPU 활용 확인:

nvidia-smi

네이티브 Python 설치 #

개발 환경이나 Docker를 사용할 수 없는 환경의 경우:

# pip를 통해 설치
pip install libretranslate==1.9.5

# 서버 시작
libretranslate --host 0.0.0.0 --port 5000 \
  --load-only en,es,fr,de \
  --req-limit 60 \
  --threads 4

또는 소스에서 빌드:

git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate
pip install -e .
python main.py --host 0.0.0.0 --port 5000

DigitalOcean에 배포하기 (프로덕션 클라우드) #

큐호스팅 프로덕션 인스턴스의 경우 DigitalOcean은 App Platform 또는 Droplet을 통해 쉬운 배포 경로를 제공합니다. 1-Click Docker 이미지를 사용하여 배포합니다:

# 새로운 Ubuntu 24.04 Droplet에서
curl -fsSL https://get.docker.com | sh
mkdir -p ~/libretranslate && cd ~/libretranslate

# 프로덕션 compose 파일 생성
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
  libretranslate:
    image: libretranslate/libretranslate:v1.9.5
    restart: always
    ports:
      - "5000:5000"
    environment:
      - LT_LOAD_ONLY=en,es,fr,de,it,zh,ja,ru,pt
      - LT_API_KEYS=true
      - LT_REQ_LIMIT=120
      - LT_THREADS=4
    volumes:
      - ./models:/home/libretranslate/.local
      - ./db:/app/db
EOF

docker compose up -d

참고: 새로운 VPS를 설정하는 경우 DigitalOcean은 신규 사용자에게 $200의 무ㅣㅣ료 크레딧을 제공하여 4GB Droplet이 24/7로 LibreTranslate를 실행하는 것을 몇 달 동안 커버할 수 있습니다.

인기 도구와의 통합 #

LibreTranslate의 REST API는 거의 모든 스택과 호환됩니다. 아래는 일반적인 워크플로우에 대한 통합 예시입니다.

Python SDK 사용 #

# translate_client.py
import requests

LIBRETRANSLATE_URL = "http://localhost:5000/translate"

def translate_text(text: str, source: str = "en", target: str = "es") -> str:
    payload = {
        "q": text,
        "source": source,
        "target": target,
        "format": "text",
        "api_key": ""  # 활성화된 경우 API 키 추가
    }
    headers = {"Content-Type": "application/json"}

    response = requests.post(LIBRETRANSLATE_URL, json=payload, headers=headers)
    response.raise_for_status()
    return response.json()["translatedText"]

# 사용 예시
if __name__ == "__main__":
    result = translate_text("Hello, production deployment!", "en", "de")
    print(f"번역 결과: {result}")

JavaScript/TypeScript 통합 #

// libretranslate-client.ts
interface TranslateResponse {
  translatedText: string;
}

class LibreTranslateClient {
  private baseUrl: string;
  private apiKey?: string;

  constructor(baseUrl: string = "http://localhost:5000", apiKey?: string) {
    this.baseUrl = baseUrl;
    this.apiKey = apiKey;
  }

  async translate(
    text: string,
    source: string = "en",
    target: string = "es"
  ): Promise<string> {
    const response = await fetch(`${this.baseUrl}/translate`, {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        q: text,
        source,
        target,
        format: "text",
        api_key: this.apiKey,
      }),
    });

    if (!response.ok) {
      throw new Error(`번역 실패: ${response.statusText}`);
    }

    const data: TranslateResponse = await response.json();
    return data.translatedText;
  }
}

// 사용
const client = new LibreTranslateClient("http://localhost:5000");
const result = await client.translate("Deploy to production", "en", "fr");
console.log(result); // "Déployer en production"

OpenAI Whisper 오디오-번역 파이프라인 #

일반적인 패턴은 음성 인식과 번역을 결합하는 것입니다. 다음은 Whisper를 사용한 전사 및 LibreTranslate를 사용한 번역의 완전한 파이프라인입니다:

# whisper_translate_pipeline.py
import whisper
import requests

WHISPER_MODEL = whisper.load_model("base")
LIBRE_URL = "http://localhost:5000/translate"

def transcribe_and_translate(audio_path: str, target_lang: str = "en") -> dict:
    # 단계 1: Whisper로 오디오 전사
    result = WHISPER_MODEL.transcribe(audio_path)
    source_text = result["text"]
    detected_lang = result.get("language", "auto")

    # 단계 2: LibreTranslate로 번역
    payload = {
        "q": source_text,
        "source": detected_lang,
        "target": target_lang,
        "format": "text"
    }
    response = requests.post(LIBRE_URL, json=payload)
    translated = response.json()["translatedText"]

    return {
        "original": source_text,
        "translated": translated,
        "source_language": detected_lang,
        "target_language": target_lang
    }

# 파이프라인 실행
output = transcribe_and_translate("meeting.mp3", target_lang="es")
print(f"ES: {output['translated']}")

Coqui TTS 통합 (번역 + 음성 합성) #

텍스트를 번역하고 대상 언어로 음성을 합성합니다:

# translate_and_speak.py
import requests
from TTS.api import TTS

# TTS 초기화
tts = TTS("tts_models/multilingual/multi-dataset/xtts_v2", gpu=False)

def translate_and_speak(text: str, target_lang: str, speaker_wav: str):
    # 번역
    payload = {"q": text, "source": "en", "target": target_lang, "format": "text"}
    response = requests.post("http://localhost:5000/translate", json=payload)
    translated = response.json()["translatedText"]

    # 음성 합성
    output_path = f"output_{target_lang}.wav"
    tts.tts_to_file(
        text=translated,
        speaker_wav=speaker_wav,
        language=target_lang,
        file_path=output_path
    )
    return output_path

# 다국어 오디오 생성
for lang in ["es", "fr", "de"]:
    translate_and_speak("Welcome to our service", lang, "reference.wav")

cURL API 예시 #

# 기본 번역
curl -X POST http://localhost:5000/translate \
  -H "Content-Type: application/json" \
  -d '{"q": "Hello world", "source": "en", "target": "es"}'

# 응답: {"translatedText": "Hola mundo"}

# 언어 감지
curl -X POST http://localhost:5000/detect \
  -H "Content-Type: application/json" \
  -d '{"q": "Bonjour le monde"}'

# 지원 언어 목록
curl http://localhost:5000/languages

# API 키로 번역 (활성화된 경우)
curl -X POST http://localhost:5000/translate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{"q": "Production deployment", "source": "en", "target": "de"}'

# HTML 번역
curl -X POST http://localhost:5000/translate \
  -H "Content-Type: application/json" \
  -d '{
    "q": "<p>Hello <b>world</b></p>",
    "source": "en",
    "target": "fr",
    "format": "html"
  }'

Nginx 역방향 프록시 구성 #

도메인 및 HTTPS가 있는 프로덕션 배포의 경우:

# /etc/nginx/sites-available/libretranslate
server {
    listen 443 ssl http2;
    server_name translate.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    client_max_body_size 50M;

    location / {
        proxy_pass http://localhost:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300s;
    }
}

# HTTP를 HTTPS로 리다이렉트
server {
    listen 80;
    server_name translate.yourdomain.com;
    return 301 https://$server_name$request_uri;
}

구성 활성화:

sudo ln -s /etc/nginx/sites-available/libretranslate /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

벤치마크 / 실제 사용 사례 #

LibreTranslate의 성능은 하드웨어 구성, 로드된 언어 및 텍스트 길이에 따라 크게 달라집니다. 아래는 프로덕션 배포에서 측정된 벤치마크입니다.

번역 API 지연 시간 비교

번역 속도 벤치마크 #

하드웨어로드된 언어평균 지연 시간 (50단어)처리량 (req/s)참고
2 vCPU, 4GB RAM5180ms12CPU 전용, Docker
4 vCPU, 8GB RAM11120ms28CPU 전용, Docker
4 vCPU, 16GB RAM30200ms18CPU 전용, 전체 언어
8 vCPU, 16GB + RTX 30601145ms85CUDA 가속
2 vCPU, 4GB (DigitalOcean)5220ms10클라우드 VPS, CPU 전용

번역 품질 비교 #

WMT14 영어-독일어 테스트 세트에서의 BLEU 점수 (높을수록 좋음):

시스템BLEU 점수단어 오류율추론 시간
LibreTranslate (Argos)22.462%120ms
Google Translate API26.851%85ms
DeepL API28.148%90ms
Argos Translate (CLI)22.462%115ms

LibreTranslate는 Argos Translate CLI와 정확히 동일한 엔진을 공유하므로 성능이 완전히 일치합니다. 상용 API와의 품질 격차는 측정 가능하지만 좁혀지고 있습니다: 일반적인 유럽 언어 쌍의 경우 LibreTranslate는 대부분의 사용 사례에 대해 허용 가능한 번역을 생성합니다. 덜 일반적인 언어 쌍, 기술 분야 텍스트 및 미묘한 창작 콘텐츠의 경우 격차가 커집니다.

대규모 비용 분석 #

월간 볼륨LibreTranslate (자체 호스팅)Google TranslateDeepL API
100만 문자$10 (VPS 비용)$20$6.99 (프리 티어)
1,000만 문자$10 (VPS 비용)$200$20
1억 문자$40 (전용 서버)$2,000$125
10억 문자$200 (GPU 서버)$20,000$1,000

LibreTranslate의 경제적 논거는 볼륨에 비례하여 강화됩니다. 월 1억 문자 이상에서는 자체 호스팅이 상용 대안보다 10-50배 저렴합니다.

실제 사용 사례 #

  • 정부 기관: 데이터 유출 위험 없이 기밀 문서 처리.
  • 의료 시스템: HIPAA/GDPR 제약 하에서 환자 기록 번역.
  • 이커머스 플랫폼: 품목당 제로 비용으로 제품 카탈로그 대량 번역.
  • 콘텐츠 관리 시스템: 사용자 생성 콘텐츠의 실시간 번역.
  • 연구 기관: 내 인프라에서 다국어 학술 논문 처리.
  • 모바일 앱 백엔드: 여행 및 커뮤니케이션 앱을 위한 저지연 번역.

고급 사용법 / 프로덕션 강화 #

프로덕션에서 LibreTranslate를 실행하려면 보안, 확장성 및 모니터링에 주의가 필요합니다.

API 키 관리 #

액세스를 제어하고 남용을 방지하기 위해 API 키 인증을 활성화합니다:

# API 키가 활성화된 docker-compose.yml
services:
  libretranslate:
    image: libretranslate/libretranslate:v1.9.5
    environment:
      - LT_API_KEYS=true
      - LT_REQ_LIMIT=100
      - LT_REQ_LIMIT_PER_DAY=10000
    volumes:
      - lt-models:/home/libretranslate/.local
      - lt-db:/app/db

데이터베이스 또는 관리 인터페이스를 통해 API 키를 생성하고 관리합니다.

커스텀 모델 로딩 #

필요한 언어만 로드하여 메모리 사용을 제어합니다:

# 유럽 언어만 로드
LT_LOAD_ONLY=en,es,fr,de,it,pt,nl,pl,ru docker compose up -d

# 아시아 + 유럽 언어 로드
LT_LOAD_ONLY=en,ja,zh,ko,es,fr,de docker compose up -d

상태 모니터링 #

LibreTranslate는 내장 상태 확인 엔드포인트를 포함합니다:

# 서비스 상태 확인
curl http://localhost:5000/health

# 예상 응답: {"status": "ok"}

Prometheus 기반 모니터링의 경우 간단한 익스포터를 추가합니다:

# prometheus_exporter.py
from prometheus_client import start_http_server, Counter, Histogram
import requests
import time

TRANSLATION_COUNTER = Counter('libretranslate_requests_total', '총 번역 수')
LATENCY_HISTOGRAM = Histogram('libretranslate_latency_seconds', '번역 지연 시간')

def monitor():
    start_http_server(9090)
    while True:
        start = time.time()
        requests.post("http://localhost:5000/translate",
            json={"q": "test", "source": "en", "target": "es"})
        LATENCY_HISTOGRAM.observe(time.time() - start)
        TRANSLATION_COUNTER.inc()
        time.sleep(30)

if __name__ == "__main__":
    monitor()

Kubernetes 자동 확장 #

고가용성 배포를 위해 HPA가 있는 Kubernetes를 사용합니다:

# libretranslate-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: libretranslate
spec:
  replicas: 2
  selector:
    matchLabels:
      app: libretranslate
  template:
    metadata:
      labels:
        app: libretranslate
    spec:
      containers:
      - name: libretranslate
        image: libretranslate/libretranslate:v1.9.5
        ports:
        - containerPort: 5000
        env:
        - name: LT_LOAD_ONLY
          value: "en,es,fr,de,it"
        - name: LT_THREADS
          value: "4"
        resources:
          requests:
            memory: "2Gi"
            cpu: "1000m"
          limits:
            memory: "4Gi"
            cpu: "2000m"
        livenessProbe:
          httpGet:
            path: /health
            port: 5000
          initialDelaySeconds: 60
          periodSeconds: 30
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: libretranslate-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: libretranslate
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

배포:

kubectl apply -f libretranslate-deployment.yaml

백업 전략 #

언어 모델은 다시 다운로드할 수 있지만 API 키와 로그가 있는 SQLite 데이터베이스는 백업해야 합니다:

#!/bin/bash
# backup.sh - 일일 백업 cron 작업
BACKUP_DIR="/backups/libretranslate"
DATE=$(date +%Y%m%d)

# 데이터베이스 백업
docker cp libretranslate:/app/db "$BACKUP_DIR/db_$DATE.sqlite"

# 모델 동기화 (선택 사항 - 다시 다운로드 가능)
rsync -av /var/lib/docker/volumes/lt-models/_data/ "$BACKUP_DIR/models/"

# 7일간의 백업만 유지
find "$BACKUP_DIR" -name "db_*.sqlite" -mtime +7 -delete

crontab에 추가:

0 2 * * * /path/to/backup.sh

대안과의 비교 #

기능LibreTranslateArgos TranslateGoogle Translate APIDeepL API
라이선스AGPL-3.0MIT독점독점
자체 호스팅예 (CLI)아니오아니오
오프라인 가능아니오아니오
지원 언어30+30+130+30+
비용 (월 100만 문자)~$10 VPS~$10 VPS$20$6.99+
번역 품질양호양호우수우수
REST API아니오
Web UI아니오
GPU 가속예 (CUDA)CPU 전용클라우드 전용클라우드 전용
프라이버시완전 (데이터 로컬 유지)완전Google에 데이터 전송DeepL에 데이터 전송
속도 제한구성 가능해당 없음할당량 기반할당량 기반
설정 복잡도중간 (Docker)낮음 (pip)낮음 (API 키)낮음 (API 키)

LibreTranslate는 특한 틈새 시장을 채웁니다: REST API, Web UI, GPU 가속 및 완전한 오프라인 기능을 오픈소스 라이선스로 결합한 유일한 옵션입니다. Argos Translate는 동일한 번역 엔진을 제공하지만 API 계층이 없습니다. Google과 DeepL은 우수한 품질과 더 넓은 언어 지원을 제공하지만 프라이버시, 지속적인 비용 및 외부 종속성이라는 대가를 치릅니다.

한계 / 솔직한 평가 #

LibreTranslate는 상업적 번역 API의 보편적인 대체품이 아닙니다. 그 한계를 이해하는 것은 정보에 입각한 채택 결정을 내리는 데 필수적입니다.

번역 품질 격차: WMT14 벤치마크에서 LibreTranslate는 DeepL보다 약 5.7 BLEU 점, Google Translate보다 4.4 점 낮습니다. 이 격차는 다음에서 가장 두드러집니다: (1) 영어-스와힐리어 또는 핀란드어-베트남어와 같은 덜 일반적인 언어 쌍, (2) 법률, 의료 또는 기술 텍스트의 도메인별 용어, (3) 창의적이거나 관용적인 콘텐츠.

리소스 집약적: 각 로드된 언어 쌍은 300-600MB의 RAM을 소비합니다. 전체 30개 언어 배포에는 8GB 이상의 메모리가 필요합니다. 이는 LibreTranslate를 Raspberry Pi(2-3개 언어만 로드하는 경우 제외)나 소형 VPS 인스턴스와 같은 리소스 제한 환경에 부적합하게 만듭니다.

언어 커버리지: LibreTranslate는 30개 이상의 언어를 지원하여 가장 일반적인 언어 쌍을 커버하지만 Google Translate의 130개 이상의 언어에는 크게 못 미칩니다. 소수 또는 멸종 위기 언어 번역이 필요한 경우 LibreTranslate는 충분하지 않습니다.

실시간 스트리밍 없음: LibreTranslate는 완전한 텍스트 세그먼트를 처리합니다. 스트리밍 번역이나 실시간 음성-텍스트 번역을 지원하지 않으므로 라이브 대화 시나리오에서의 적용이 제한됩니다.

AGPL-3.0 라이선스 영향: AGPL-3.0 라이선스는 소프트웨어의 모든 네트워크 사용(API 포함)이 동일한 조건 공유 요구를 트리거하도록 요구합니다. LibreTranslate 기반으로 독점 제품을 구축하는 조직은 라이선스 준수와 관련하여 법률 자문을 구해야 합니다.

유지보수 부담: 자체 호스팅은 업데이트, 보안 패치, 모델 업데이트 및 인프라 모니터링에 대한 책임이 사용자에게 있다는 의미입니다. 관리형 API와의 비용 비교 시 운영 오버헤드를 고려하세요.

자주 묻는 질문 #

LibreTranslate와 직접 Argos Translate를 실행하는 것의 차이점은 무엇인가요? #

LibreTranslate는 본질적으로 Argos Translate의 REST API 래퍼입니다. 명령줄 번역만 필요한 경우 Argos Translate의 오버헤드가 더 낮습니다. HTTP API, 웹 인터페이스 또는 다중 사용자 액세스가 필요한 경우 LibreTranslate가 이러한 계층을 추가합니다. 둘 다 동일한 번역 모델을 공유하고 동일한 출력을 생성합니다.

LibreTranslate를 Raspberry Pi에서 실행할 수 있나요? #

예, 제약이 있습니다. ARM Docker 이미지는 ARM64 시스템에 최적화되어 있습니다. 메모리 사용량을 2GB 이하로 유지하기 위해 2-3개의 언어 쌍만 로드하세요. Raspberry Pi 4(4GB RAM)에서는 요청당 번역 지연이 800ms-1.5s입니다. 프로덕션 사용에는 최소 4GB RAM이 권장됩니다.

컨테이너를 재시작하지 않고 언어 모델을 어떻게 업데이트하나요? #

LT_UPDATE_MODELS=true 환경 변수를 설정합니다. LibreTranslate는 시작 시 모델 업데이트를 확인합니다. Kubernetes 배포에서 롤링 업데이트를 위해 롤링 재시작 전략을 사용하세요: 새 이미지 버전으로 배포를 업데이트하면 Kubernetes가 점진적으로 Pod를 교체합니다.

번역 요청당 최대 텍스트 길이는 얼마인가요? #

--char-limit 플래그 또는 LT_CHAR_LIMIT 환경 변수를 통해 구성할 수 있습니다. 기본값은 요청당 10,000자입니다. 더 긴 문서의 경우 텍스트를 청크로 분할하고 순차 API 호출을 수행합니다.

LibreTranslate는 HIPAA 또는 GDPR 준수에 적합한가요? #

LibreTranslate의 자체 호스팅 특성은 데이터가 인프라를 떠나지 않는다는 의미이므로 규정 준수가 단순화됩니다. 그러나 규정 준수는 시스템 수준 속성이지 소프트웨어 수준 속성만은 아닙니다. 호스트 OS, 네트워크, 백업 및 액세스 제어도 보호해야 합니다. 전체 평가를 위해 규정 준수 담당자와 상담하세요.

커스텀 언어 모델을 어떻게 추가하나요? #

LibreTranslate는 Argos Translate 형식(OpenNMT CTranslate2 모델)을 지원합니다. 커스텀 .argosmodel 파일을 모델 디렉토리에 배치하고 컨테이너를 재시작합니다. 커스텀 모델은 도메인별 용어나 기본 모델 세트에 포함되지 않은 언어에 유용합니다.

React나 Vue와 같은 프론트엔드 프레임워크에서 LibreTranslate를 사용할 수 있나요? #

예. /translate 엔드포인트는 JSON을 수락하고 구성 시 CORS를 지원합니다. React Hook 예시:

// useTranslation.ts
import { useState, useCallback } from "react";

export function useTranslation() {
  const [translating, setTranslating] = useState(false);

  const translate = useCallback(async (text: string, source: string, target: string) => {
    setTranslating(true);
    try {
      const res = await fetch("http://localhost:5000/translate", {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({ q: text, source, target }),
      });
      const data = await res.json();
      return data.translatedText;
    } finally {
      setTranslating(false);
    }
  }, []);

  return { translate, translating };
}

오프라인 배포의 네트워크 요구사항은 무엇인가요? #

완전한 오프라인 작동을 위해 --build-arg with_models=true로 Docker 이미지를 빌드하여 빌드 중에 언어 모델을 포함시킵니다. 결과 이미지는 필요한 모든 파일을 포함하며 런타임에 인터넷 연결이 필요하지 않습니다. 이미지 크기는 포함된 언어 수에 따라 약 2-3GB 증가합니다.

결론 #

LibreTranslate는 핵심 약속을 이행합니다: 제로 요청당 비용과 완전한 데이터 프라이버시를 갖춘 자체 호스팅 번역 API입니다. 14,400개 이상의 GitHub Stars, 활발한 유지보수 및 안정성 개선을 제공하는 v1.9.5를 통해 절대 번역 품질보다 제어를 우선시하는 팀에게 프로덕션 준비가 완료되었습니다.

이상적인 LibreTranslate 도입자는 다음을 갖춘 팀입니다: (1) 문자당 가격 책정을 불편하게 만드는 일관된 번역 볼륨, (2) 엄격한 데이터 상주 요구사항, (3) 인프라를 관리할 DevOps 역량, (4) 상업적 대안에 비해 측정 가능하지만 수용 가능한 품질 격차에 대한 허용.

이것이 귀하의 상황을 설명한다면 이 가이드의 Docker Compose 설정으로 시작하여 5개 언어를 로드하고 특정 콘텐츠에 대해 번역 품질을 측정하세요. 대부분의 팀은 품질이 낮은工具, 제품 카탈로그 및 사용자 생성 콘텐츠에 대해 충분하다고 판단합니다.

절대적으로 가장 높은 번역 품질이나 100개 이상의 언어 지원이 필요한 팀의 경우 상용 API가 여전히 실용적인 선택입니다. 그 외의 경우 LibreTranslate는 반복되는 클라우드 비용 항목을 제거합니다.

커뮤니티 지원을 위해 LibreTranslate Telegram 그룹에 가입하거나 릴리스 업데이트를 위해 GitHub에서 프로젝트를 팔로우하세요.

추천 호스팅 및 인프라 #

위 도구들을 프로덕션에 배포하려면 안정적인 인프라가 필요합니다. dibi8가 직접 사용 중인 두 가지 옵션:

  • DigitalOcean — 60일 $200 무료 크레딧, 14개 이상 글로벌 리전. 오픈소스 AI 도구의 기본 선택.
  • HTStack — 홍콩 VPS, 중국 본토 저지연 접속. dibi8.com 호스팅 중인 검증된 IDC.

제휴 링크 — 추가 비용 없이 dibi8 운영을 지원합니다.

출처 및 추가 참고 자료 #


고지사항: 이 문서에는 제휴 링크가 포함되어 있습니다. 이 가이드의 추천 링크를 통해 DigitalOcean에 가입하면 추가 비용 없이 커미션을 받을 수 있습니다. 제휴 링크는 이와 같은 오픈소스 문서 프로젝트의 지속적인 유지보수를 지원하는 데 도움이 됩니다.

💬 댓글 토론