앱 출시할 때마다 제일 귀찮은 게 릴리즈 노트 번역이었습니다. KOOTD 출시할 때 한국어, 영어, 일본어로 각각 번역해야 했는데, 매번 번역기 사이트에서 하나씩 번역하고 형식 맞춰서 복붙하는 게 너무 비효율적이었거든요.
처음에는 그냥 참았습니다. 근데 업데이트할 때마다 똑같은 걸 반복하니까 "이거 자동화하면 되는 거 아닌가?" 싶더라고요. 다른 릴리즈 노트 생성기들도 찾아봤는데, 로그인해야 하거나 무료 할당량이 빡빡하거나. 그냥 내가 만드는 게 빠르겠다 싶었습니다.
어떻게 만들었냐면
먼저 Google 번역 API로 번역 기능부터 만들었습니다. 클라이언트에서 직접 호출하면 CORS 에러가 나서 Next.js API Route를 거치도록 했습니다.
// pages/api/translate.js
export default async function handler(req, res) {
const { text, targetLang } = req.body;
try {
const result = await translate(text, { to: targetLang });
res.status(200).json({ success: true, translatedText: result.text });
} catch (error) {
res.status(500).json({ success: false, error: error.message });
}
}
구글 플레이스토어랑 앱스토어 형식이 달라서 둘 다 지원해야 했습니다. 플레이스토어는 <ko-KR>내용</ko-KR> 형식이고, 앱스토어는 언어별로 따로 입력하거든요.
// 구글 플레이스토어 형식
const generateGoogleFormat = (translations) => {
let formatted = '';
for (const [lang, text] of Object.entries(translations)) {
const playStoreLang = getPlayStoreLanguageCode(lang);
formatted += `<${playStoreLang}>\n${text}\n</${playStoreLang}>\n`;
}
return formatted;
};
UI는 처음에 기능만 만들었는데, 써보니까 불편해서 언어 선택을 그룹별로 나누고, 진행률 바 넣고, 각 언어별 개별 복사 버튼을 추가했습니다. 버전 정보 같은 건 번역 안 하고 그대로 앞에 붙일 수 있는 고정 텍스트 기능도 넣었습니다.
실제로 써보니
번역 품질은 구글 번역 수준입니다. 릴리즈 노트 정도는 대부분 괜찮게 나옵니다. 복잡한 문장은 가끔 이상하게 나오지만요.
기존에 1015분 걸리던 게 이제 23분이면 끝납니다. 특히 언어가 많을수록 차이가 큽니다. 한국어로 쓰고, 번역할 언어 선택하고, 버튼 누르고, 각 언어별로 복사해서 붙여넣으면 끝.
앞으로 고민하는 것
AI 번역 서비스 연동해서 품질 올리고 싶은데, 템플릿 기능도 넣으면 좋을 것 같긴 합니다. 자주 쓰는 릴리즈 노트 형식을 저장해놓는 거죠. 근데 이러려면 백엔드를 연결해야 하고, 그럼 유지비가 10달러는 더 들텐데... 고민입니다.
솔직히 처음에는 그냥 귀찮아서 만든 건데, 실제로 앱 출시할 때마다 쓰고 있습니다. 이런 소소한 도구들이 트래픽을 모아서 수익화까지 이어지면 좋겠는데, 그건 아직 모르겠습니다.
직접 써보고 싶으면 릴리즈 노트 생성기에서 확인할 수 있습니다.