locale (9) - 마흔 개 언어를 채운다는 일
조사 하나, 빈칸 하나 — 제품에 번역을 입히던 날들
화면에 뜨는 문구 하나가 마흔 개 언어로 나가기까지, 그 그릇을 채우던 이야기다. 구글에서 무언가를 만들 때는 그것이 처음부터 마흔 개가 넘는 언어와 백 개가 넘는 나라로 나갈 수 있다는 가정 위에서 설계되곤 했는데, 말하자면 번역할 문구만 채워 넣으면 어디로든 나갈 수 있게 그릇을 먼저 비워 두는 식이라, 정작 그 그릇을 채울 고품질의 번역이 따라오지 못하면 그게 곧 제품 혹은 기능의 bottleneck이 되곤 했다. 자동 번역이 지금 같지 않던, 사람 손이 훨씬 많이 가던 시절이다.
화면에 들어가는 문구 하나하나는 번역 테이블로 관리되어, 사람 이름이나 숫자가 들어갈 자리에는 placeholder를 비워 두고 문장을 조립하는 식이었고, 그렇게 채워진 번역은 다시 그 언어를 아는 linguist의 검수를 거쳤는데, 지원해야 할 언어가 마흔을 넘다 보니 어느 한 칸이 비어 있으면 그 빈칸이 곧장 기능 전체의 발목을 잡곤 했다.
그 문구들은 대개 parameterized string으로 풀어 나갔는데, sprintf를 떠올리면 될, 빈자리에 값을 끼워 넣어 문장을 완성하는 그 방식이다. 한국어는 여기서 유난히 애를 먹이는데, 받침이 있느냐 없느냐에 따라 '이'가 붙을지 '가'가 붙을지가 갈리니 placeholder 뒤에 조사 하나를 기계적으로 붙여 둘 수가 없었고, 영어 문장과 어순이 뒤바뀌는 일도 부지기수여서, 빈칸을 남겨 두고 문장을 조립하던 그 방식이 한국어 앞에서는 번번이 어긋났다. 그 받침 유무를 템플릿 시스템에 담을 수 없어, 결국 '이(가)'나 '을(를)'처럼 둘 다 적어 두고 마는 수밖에 없었는데, 지금도 어딘가에서 '이(가)'를 만나면 괜히 짠하다. 사내에 제품의 한국어 번역을 돕는 자발적 지원 그룹이 따로 있었는데, 줄을 잘못 서서 disclaimer 같은 법적 문구라도 하나 맡게 되면 다들 꽤 곤란해했다. 폰트와 줄바꿈 정도의 난이도야 그래도 견딜 만했지만, 글자가 오른쪽에서 왼쪽으로 흐르는 아랍어 쪽 PM의 눈에라도 띄면 지원 요청이 들어오는 날이면 그건 정말 다른 종류의 일이 되었다.
사람이 일일이 손볼 수 없으니 기계 번역을 켜 두기도 했는데, 그렇게 켜 두고 한참을 잊고 있다 보면 어느 날 정체 모를 문구가 화면 어딘가에서 튀어나와 있곤 했고, 화면 템플릿에서는 대개 동의어나 비슷한 말 사이에서 엉뚱한 뜻으로 옮겨진 것이라, 그 언어가 나갈지도 모를 나라의 linguist나 현지 직원들의 제보로 겨우 잡히는 일이 잦았다.
여기까지가 우리가 만들어 화면에 보이는 문구, 그러니까 구글이 책임지고 번역해 두는 것들의 이야기다. 정작 사용자는 누가 번역했는지에는 관심이 없고 그저 자연스럽게 읽히기만을 바라는데, 그 눈으로 보면 번역을 거친 결과물이라도 사용자가 받아들이는 만족도에는 여러 단계가 있었다. 맨 아래 단계에는 번역이 아예 안 된 것 — 그중에서도 한국인의 눈에 중국계 한자가 화면에 그대로 보이면 불편함이 대번에 올라오는데, 영어는 상대적으로 괜찮은 걸 보면 이게 선입견인가 아닌가 싶어 꽤 오랫동안 유저 인터뷰로 따져 보기도 했다. 플레이스토어에서 일하던 당시에는 한국에 사는 한국인을 주요 대상으로 삼았는데, 한국은 본토 중국어가 주로 쓰이는 나라가 아니니 한자가 그대로 보이는 건 그 자체로 심각한 버그로 취급했다. 그보다 위 단계에는 기계 번역티가 나는 것들 — 눈에 확 띄는데, 이걸 성의로 보아야 하는가가 늘 문제였다. 그리고 맨 위에 공들인 번역이 있었다. 다만 여기까지는 우리 손으로 준비한 문구의 이야기다. 콘텐츠 제공자가 제 손으로 올린 것에는 그들의 의지가 담겨 있고, 플레이스토어는 당시 자동 번역을 자랑스러운 기능으로 내세우고 있었지만, 그렇다고 남이 올린 것을 함부로 허락 없이 번역해 보여 줄 수는 없는 노릇이라, 거기서부터는 또 다른 이야기가 시작된다.
마흔 개 언어로 나간다는 약속은 하기는 쉬워도 지키기는 어려웠다. 빈 그릇을 먼저 내밀고 그 안을 채워 가는 방식이었으니, 픽셀이 깨질까 엉뚱한 내용물이 들어올까 조마조마하며 기다렸고, 그 틈에 늘 품질이라는 문제가 고여 있었다. 서비스로선 번역을 마쳤다 해도 사용자는 꼭 그렇게 받아들이지는 않아서, 만족도는 저마다 달랐고, 그 차이를 가늠하는 일이 단어를 옮기는 일보다 오래 남았다. 전문 linguist와 tech writer들에게 지적받던, 차원이 다른 리뷰들이 가끔 기억난다.
그 벽이 LLM 이후로는 거의 사라진 듯하다. 그 시절 그렇게 애를 먹던 일이 지금은 아무렇지 않게 넘어가는 걸 보면, 살짝 격세지감이 들지만, 어딘가에서 묵묵히 빈칸을 채우고 있을, 그때의 나 같은 누군가를 소리 없이 응원한다.
—-
원문은 브런치에 있습니다 → https://brunch.co.kr/@chaesang/193
