본문으로 건너뛰기

GitLab 기술 문서 번역용 GPT 설계 가이드

Jeff
· 약 25분

인포그랩은 올해 2월 ‘GitLab 공식 기술 문서 한글판 by 인포그랩(이하 GitLab 공식 기술 문서 한글판)’이라는 신규 서비스를 선보였습니다. 이 서비스는 미국 연구 기업 OpenAI의 생성형 인공지능(AI) 모델 gpt-3.5-turbo-1106을 사용해 GitLab 기술 문서 총 2000여 개를 한글로 자동 번역해 제공하죠. 인포그랩은 사내 프로젝트로 GitLab 공식 기술 문서 한글판을 개발했는데요. 저는 이 프로젝트 리더로 마일스톤 설정, 아이디어 취합, AI 번역 로직 구현을 비롯해 여러 개발, 배포 업무를 수행했습니다.

DevOps 엔지니어인 저는 평소 GItLab CI/CD 파이프라인과 여러 DevOps 도구를 다루는데요. 업무 특성상 GitLab 기술 문서를 많이 봐야 합니다. 영어 원문으로만 읽으면 시간이 오래 걸려 번역 서비스인 DeepL이나 구글 번역도 활용하는데요. 이 도구들은 내용을 엉뚱하게 번역하거나 엔지니어가 이해할 수 없는 단어로 번역해 불편했습니다. 저와 비슷한 고충을 겪은 분들 계시죠?

저는 이러한 불편을 해소하고자 GitLab 기술 문서 한글판 개발 프로젝트에 참여했습니다. GPT로 GitLab 기술 문서를 자동 번역하도록 프롬프트 설계, AI 번역 로직 구현 등을 진행했는데요. 이 글에서는 GPT로 GitLab 기술 문서를 번역한 배경과 효과적인 프롬프트 작성 요건, ‘번역용 GPT’를 설계한 방법과 GitLab 특수 마크다운 문법을 번역용 GPT에 적용한 방법을 소개하겠습니다.

GPT로 GitLab 공식 기술 문서 번역한 배경

모든 행동에는 이유가 있습니다. 인포그랩이 GPT로 GitLab 공식 기술 문서를 자동 번역한 이유도 당연히 있죠.

1.GitLab 기술 문서 이용 편의 ↑

GitLab 공식 기술 문서 원문 페이지. 출처=GitLab | 인포그랩 GitLab
GitLab 공식 기술 문서 원문 페이지. 출처=GitLab

GitLab은 기술 문서를 한글로 정식 번역해 제공하지 않습니다. 국내 GitLab 사용자 다수는 GitLab 공식 홈페이지에서 기술 문서 원문(영문)을 읽거나, 이를 따로 번역해서 보죠. 영어가 능숙하지 않으면 원문을 빠르고 정확하게 이해하기 어려울 수 있습니다. 이에 국내 많은 GitLab 사용자가 DeepL, 구글 번역 등 번역 서비스로 기술 문서 원문을 번역해 읽는데요. 원문과 한글 번역본을 번갈아 보기도 합니다.

저는 화면 왼쪽에는 기술 문서 원문을, 오른쪽에는 한글 번역본을 두고 읽는데요. 목차와 문맥은 한글 번역본으로 파악하고요. 번역할 수 없는 전문 용어와 코드 블록은 원문을 보며 내용을 확인합니다. 이러한 방식은 시간이 오래 걸리고, 높은 집중력이 필요합니다. 할 일도 많은데 문서를 읽고 이해하는 데 너무 많은 시간을 쓰는 건 아깝죠. 이러한 문제를 개선해 국내 GitLab 사용자의 시간을 절약하고 싶었습니다.

2.GPT ‘저투자 고효율’ 번역 가치

출처=픽사베이 | 인포그랩 GitLab
출처=픽사베이

인포그랩은 GitLab 기술 문서를 처음부터 한글 번역본으로 제공하면 이러한 문제를 해결할 걸로 기대했습니다. 한글 번역본이 있으면 사용자가 기술 문서 원문을 복사해 번역 서비스에 일일이 붙여 넣고 번역하지 않아도 되고요. 문서 목차와 핵심 내용을 더 빨리 파악할 수 있죠. 또 ‘원문을 꼭 확인해야 할 문서가 뭔지’ 더 신속하게 발견할 수 있고요. 이로써 기술 문서를 읽는 시간을 아껴 다른 중요한 업무에 집중할 시간을 확보할 수 있습니다.

우리는 이를 구현할 수단으로 GPT에 주목했습니다. 생성형 인공지능(AI)으로 번역을 자동화하면 기술 문서를 한글로 더 빠르게 번역할 수 있고요. 2000개가 넘는 GitLab 기술 문서를 하나도 빠짐없이 한글 번역본으로 제공할 수 있죠. 아울러 GitLab 버전이 업데이트될 때마다 기술 문서의 변경 사항을 더 신속하게 반영할 수 있고요. 참고로 인포그랩은 전부터 GitLab 한글 가이드를 수동으로 제작, 제공했는데요. 모든 GitLab 기술 문서를 한글 번역본으로 수동 제작하려면 한계가 있었습니다.

gpt-3.5-turbo-1106은 요금, 번역 분량 등을 고려했을 때 우리 비용과 품질 기준을 충족했습니다. 이는 GPT 상위 모델보다 10배 더 저렴하지만 번역 결과는 비등비등했죠. 아울러 GPTs 기능을 활용하면 나만의 맞춤형 GPT를 만들 수 있는데요. 여기서 GPT 기능과 역할, 조건 등을 구체적으로 설정하면, 내가 원하는 결과물을 도출하도록 GPT를 유도할 수 있습니다. 예를 들어, ‘Disabled’를 ‘장애가 있는’이 아닌 ‘비활성화’로 번역하거나, 소스 코드를 빼고 번역하도록 GPT를 설계할 수 있고요.

3.사내 OKR 달성

인포그랩의 핵심 OKR | 인포그랩 GitLab
인포그랩의 핵심 OKR

GPT를 활용한 GitLab 기술 문서 번역 자동화는 인포그랩 OKR을 달성하는 핵심 활동이었습니다. 인포그랩은 조직의 목표 달성과 성과 창출을 촉진하고자 OKR 방법론을 도입, 운영하는데요. OKR은 Objective(목표)와 Key Results(핵심 결과)를 각각 의미하죠. 인포그랩은 1년 혹은 분기마다 회사의 목표를 수립합니다. 이에 맞춰 세부 목표도 설정하고요. 목표 달성 여부를 확인하도록 목표별 핵심 결과도 계획하죠.

인포그랩은 “지속 가능한 성장 동력을 갖춰 매년 2배 성장한다”는 목표에 따라 ‘한국에서 GitLab은 인포그랩에서 익힌다’는 세부 목표를 도출했는데요. ‘GitLab 기술 문서의 80% 이상을 자동 번역한다’를 이 목표의 핵심 결과로 설정했습니다. GPT로 GitLab 기술 문서를 자동 번역하면 이러한 핵심 결과를 충족할 수 있었습니다. 나아가 ‘한국에서 GitLab은 인포그랩에서 익힌다’라는 세부 목표도 달성해 회사의 지속 가능한 성장 동력에 기여할 수 있고요.

효과적인 프롬프트 작성 요건

GPTs 페이지 화면. 출처=OpenAI | 인포그랩 GitLab
GPTs 페이지 화면. 출처=OpenAI

GPT로 GitLab 공식 기술 문서 번역을 자동화하기에 앞서, 저는 프롬프트 엔지니어링부터 공부했습니다. GPT에 프롬프트로 구체적인 작업 수행 방식을 지시해야 GitLab 기술 문서를 번역할 수 있으니까요. 저는 Udemy에서 프롬프트 엔지니어링 강의를 듣고, 샘플을 만들어보며 프롬프트 작성 방법을 연구했습니다. 프롬프트를 올바르게 작성해야 GPT가 오류를 덜 일으키고, 정확한 답변을 제공할 수 있는데요. 여러 강의와 매체 자료를 조사하면서 효과적인 프롬프트 작성 요건으로 아래 내용을 배웠습니다.

  1. Examples: 사용자가 기대하는 결과의 예시를 적습니다. GPT는 간단한 예시만 봐도 복잡한 작업을 일관성 있게 처리합니다.
  2. Direction: 작업 순서나 규칙을 상세하게 적습니다. 절차가 있는 작업을 ‘1번’, ‘2번’으로 번호를 매겨 지시하면 GPT가 잘 수행합니다.
  3. Parameters: 생성형 AI에는 여러 파라미터를 설정할 수 있습니다. 파라미터는 ‘같은 질문에 다양하게 답변할지(temperature)’, ‘얼마만큼 확률이 높은 답변을 제시할지(top-p)’ 등입니다.
  4. Format: 답변의 형식을 지정합니다. Markdown, JSON, 혹은 CSV 형식을 원하면 그렇게 만들어달라고 요구하세요.
  5. Chaining: 프롬프트나 생성형 AI를 연결해서 사용합니다. ChatGPT에 이미지 생성용 프롬프트를 요청하고, 이미지는 Midjourney에서 얻을 수 있습니다. 각 영역에 특화된 AI를 엮어서 사용하세요.

‘번역용 GPT’ 설계 방법

번역용 GPT 설계용 프롬프트 예제 | 인포그랩 GitLab
번역용 GPT 설계용 프롬프트 예제

저는 GPTs에서 ‘번역용 GPT’를 설계하며 위 요건에 따라 프롬프트를 작성했습니다. 특히 내가 원하는 방식대로 동작하는, 나만의 GPT를 만들려면 Instructions, Responses, Examples를 프롬프트에 포함해야 했는데요. 프롬프트에 GPT 역할, 목표, 답변 요건, 답변 예시 등을 제시해야 하죠. 저는 번역용 GPT를 본격적으로 설계해 GitLab 공식 기술 문서 번역을 자동화하기 전 여러 맞춤형 GPT를 만들어 봤습니다.

위 이미지는 번역용 GPT에 주입할 프롬프트 예제인데요(실제 번역용 GPT 프롬프트와 다릅니다). 이 프롬프트는 Instructions, Responses, Examples 총 세 가지 요소로 이뤄졌습니다. Instructions에는 GPT 역할과 궁극적 목표를 작성합니다. 맞춤형 AI를 설계할 때 ‘AI에 역할을 부여(roleplay)하는 행위가 중요하다’는 연구 결과가 많은데요. 번역가, 선생님, 의사 등 여러분이 원하는 답변자의 직업이나 정체성을 AI에 부여해야 합니다. 이 예제는 AI 역할을 영한 번역가 , 궁극적 목표를 텍스트의 한국어 번역으로 설정했습니다.

Responses에는 답변 요건을 기재하는데요. 저는 AI가 흔히 말하는 “알겠습니다”나 “~하겠습니다”와 같은 사족을 없애려 했습니다. 따라서 위 예제의 Responses에는 추가 설명이나 맥락 없이 간결하게 답변만 해달라고 요청을 넣었습니다. 아울러 번역 작업에만 집중해 모든 상호작용에서 정확성과 간결함을 유지해달라고 재차 주문했고요.

Examples에는 AI가 이해하도록 짧은 답변을 예시로 보여줍니다. 여기서 ‘질문과 답변은 ---로 구분된다’고 명확히 알려줘야 하는데요. 그렇지 않으면 AI는 ‘어디까지가 예시 질문이고, 어디까지가 예시 답변인지’ 분명하게 파악하지 못하고요. 엉뚱한 답변을 내놓을 수 있습니다. 저는 위 예제의 Examples에 Q: apple A: 사과 , Q: Hello, who are you? A: 안녕, 넌 누구야?를 각각 작성했습니다.

GitLab 특수 문법 GPT 적용 방법

GitLab 공식 기술 문서 한글판에 GitLab��의 특수한 마크다운 문법(`**(FREE ALL)**`)을 배지 형태로 적용한 모습 | 인포그랩 GitLab
GitLab 공식 기술 문서 한글판에 GitLab의 특수한 마크다운 문법(**(FREE ALL)**)을 배지 형태로 적용한 모습

번역용 GPT를 설계할 때, GitLab 공식 기술 문서의 특수한 마크다운 문법도 프롬프트로 입력해야 했습니다. 그러려면 개발자가 ‘GitLab 기술 문서의 특수한 마크다운 문법이 뭔지’ 먼저 파악해야 했는데요. 저는 GitLab 기술 문서의 프로젝트를 분석해 빌드 방법과 특수한 마크다운 문법을 찾았습니다. 참고로 GitLab은 Ruby 기반 정적 사이트 생성기 Nanoc을 사용해 기술 문서 사이트를 서비스합니다. 이는 문서를 마크다운 문법에 맞춰 작성하고, HTML로 렌더링하는 구조이죠.

단순한 마크다운 구조라면 앞서 보여드린 프롬프트를 조금만 변형하면 됩니다. GPT는 일반적인 마크다운 문법을 이미 알고 있고, 문법을 깨뜨리지 않고 번역할 수 있으니까요. 그러나 GitLab은 특수한 마크다운 문법을 기술 문서에 추가로 사용합니다. 일반적인 마크다운 문법으로 사용할 수 없는 탭이나 배지를 기술 문서에 적용하는데요. 예를 들어, GitLab 기술 문서에서 **(FREE ALL)** 구문은 렌더링 될 때 화면에서 텍스트가 아닌 배지 형태로 보입니다(2024년 2월 기준). ::Tab은 다른 문법과 합쳐 탭 기능을 표현하고요.

GPT는 ‘GitLab 기술 문서의 특수한 마크다운 문법이 뭔지’ 모릅니다. 따라서 번역용 GPT를 설계할 때 이 내용을 프롬프트에 상세하게 적어야 하는데요. 저는 GitLab 기술 문서의 특수한 마크다운 문법을 번역하는 구체적인 방법과 예제, 제약 조건을 프롬프트에 작성했습니다. 이를 잘 이해하도록 15가지 Examples도 프롬프트로 제공했죠. 그 결과, 총 2500자의 최종 프롬프트를 완성했습니다.

이게 다가 아닙니다. 저는 GPT 번역 완성도를 높이기 위해 샘플 마크다운 파일에 번역을 끊임없이 테스트했는데요. 결과를 검수하면서 프롬프트를 발전시켰죠. 프롬프트가 모두 준비된 뒤 번역용 GPT가 프롬프트에 따라 GitLab 기술 문서를 한글로 번역한 다음, 커밋하는 자동화 로직도 만들었습니다. 이어서 GitLab CI/CD를 구성했는데요. 번역이 완료되면, 이를 GitLab 공식 기술 문서 한글판 사이트에 자동 배포하도록 설정했습니다.

이러한 우여곡절 끝에 GitLab 기술 문서 총 2000여 개를 단돈 3만원에 번역 완료했습니다. gpt-3.5-turbo-1106이 비용 효율적인 모델이라 대규모 문서를 번역해도 큰 비용이 들지 않았죠. 참고로 AI 번역 봇 개발과 최적화, 사이트 구축, 디자인, 프로덕션 환경 배포까지 2주밖에 걸리지 않았습니다.

인포그랩 브랜딩 적용과 최종 배포

GitLab 공식 기술 문서 한글판 메인 페이지 | 인포그랩 GitLab
GitLab 공식 기술 문서 한글판 메인 페이지

기술 문서 번역 자동화 외에도 중요한 작업이 남아 있었습니다. 바로 GitLab 공식 기술 문서 한글판 사이트에 회사를 브랜딩 하는 일인데요. 인포그랩은 사람들에게 ‘GitLab하면 인포그랩’이라는 공식을 각인시키며, 회사의 지속 가능한 성장 동력을 만들고자 이 프로젝트를 진행했습니다. 따라서 GitLab 공식 기술 문서 한글판 사이트에 회사를 브랜딩 하는 작업은 목표 달성에 꼭 필요했습니다.

위 이미지는 GitLab 공식 기술 문서 한글판 사이트의 메인 페이지인데요. GitLab 기술 문서 사이트의 사용자 인터페이스(UI)를 거의 그대로 구현했지만 브랜드 아이덴티티가 확연히 다르게 느껴집니다. 사이트 헤더와 푸터를 인포그랩 공식 홈페이지와 똑같이 적용했고요. 인포그랩의 브랜드 컬러인 녹색 계열을 전체 페이지에 반영했기 때문이죠. 우리 프론트엔드 엔지니어인 Hailie가 이 작업을 수행했는데요. 사이트에서 ‘인포그랩’이라는 브랜드를 더 분명히 인지하는 데 도움이 됐습니다.

앞으로 남은 과제

지난 3월 7일 GitLab 코리아 밋업에서 글쓴이가 이번 프로젝트를 발표하는 모습 | 인포그랩 GitLab
지난 3월 7일 GitLab 코리아 밋업에서 글쓴이가 이번 프로젝트를 발표하는 모습

인포그랩은 번역용 GPT를 넘어 DevOps 전문 봇을 개발할 계획입니다. 우리가 보유한 수많은 DevOps, GitLab 자료를 AI에 학습시키고 엔지니어들과 함께 이를 파인 튜닝하면 정교하게 동작하고, 정확하게 답변하는 DevOps 전문 봇을 만들 걸로 예상합니다. 아울러 이 봇이 할루시네이션(환각 현상)으로 거짓 답변하지 않도록 철저히 통제하고요. 인포그랩은 LLM(대규모 언어 모델)과 데이터베이스 등 AI와 관련된 여러 도구를 쉽게 다루는 ‘LangChain’이라는 기술에 주목합니다. 이는 Mistral AI와 같이 회사 서버에 AI를 설치해 폐쇄망에서도 동작하도록 만들 수 있죠. 우리는 이 기술을 활용해 DevOps 전문 봇을 만들려고 합니다.

아울러 인포그랩은 GPT 외에도 구글 Gemini 등 다양한 생성형 AI 모델을 테스트하며 사용성을 검토하는데요. Gemini로 GitLab 공식 기술 문서를 자동 번역해 보기도 했습니다. 지난달 7일 열린 GitLab 코리아 밋업에서 그 후기를 공유했는데요. 이날 밋업에서는 프롬프트 작성 노하우도 소개했습니다. 많은 분이 질문하시고 아이디어도 주셨는데요. 참가자들의 높은 관심을 체감하며 ‘또 다른 AI 프로젝트를 진행해도 좋겠다’고 생각했습니다.

저는 DevOps 엔지니어로서 GPT를 적극 활용하고 있고요. 앞으로도 도전적인 프로젝트에 AI를 적절히 활용하고 싶습니다. 저는 평소 자동화 구현에 관심이 많은데요. 사람 개입없이 자동으로 매끄럽게 번역된 사이트를 만들고 싶었고요. 그 바람이 GitLab 기술 문서 번역 자동화 프로젝트로 이어졌습니다. 이제 누구나 인포그랩에서 GitLab 정보를 지체 없이 찾고, 최신 기술을 누락 없이 습득하길 바랍니다. 오늘 이야기는 여기까지입니다.

인포그랩은 DevOps와 여러 기술을 융합하며 더 큰 고객 가치를 전달하기 위해 노력합니다. DevOps 맞춤형 기술 지원이 필요하시면 문의하기 로 연락해 주십시오.