병렬 처리

Lingo.dev CLIrun 명령을 통해 병렬 처리를 제공하며, 이는 여러 현지화 작업을 동시에 처리하여 대규모 프로젝트의 번역 시간을 획기적으로 단축합니다.

run 명령은 향후 버전에서 i18n 명령을 점진적으로 대체할 예정이며, 동시 처리를 통해 동일한 기능을 제공하면서도 성능을 크게 향상시킵니다.

기본 사용법

병렬 처리로 모든 번역 처리하기:

npx lingo.dev@latest run

동시성 수준 제어하기:

npx lingo.dev@latest run --concurrency 20

run 명령은 표준 i18n 명령과 동일한 i18n.json 구성 및 i18n.lock 파일을 사용합니다.

병렬 처리 작동 방식

Lingo.dev CLI는 현지화 작업을 여러 동시 작업자에게 분산시켜 다양한 언어 쌍과 파일 패턴을 동시에 처리합니다.

아키텍처 개요:

  1. 작업 생성 — CLI가 구성을 분석하고 각 로케일/파일 조합에 대한 개별 작업을 생성합니다
  2. 작업자 분배 — 작업이 여러 작업자 프로세스에 분산됩니다
  3. 동시 처리 — 작업자가 파일 충돌을 방지하면서 번역을 동시에 처리합니다
  4. 결과 집계 — 완료된 번역이 대상 파일에 안전하게 기록됩니다

동시성 제어

작업자 수 설정:

npx lingo.dev@latest run --concurrency 15

기본 동시성은 10개의 작업자입니다. 값이 높을수록 번역 속도가 빨라지지만 시스템 리소스를 더 많이 소비하고 API 속도 제한에 도달할 수 있습니다.

최적의 동시성은 시스템 성능과 번역 제공업체의 제한에 따라 달라집니다. 기본값으로 시작하여 성능에 따라 조정하세요.

대상 지정 처리

특정 언어 처리하기:

npx lingo.dev@latest run --locale es --locale fr

특정 파일 유형 처리하기:

npx lingo.dev@latest run --bucket json

특정 파일 처리하기:

npx lingo.dev@latest run --file components/header

특정 키 처리하기:

npx lingo.dev@latest run --key welcome.title

강제 재번역:

npx lingo.dev@latest run --force

이러한 대상 지정 옵션은 i18n 명령과 동일하게 작동하지만 작업을 병렬로 처리합니다.

경쟁 상태 방지

Lingo.dev CLI는 병렬 처리 중 파일 손상을 방지하기 위해 여러 안전장치를 제공합니다:

I/O 동기화 — 파일 시스템 작업이 동기화되어 여러 워커가 동시에 같은 파일에 쓰는 것을 방지합니다.

잠금 파일 보호i18n.lock 파일은 원자적 작업을 사용하여 동시 업데이트 중 손상을 방지합니다.

트랜잭션 처리 — 각 작업은 완전히 완료되거나 깨끗하게 실패하여 일관된 파일 상태를 보장합니다.

성능 최적화

높은 동시성 값을 사용할 때 시스템 리소스를 모니터링하세요. CLI는 효율성을 위해 설계되었지만, 매우 큰 프로젝트는 리소스 모니터링의 이점을 얻을 수 있습니다.

기본값으로 시작하세요:

npx lingo.dev@latest run

# 최적화된 동시성 설정 사용

점진적으로 확장하세요:

npx lingo.dev@latest run --concurrency 20

# 시스템이 부하를 잘 처리하면 증가시키세요

반복을 위한 특정 콘텐츠 대상 지정:

npx lingo.dev@latest run --file src/components

# 변경된 컴포넌트만 처리

호환성

run 명령은 기존 구성과 완전한 호환성을 유지합니다:

  • 동일한 i18n.json 형식 — 구성 변경이 필요하지 않음
  • 동일한 i18n.lock 동작 — 증분 번역 추적이 동일하게 작동
  • 동일한 파일 형식 — 모든 버킷 유형 지원
  • 동일한 대상 지정 옵션--locale, --bucket, --key, --file, --force 플래그가 동일하게 작동

i18n 명령에서 마이그레이션:


# 현재 명령

npx lingo.dev@latest i18n

# 병렬 등가물

npx lingo.dev@latest run

모든 기능이 크게 향상된 성능으로 직접 전환됩니다.

워커 풀 아키텍처

Lingo.dev CLI는 정교한 워커 풀 시스템을 사용합니다:

동적 할당 — 시스템 리소스 및 동시성 설정에 기반하여 워커가 생성됩니다.

작업 분배 — 최적화된 알고리즘을 사용하여 작업이 워커 간에 균등하게 분배됩니다.

진행 상황 추적 — 모든 병렬 작업에 대한 실시간 진행 상황 모니터링.

리소스 관리 — 처리가 완료되면 자동 정리 및 리소스 할당 해제.