본문 바로가기
돈 버는 도구들

다국어 커뮤니케이션 완전 정복: Gmail + DeepL 자동 번역 시스템 구축하기

by 디지털일잘러 2025. 6. 21.
728x90
반응형

해외 클라이언트나 글로벌 팀과 일하다 보면 외국어 이메일 수신은 피할 수 없는 일상입니다.

그때마다 메일 내용을 복사해서 번역기 웹사이트를 열고, 붙여넣고, 결과를 확인한 뒤 다시 메일로 돌아오는 과정을 반복하고 있지는 않으신가요? 이 번거로운 과정은 업무의 흐름을 끊고, 중요한 소통의 속도를 늦추는 원인이 됩니다.

만약, Gmail 받은 편지함에서 외국어 메일을 여는 순간,

원문 바로 아래에 세계 최고 수준의 번역문이 자동으로 달려 나온다면 어떨까요?

오늘은 현존 최고의 번역 엔진으로 평가받는 DeepL API와 구글 생태계의 숨겨진 비장의 무기,

Google Apps Script를 연동하여, 이 모든 것을 현실로 만드는 방법을 A to Z로 알려드립니다.

코딩 경험이 많지 않아도 괜찮습니다. 차근차근 따라 하면 누구나 자신만의 '자동 번역 비서'를 가질 수 있습니다.

왜 이 자동 번역 시스템이 강력한가?

  • 완벽한 워크플로우: 더 이상 번역을 위해 메일 창을 벗어날 필요가 없습니다. 번역문이 필요한 바로 그곳에 나타나 업무 흐름이 끊기지 않습니다.
  • 세계 최고 수준의 번역 품질: DeepL은 미묘한 뉘앙스와 문맥을 파악하는 능력으로 정평이 나 있습니다. 비즈니스 커뮤니케이션에서 오해를 줄이는 가장 확실한 방법입니다.
  • 원문과 번역문 동시 확인: 단순 번역이 아닌 '주석'처럼 원문과 함께 표시되어, 중요한 내용의 오역 가능성을 직접 확인하고 뉘앙스를 파악할 수 있습니다.
  • 자유로운 커스터마이징: Apps Script로 직접 만들기 때문에, '특정 라벨이 붙은 메일만 번역'하거나 '특정 발신자의 메일만 번역'하는 등 나만의 규칙을 자유롭게 추가할 수 있습니다.

자동 번역 시스템 구축하기 (Step-by-Step)

Step 0: 준비물 확인

  • Google 계정 (Gmail)
  • DeepL API 계정: DeepL 사이트에서 DeepL API Free 또는 Pro 플랜에 가입해야 합니다. (Free 플랜은 매월 50만 자까지 무료로 제공되어 테스트 및 개인용으로 충분합니다.) 가입 후, 계정 정보에서 '인증 키(Authentication Key)'를 복사해 둡니다.

Step 1: Google Apps Script 편집기 열기

  1. 웹 브라우저에서 script.google.com으로 접속하여 새 프로젝트를 만듭니다.
  2. 프로젝트 이름을 'Gmail DeepL 번역기' 등으로 설정합니다.

Step 2: 코드 작성 및 붙여넣기

아래 코드를 복사하여 Apps Script 편집기 창에 그대로 붙여넣습니다.

// © 2025 생산성도구연구소. All Rights Reserved.
// 이 스크립트는 교육 목적으로 제공되며, 자유롭게 수정하여 사용할 수 있습니다.

// DeepL API 키를 안전하게 저장하기 위한 함수
function setApiKey() {
  const apiKey = "여기에_복사한_DEEPL_API_KEY를_붙여넣으세요";
  PropertiesService.getScriptProperties().setProperty('DEEPL_API_KEY', apiKey);
  Logger.log("API 키가 성공적으로 저장되었습니다.");
}

// 이메일 텍스트를 DeepL API를 통해 번역하는 함수
function translateText(text, targetLang) {
  const apiKey = PropertiesService.getScriptProperties().getProperty('DEEPL_API_KEY');
  const apiUrl = "https://api-free.deepl.com/v2/translate";

  const payload = {
    "auth_key": apiKey,
    "text": text,
    "target_lang": targetLang
  };

  const options = {
    "method": "post",
    "contentType": "application/x-www-form-urlencoded",
    "payload": payload
  };

  try {
    const response = UrlFetchApp.fetch(apiUrl, options);
    const jsonResponse = JSON.parse(response.getContentText());
    return jsonResponse.translations[0].text;
  } catch (e) {
    Logger.log("번역 오류: " + e.toString());
    return null;
  }
}

// 메인 실행 함수: 받은 메일을 확인하고 번역 작업을 수행
function gmailAutoTranslate() {
  const labelName = "Translated_by_AI";
  
  // 'Translated_by_AI' 라벨이 없으면 생성
  if (!GmailApp.getUserLabelByName(labelName)) {
    GmailApp.createLabel(labelName);
  }
  const label = GmailApp.getUserLabelByName(labelName);

  // 받은편지함에서 아직 읽지 않았고, 번역 라벨이 붙지 않은 메일 스레드를 가져옵니다.
  const threads = GmailApp.search('is:inbox is:unread -label:' + labelName);

  for (const thread of threads) {
    const message = thread.getMessages()[0]; // 각 스레드의 첫 번째 메일을 기준으로 합니다.
    const body = message.getPlainBody(); // 메일 본문 텍스트를 가져옵니다.

    // 본문이 비어있지 않은 경우에만 실행
    if (body) {
      const translatedText = translateText(body, "KO"); // 한국어로 번역

      if (translatedText) {
        const replyBody = `
          <div style="border:1px solid #e0e0e0; border-radius:8px; padding:16px; margin-top:20px; background-color:#f9f9f9;">
            <h4 style="margin:0 0 10px 0; color:#555;">🌐 AI 번역 결과 (DeepL)</h4>
            <p style="white-space:pre-wrap; font-size:14px;">${translatedText}</p>
          </div>
          <hr style="border:none; border-top:1px solid #e0e0e0; margin:20px 0;">
          <p style="font-size:12px; color:#999;">-- 원문 --</p>
        `;

        // 원문 앞에 번역 결과를 붙여 답장 형식으로 추가
        message.reply('', {
          htmlBody: replyBody + message.getBody()
        });
        
        // 처리 완료된 스레드에 라벨을 붙여 중복 실행 방지
        thread.addLabel(label);
      }
    }
  }
}

Step 3: API 키 저장 및 권한 허용

  1. 붙여넣은 코드에서 setApiKey 함수 안의 "여기에_복사한_DEEPL_API_KEY를_붙여넣으세요" 부분을 Step 0에서 복사해 둔 본인의 DeepL API 인증 키로 교체합니다.
  2. 상단 메뉴에서 실행 > 함수 실행 > setApiKey 를 선택합니다.
  3. 처음 실행 시 '권한 검토' 팝업이 나타납니다. 본인 계정을 선택하고, '고급' > '(안전하지 않음)으로 이동'을 클릭하여 스크립트가 Gmail과 외부 서비스에 접근하도록 허용해 줍니다.
  4. 실행 로그에 "API 키가 성공적으로 저장되었습니다."라는 메시지가 뜨면 성공입니다.

Step 4: 자동 실행 트리거 설정

이제 이 스크립트가 주기적으로 메일함을 확인하도록 설정할 차례입니다.

  1. Apps Script 편집기 왼쪽 메뉴에서 '트리거'(시계 모양 아이콘)를 클릭합니다.
  2. 오른쪽 하단의 '+ 트리거 추가' 버튼을 누릅니다.
  3. 아래와 같이 설정합니다.
    • 실행할 함수 선택: gmailAutoTranslate
    • 이벤트 소스 선택: 시간 기반
    • 시간 기반 트리거 유형 선택: 분 타이머
    • 분 간격 선택: 10분마다 (또는 원하는 주기)
  4. 저장 버튼을 누릅니다.

어떻게 작동하나요?

모든 설정이 끝났습니다! 이제 10분마다 스크립트가 새로 온 메일을 확인하여,

외국어로 된 메일이 있으면 자동으로 DeepL 번역을 실행하고,

원문과 함께 보기 좋게 정리된 답장을 스레드에 추가해 줄 것입니다. 마치 나만을 위한 유능한 번역 비서가 생긴 것과 같습니다.

조금의 설정으로 매일 반복되는 번거로움을 해결하고,

언어의 장벽 없는 커뮤니케이션을 경험해 보세요.

728x90
반응형