ChatGPT를 이용한 효율적인 다국어지원
이 글은 ChatGPT API를 이용해 제품의 다국어지원(i18n)을 효율적으로 지원하는 경험을 공유하며, API를 통합하는 팁, 번역 결과 개선, 그리고 더 나은 결과를 얻기 위한 상세 지침 최적화에 대한 정보를 제공합니다.
오늘날의 글로벌 시장에서는 제품을 다국어지원(i18n)하는 것이 필수적입니다. 여러 언어를 지원함으로써 제품은 전 세계 사용자 기반을 유치하고 서비스 할 수 있으며, 사용자 경험을 향상시키고, 충성도를 높이며, 시장 점유율을 늘릴 수 있습니다. 그러나, 다국어지원은 종종 높은 비용과 복잡한 유지 보수 작업을 수반합니다:
- 언어 지원 설정을 위해서는 전문 팀을 구성하고, 적절한 파트너를 선택하는 데 시간과 노력이 필요합니다.
- 전통적인 번역 과정은 느리고 수동적인 개입이 필요하여, 제품 반복에 대응하기 어렵습니다.
이 글에서는 Logto 팀이 ChatGPT와 그 API를 사용해 제품의 다국어지원을 효율적으로 지원하는 경험을 공유하면서, 최소한의 비용으로 이를 실현한 방법을 공유하겠습니다.
국제화 접근 방식
ChatGPT API를 통합하기 전에는, 제품을 위한 다국어지원을 지원하려면 전통적인 번역 과정을 따랐습니다. 그 과정은 다음과 같습니다:
- 각 언어에 대해, 여러 TypeScript 파일이 포함된 번역 폴더를 생성했습니다. 각 파일은 문구 키와 그 번역을 나타내는 키-값 쌍으로 이루어진 TypeScript 객체로 구성되어 있었습니다.
- 새로운 문구를 추가하려면, 각 언어의 번역 파일에 수동으로 새로운 키-값 쌍을 추가했습니다.
- 각 언어의 루트 디렉토리에서, 해당 언어의 모든 번역 파일을 내보내는 index.ts 파일을 생성했습니다.
다음은 zh-HK 언어에 대한 index.ts 파일의 예입니다:
UI에서 문구를 표시하려면, 현재 환경에 따른 번역을 검색하는 함수를 사용했습니다. 점 표기법을 사용하여 중첩된 객체나 키에 접근했습니다.
예를 들어, 사용자가 영어 브라우저를 사용하는 경우:
직면한 도전
이런 접근 방식으로 두 가지 주요 문제에 직면했습니다:
- 언어와 문구의 수가 늘어나면서, 번역 파일을 유지 관리하는 것이 어려워졌습니다. 각 언어에 새로운 문구를 수동으로 추가하는 작업은 시간이 많이 들고 오류가 발생하기 쉬웠습니다.
- 번역 과정이 신뢰성이 떨어졌습니다. 전용 번역 팀이 없었기 때문에 대부분의 번역에는 커뮤니티 사용자에게 의존하였습니다. 그들은 훌륭한 작업을 했지만, 번역들은 시간이 지나며 불완전하고 일관성이 없어졌습니다.
ChatGPT 소개
ChatGPT가 인기를 얻으면서, 우리는 흥미로운 사용 사례를 발견했습니다. 우연히 TypeScript 문구 객체를 ChatGPT에 복사하고 보니, 코드 구조를 유지하면서 코드 스니펫을 번역할 수 있었습니다. 이 발견이 우리를 흥분시켰습니다.
예를 들어:
그리고 결과는:
이는 정말 놀랍습니다. 실제 사례에서는 일부 번역하지 않은 문구가 // UNTRANSLATED
로 표시된 이력 파일도 있었습니다:
ChatGPT는 심지어 코드 스니펫을 "