매일 아침 쏟아지는 200개의 해외 리뷰, 구글 번역기를 버리고 AI를 택한 이유
글로벌 이커머스 쇼핑몰 마케터로 일하며 제가 매일 아침 가장 먼저 하는 일은 북미, 일본, 남미 등 전 세계 고객들이 남긴 리뷰 200여 개를 한국어로 번역하는 것이었습니다. 처음 몇 주간은 구글 시트의 기본 함수인 =GOOGLETRANSLATE()를 사용해 1초 만에 번역을 끝냈습니다. 하지만 곧 대참사가 일어났습니다. 영미권 MZ세대 고객이 남긴 “This product is absolute fire!(이 제품 진짜 대박이에요!)”라는 극찬을 “이 제품은 절대적인 불입니다”라고 번역하여 주간 회의에 그대로 보고해 버린 것이죠. 문맥과 슬랭(Slang)을 전혀 파악하지 못하는 기존 기계 번역의 한계를 뼈저리게 느낀 순간이었습니다. 결국 정확도를 높이겠다고 챗GPT 창을 띄워놓고 엑셀과 브라우저를 오가며 수동으로 복사-붙여넣기를 하다 보니 오전 업무 시간 2시간이 허무하게 날아갔습니다. ‘챗GPT의 그 기가 막힌 문맥 파악 능력을, 내가 엑셀 함수 쓰듯이 시트 셀 안에서 바로 호출할 순 없을까?’ 이 절박한 고민 끝에 구글 앱스 스크립트(Apps Script)를 직접 파고들었습니다. 코딩 비전공자인 저도 단 15분 만에 세팅을 끝내고, 매일 아침의 2시간짜리 막노동을 완전히 박살 내버린 ‘초정밀 AI 자동 번역 시트’ 구축 비법을 여러분께 남김없이 공유합니다.
목차
- 1. 나만의 초정밀 번역기 구축을 위한 필수 도구 세팅
- 2. 실전 가이드: 앱스 스크립트로 AI 번역 함수 만들기 (전체 코드)
- 3. 내가 직접 겪은 치명적인 시트 오류 2가지와 완벽 해결법
- 4. 자동화 도입 후 뼈저리게 체감한 업무 시간과 퀄리티 변화
- 5. 핵심 3줄 요약 및 이런 분들께 강력히 추천합니다
1. 나만의 초정밀 번역기 구축을 위한 필수 도구 세팅
이번 자동화의 핵심은 파이썬 같은 복잡한 외부 프로그램 없이, 오직 웹 브라우저 안에서 모든 것을 해결한다는 점입니다. 구글 시트라는 도화지 위에, OpenAI의 지능을 물감처럼 짜넣기만 하면 됩니다.
- 사용 환경: 크롬(Chrome) 브라우저 및 구글 계정
- 작업 공간: Google Sheets (구글 스프레드시트)
- 핵심 도구: Google Apps Script (구글 시트 내장 자바스크립트 에디터)
- 연동 API: OpenAI API Key (속도와 가성비를 모두 잡은
gpt-4o-mini모델을 사용합니다. 사전에 최소 5달러가 충전된 유료 계정이 필수입니다.)
2. 실전 가이드: 앱스 스크립트로 AI 번역 함수 만들기 (전체 코드)
이제 여러분의 구글 시트에서 =AITRANSLATE(A2, "한국어")라고 입력하기만 하면 챗GPT가 즉시 번역을 수행하도록 사용자 정의 함수를 만들어 보겠습니다.
1단계: Apps Script 에디터 실행하기
새 구글 스프레드시트를 열고, 상단 메뉴에서 [확장 프로그램] – [Apps Script]를 클릭합니다. 그러면 코드를 입력할 수 있는 새로운 탭(에디터 화면)이 열립니다. 기본적으로 적혀있는 function myFunction() {} 코드는 깔끔하게 지워줍니다.
2단계: 챗GPT 연동 자바스크립트 코드 작성
빈 화면에 아래의 코드를 그대로 복사하여 붙여넣습니다. 이 코드는 구글 서버가 OpenAI 서버로 텍스트를 보내 번역본을 받아오도록 설계된 커스텀 함수입니다.
/**
ChatGPT를 이용해 텍스트를 문맥에 맞게 완벽히 번역합니다.
@param {string} text 번역할 원본 텍스트 셀
@param {string} target_language 번역할 언어 (예: "한국어", "English", "日本語")
@return 번역된 텍스트
@customfunction
*/
function AITRANSLATE(text, target_language) {
// 빈 셀을 참조할 경우 오류를 방지합니다.
if (!text) return "";
// 1. 발급받은 OpenAI API 키를 여기에 입력하세요. (따옴표 유지)
const API_KEY = "sk-proj-여기에_여러분의_실제_API_키를_붙여넣으세요";
const url = "https://api.openai.com/v1/chat/completions";
// 2. 프롬프트 엔지니어링: AI에게 전문 번역가 역할을 부여합니다.
const payload = {
model: "gpt-4o-mini", // 속도가 가장 빠르고 저렴한 모델
messages: [
{
role: "system",
content: You are a highly skilled native translator. Translate the following text perfectly into ${target_language}. Capture the nuances, idioms, and slang naturally. ONLY output the translated text, without any additional explanations or quotes.
},
{
role: "user",
content: String(text)
}
],
temperature: 0.3 // 번역의 일관성을 위해 창의성(온도)을 낮게 설정합니다.
};
const options = {
method: "post",
contentType: "application/json",
headers: {
Authorization: "Bearer " + API_KEY
},
payload: JSON.stringify(payload),
muteHttpExceptions: true
};
// 3. API 통신 및 결과값 반환
try {
const response = UrlFetchApp.fetch(url, options);
const json = JSON.parse(response.getContentText());
// 에러 발생 시 원인을 출력합니다.
if (json.error) {
return "API 에러: " + json.error.message;
}
// 정상 번역된 텍스트의 앞뒤 공백을 제거하고 반환합니다.
return json.choices[0].message.content.trim();
} catch (e) {
return "통신 오류: " + e.toString();
}
}
코드를 모두 붙여넣었다면 Ctrl + S (또는 Cmd + S)를 눌러 저장합니다.
3단계: 구글 시트에서 직접 함수 사용해 보기
이제 다시 스프레드시트 화면으로 돌아옵니다. A2 셀에 영어 문장 “This product is absolute fire! I’ll definitely buy it again.”을 넣고, B2 셀에 =AITRANSLATE(A2, "한국어") 라고 입력해 보세요. 잠시 Loading... 이라는 글자가 뜨더니, 약 2~3초 뒤 “이 제품 진짜 대박이에요! 무조건 재구매할 겁니다.”라는 완벽한 문맥의 한국어 번역이 나타나는 것을 볼 수 있습니다.
💡 여기서 주의할 점: API 키 유출 방지
Apps Script 코드 안에 API 키를 하드코딩(직접 입력)하는 방식은 개인 용도로 혼자 쓸 때는 매우 편리합니다. 하지만 이 스프레드시트를 **’편집자(Editor) 권한’**으로 다른 팀원에게 공유할 경우, 그 팀원도 상단 메뉴를 통해 Apps Script 에디터에 접근하여 여러분의 API 키를 훔쳐볼 수 있습니다. 따라서 이 시트를 공유할 때는 반드시 ‘뷰어(Viewer)’ 권한으로만 공유하거나, 스크립트 속성(Script Properties) 기능을 활용해 키를 은닉하는 추가 작업을 거쳐야 요금 폭탄을 막을 수 있습니다.
| 비교 항목 | 기본 =GOOGLETRANSLATE() | 개발한 =AITRANSLATE() |
|---|---|---|
| 번역 품질 및 문맥 | 직역 위주 (가끔 뜻이 왜곡됨) | 자연스러움 (관용구, 슬랭 완벽 소화) |
| 속도 | 즉시 (0.1초) | API 호출 대기 (약 1.5 ~ 3초 소요) |
| 비용 | 완전 무료 | 종량제 과금 (그러나 한 건당 0.1원 미만) |
3. 내가 직접 겪은 치명적인 시트 오류 2가지와 완벽 해결법
코드를 짰으니 끝났다고 생각하면 오산입니다. 이 함수를 실무에 투입하고 수백 개의 셀에 적용하는 순간, 저는 두 가지 뼈아픈 에러 마크(#ERROR!)를 마주해야 했습니다.
첫 번째 절망: 무자비한 드래그가 부른 Error code 429 - Too Many Requests
함수가 너무 신기한 나머지, A열에 있는 500개의 리뷰 데이터를 한 번에 번역하려고 B열 첫 번째 셀의 우측 하단을 더블클릭해 맨 아래까지 수식을 자동 채우기(드래그) 해버렸습니다. 그러자 구글 서버가 500개의 API 요청을 OpenAI로 1초 만에 동시에 쏘아버렸고, OpenAI 측에서는 디도스(DDoS) 공격이나 비정상적인 트래픽으로 간주하여 API 호출을 강제 차단하는 429 에러를 뱉어냈습니다. 이 참사를 겪은 후, 저는 수식을 드래그할 때 한 번에 20~30개씩만 끊어서 내리며 서버가 응답할 여유를 주는 방식으로 작업 방식을 바꿨습니다. 대량의 데이터를 번역할 땐 욕심을 버려야 합니다.
두 번째 위기: 셀에 나타난 Exceeded maximum execution time 타임아웃 오류
처음엔 조금 더 똑똑한 결과를 얻겠다고 가장 무거운 gpt-4o 모델을 지정했습니다. 문장이 짧을 땐 문제가 없었는데, A4 용지 절반 분량의 긴 리뷰 텍스트를 번역시키자 구글 시트에 오류가 떴습니다. 구글 앱스 스크립트의 커스텀 함수(Custom Function)는 단일 계산에 30초 이상이 걸리면 강제로 실행을 중단(Timeout)시켜버리는 엄격한 제한이 있습니다. 무거운 모델이 답변을 생성하느라 30초를 넘긴 것이죠. 이를 해결하기 위해 위 전체 코드에서 보신 것처럼 모델을 가볍고 응답 속도가 빛처럼 빠른 gpt-4o-mini로 전면 교체했습니다. 그 결과 타임아웃 오류는 거짓말처럼 사라졌고, 번역 품질은 유지한 채 속도만 3배 이상 빨라졌습니다.
4. 자동화 도입 후 뼈저리게 체감한 업무 시간과 퀄리티 변화
이 스마트한 AI 번역 시트를 사내 업무용 드라이브에 고정해 둔 지 한 달, 제 아침 루틴은 극적으로 변했습니다.
- 시간의 압축: 챗GPT 웹사이트에 접속해 일일이 복사-붙여넣기를 하며 2시간씩 걸리던 리뷰 취합 업무가, 구글 시트에서 수식 한 번 드래그하는 것으로 끝나며 단 1분 30초 만에 완료됩니다.
- 결과물 퀄리티의 수직 상승: 프롬프트에 “슬랭을 자연스럽게 살려라”라고 지시해 둔 덕분에, “This is a rip-off(이거 완전 바가지네)” 같은 현지인들의 은어까지 한국어 문맥에 맞게 찰떡같이 번역되어 팀원들이 현지 시장의 반응을 훨씬 날카롭게 파악할 수 있게 되었습니다.
- 압도적인 가성비: 한 달 동안 수천 건의 리뷰를 번역했음에도 불구하고,
gpt-4o-mini모델의 미친 가성비 덕분에 청구된 API 요금은 고작 0.8달러(약 1,100원)였습니다. 제 2시간의 인건비를 생각하면 천 배 이상의 이득입니다.
5. 핵심 3줄 요약 및 이런 분들께 강력히 추천합니다
오늘 구축한 구글 시트 AI 번역기의 핵심 포인트를 세 줄로 요약해 드립니다.
- 앱스 스크립트를 활용하면
UrlFetchApp기능으로 구글 시트 내에서 ChatGPT를 함수처럼 즉시 호출할 수 있습니다. - 구글 시트의 30초 실행 시간 초과 에러(Timeout)를 피하려면 응답이 빠른
gpt-4o-mini모델 사용이 필수적입니다. - API Rate Limit(429 에러) 방지를 위해 수백 개의 셀을 한 번에 드래그하지 말고 20~30개씩 끊어서 적용해야 합니다.
이 방법은 해외 고객의 피드백을 매일 모니터링해야 하는 이커머스 CS 담당자, 대량의 제품 상세페이지 문구를 다국어로 현지화(Localization) 해야 하는 글로벌 마케터, 원서나 해외 기사를 엑셀로 취합해 공부하는 대학원생 분들께 저의 시행착오를 걸고 강력하게 추천합니다. 단 한 번 15분의 코드 세팅이, 여러분의 평생 반복될 단순 번역 노동을 완벽하게 끝내줄 것입니다. 단, 보안이 생명인 회사의 극비 재무 제표 등을 번역할 때는 API 전송 과정에서 외부 서버를 거치게 되므로, 사내 보안 규정을 반드시 확인하신 후 사용하시기 바랍니다.