인포그랩은 2024년 11월 ‘Teleport 공식 기술 문서 한글판 by 인포그랩(이하 Teleport 공식 기술 문서 한글판)’을 선보였습니다. 이 서비스는 인프라 접근 관리 도구인 Teleport의 전체 기술 문서를 한글로 제공하는데요. 인포그랩은 OpenAI의 생성형 인공지능(AI) 모델 GPT로 Teleport 기술 문서 총 700여 개를 번역했습니다. Teleport의 공식 리셀러인 인포그랩은 국내 사용자가 Teleport를 더 쉽게 이해하고 편리하게 사용하도록 지원하고자 이 서비스를 만들었습니다.
저는 이번 프로젝트에서 AI 번역 로직 구현과 MDX 문법 교정 스크립트 개발 등을 담당했는데요. 제가 사내 기술 문서 번역 프로젝트에 참여한 건 ‘GitLab 공식 기술 문서 한글판 by 인포그랩’과 ‘Mattermost 공식 기술 문서 한글판 by 인포그랩’에 이어 이번이 세 번째였습니다. 이 글에서는 제가 Teleport 기술 문서를 AI로 번역하며 부딪친 난관과 이를 극복한 과정을 공유하려 합니다. Teleport 공식 기술 문서 한글판의 서비스 내용과 개발 배경은 다음 글을 참고해 주세요.
MDX 문법의 특수성
개발 후기를 본격적으로 설명하기에 앞서 Teleport 기술 문서 형식을 먼저 짚고 가겠습니다. Teleport 기술 문서는 MDX 형식인데요. MDX는 Markdown에 기반하지만 완전한 Markdown은 아닙니다. MDX는 Markdown과 구체적으로 무엇이 다를까요? MDX 문법의 특수성을 살펴보겠습니다.
MDX란?
MDX는 Markdown과 JSX(JavaScript XML)를 결합한 형식입니다. 이는 대화형 차트나 알림과 같은 컴포넌트를 가져와 콘텐츠에 포함하도록 지원하죠. 확장자는 .mdx
입니다.
MDX는 일반 Markdown 파일처럼 작성할 수 있는데요. Markdown과 다른 점은 React 컴포넌트를 파일 내부에 직접 사용할 수 있다는 겁니다. 예를 들어, MDX 파일에는 React 컴포넌트를 아래와 같이 포함할 수 있는데요.
안녕하세요!
이것은 일반 Markdown 내용입니다.
<MyComponent title="MDX를 활용해보세요!">
InfoGrab의 John입니다.
</MyComponent>
위 예시에서 MyComponent
는 React 컴포넌트로, MDX 파일에 위와 같이 삽입할 수 있습니다.
특수 문법
MDX를 사용하면, Admonition
또는 Notice
와 같은 React 컴포넌트도 파일에 포함할 수 있습니다. Teleport 기술 문서에서 Admonition
은 특정 정보를 강조하거나 경고를 표시하는 데 쓰이는데요. 이 컴포넌트는 JSX 태그 형태로 작성하죠. Admonition
은 아래 와 같이 MDX 파일에 다른 Markdown 콘텐츠와 함께 사용할 수 있습니다.
<Admonition type="note">
이것은 사용 기반 요금제를 사용하는 사용자에게만 표시됩니다. 사용자는 청구 리소스를 읽을 수 있는 권한이 필요합니다.
</Admonition>

Admonition
이 Teleport 기술 문서 사이트 UI에 적용된 모습
번역용 프롬프트도 일신우일신
앞서 언급했듯 MDX는 Markdown에 기반하지만 완전한 Markdown은 아닙니다. 저는 지난 프로젝트에서 RST 형식인 Mattermost 기술 문서를 번역하다 문법 특수성 문제로 고생했는데요. 이 기억을 떠올리며 ‘예전 번역 프로젝트에서 활용한 프롬프트를 이번에 그대로 재활용해선 안 된다’는 점을 상기했습니다.
따라서 MDX 형식을 고려해 역할, 특수 문법 번역 시 주의 사항, 번역 규칙, 예시를 구체적으로 담아 Teleport 기술 문서 번역용 프롬프트를 재작성했습니다. 특히 Admonition
, Notice
와 같은 React 컴포넌트 이름을 AI로 번역할 때, 문서가 정상적으로 빌드되지 않을 수 있는데요. 이러한 가능성을 염두에 두고 프롬프트를 신중하고 세밀하게 작성했습니다.
이를 제외하면 Teleport 기술 문서 번역은 GitLab 기술 문서 번역과 비슷한 점이 많았습니다. 이에 저는 이번 프로젝트를 빠르게 완료할 걸로 예상했고요. 실제 번역 작업은 예상보다 훨씬 더 신속히 이뤄졌습니다.
‘번역을 완료하면, 배포도 금방 하겠지’라고 생각하며 배포 작업에 들어갔는데요. 막상 작업을 수행하다 보니 예상치 못한 문제점이 수면 위로 하나둘씩 드러났습니다.