소프트웨어의 세계화, 국제화, 현지화

비슷하지만 다른 용어들

LISA (the Localization Industry Standards Association) 는 더 이상 존재하지 않는 산업 표준 단체로서 기업과는 독립적으로 운영되며 소프트웨어 산업의 세계화 표준을 만들고자 했던 단체였다. 많은 기업들이 LISA 의 표준 용어의 정의대로 사용하는 경우가 많다.

마이크로소프트 같은 특정 기업에서는 세계화 준비(World-Ready)와 현지화 준비(Localizability) 용어 등 기업의 필요에 맞게 다른 개발단계에 적용한다. 용어의 차이일 뿐 원리는 다르지 않다. 필자는 많은 기업이 사용하는 LISA 의 표준 용어를 기준으로 하여 글을 쓰도록 하겠다.

세계화(Globalization)

세계화는 국제화와 비슷한 의미로 자주 쓰이지만 제품 개발단계에 있어서는 구별되어야 한다. 세계화는 큰 그림을 그리는 단계이다. 세계화는 시장조사를 통해 어떤 지역에 진출 할 것인지에 대한 기획과 프로젝트 관리를 포함한다.

진출하려는 나라 및 언어에 국제화 및 현지화가 잘 구현되었을 때에 제품이 올바르게 세계화 되었다고 말할 수 있다. 이런 의미에서 세계화는 국제화와 현지화를 포함한다고 볼 수 있겠다.

국제화(Internationalization)

크게 국제화는 3가지로 나눌 수 있다.

  1. 대상 지역의 기능 지원: 언어입력 및 표시, 날짜 표기, 단어 정렬 순서, 데이터 교환 등의 형식을 코딩 단계부터 지원하는 것이다.
  2. 코드와 문장열 분리: 현지화를 준비하는 단계로서 문자열이 코드내부에 적혀 있지 않고 코드와 분리되어 리소스 파일로 저장되는 것이다.
  3. 시장 맞춤 기능: 대상 지역에서 필요로 하는 시장 맞춤기능을 지원하는 것이다.

많은 기업의 기획부서 및 개발부서가 오해하는 부분은 제품을 번역하고 다른 나라에 진출하기 전에는 국제화 기능을 지원 하지 않아도 된다고 생각하는 것인다. 하지만 이것은 큰 오류이다. 한국에 거주하는 외국인 인구가 150만명이 넘고 외국인 근로자가 40% 이상을 차지한다. 외국인 뿐만이 아니라 다국어를 사용하는 사람들과 해외에 방문하는 사람들도 국제화 기능을 필요로 할 것이다. 이런 고객군은 이미 큰 시장 점유율을 차지하고 있다.

또한 기업이 해외에 진출할 계획이 없기 때문에 의도적으로 국제화 기능을 지원하지 않았다고 해도, 위에서 언급한 고객군 은 국제화 기능을 사용하지 못하게 되면 제품 기능이 결함이 있다고 생각할 것이다. 이것은 기업 이미지에 부정적인 역할을 한다.

소프트웨어의 국제화 지원은 인터페이스 디자인과 코딩 단계에서부터 계획되어야 한다. 제품을 현지화하는 시점에 기능을 지원하려고 하면 많은 코드를 다시 짜야 하는 경우가 생기기 때문이다. 그리고 문자열이 코드와 섞여 있을 경우에, 번역 해야 할 문자열을 모두 찾아서 다시 쉽게 번역할 수 있는 텍스트나 XML 파일로 바꾸는 것도 많은 노력을 필요로 한다. 미리 문자열과 코드를 분리해주면 불필요한 시간과 노력을 줄일 수 있다.

이렇듯 시장점유율, 기업 이미지 그리고 비용절감을 위해서도 국제화 기능을 기획단계에서부터 지원하는 것이 중요하다.

아래는 국제화 기능이 필요한 다양한 시나리오이다.

  • 독일 사용자가 영어 구글 창 에서 독일어로 단어를 입력하면 맞는 독일어 검색 결과를 보여준다.
  • 한국어 사용자가 프랑스어 스마트 폰 을 사용할 때 한국어로 노트필기를 저장하면 내용이 깨지지 않고 잘 보여진다.
  • 한국인이 노트북을 가지고 중국으로 출장을 갔을 때 컴퓨터 운영체제의 지역을 중국으로 바꾸면 시간 및 화폐단위도 중국에 맞는 정보를 보여준다.
  • 영국인이 미국에서 개발된 달력 소프트웨어를 사용할 때 날짜 형식이 영국 형식에 맞게 보여진다. 미국은 날짜를 달/일/년도로 표시하지만 영국을 포함한 많은 유럽 나라들이 일/달/년도로 표시한다.

각 나라의 언어마다 기본 지역 형식 값이 아래와 같이 다를 수 있다. 이 값은 국제화가 잘 지원되어야지만 올바르게 사용자에게 표시되는 값이다.

같은 언어를 쓰는 미국과 영국도 형식 표기에 큰 차이가 있고 아랍어 같은 경우는 한국어와 텍스트 방향이 정 반대이다. 날짜를 월과 일 위치가 잘못 바뀌면 큰 실수를 할 수도 있다.

당신의 제품이 아래에 해당 한다면 기획단계에서부터 국제화를 어떻게 지원할 것인지 고려하는 것이 필요하다. 국제화가 이 목록에만 한정되는 것은 아니고 이것은 기본으로 사용할 수 있다.

  1. 사용자가 언어를 입력하고 보여지는 텍스트 컨트롤
  2. 사용자가 저장된 텍스트를 열수 있는 기능
  3. 클라이언트와 서버 사이에서 데이터가 교환될 때
  4. 날짜 숫자 등 을 표시하는 기능
  5. 달력, 숫자 및 문자열을 배열
  6. 브라우저에서 실행되는 제품
  7. 번역할 계획이 있는 제품

현지화(Localization)

현지화는 제품이나 문서를 특정 나라 및 지역의 언어, 문화, 지정 학적인 기대에 맞게 변경 하는 것이다. 현지화가 시작하려면 먼저 국제화가 올바르게 구현되어서 문자열이 번역 가능한 파일로 생성되어야 한다. 현지화는 번역단계를 포함한다. 현지화는 소프트웨어 제품뿐만 아니라 문서, 그림, 오디오, 비디오 등에도 적용 된다.

현지화할 때 엔지니어링은 매우 중요하다. 인터페이스를 번역할 때 사이즈를 조절하거나, 단축키와 같은 기능성 문자를 지정하고, 번역된 파일이 제품에 대상 언어의 파일을 불러와서 올바르게 보이도록 하는 절차도 엔지니어링에 속한다. 엔지니어링 단계가 올바르게 되어있지 않으면 번역 단계에서 많은 문제가 생길 것이고 그 문제들을 번역 단계에서 하나하나 고치는 것은 훨씬 많은 비용이 들 수 있다.

문자열을 번역 하는 단계가 되었을 때는 어떤 현지화 모델을 적용 할 것인지 결정해야 한다.

  1. 기업내의 언어학자가 번역하는 모델
  2. 아웃소싱 하여 외부 공급 업체가 번역하는 모델
  3. 크라우드소싱(Crowdsourcing)하여 일반인이 번역하는 모델
  4. 기계번역(Machine Translation) 엔진을 사용하는 모델

제품의 성격, 대상 시장, 출시 일정, 비용 등을 고려하여 적합한 모델을 선택하는 것이 중요하다. 선택한 모델에 따라서 프로젝트를 관리하는 방법이 많이 달라진다. 외부 공급 업체를 선택하게 되면 업체 관리하는 일이 매우 중요한 일이 된다. 갑-을 관계를 맺을 것 인지 좀더 깊은 조합 계약을 맺을 것인지에 따라서도 관리 하는 방법이 많이 달라진다. 어떤 도구를 사용할 것인지, 어떻게 용어를 관리할 것인지, 어떤 기계 번역 엔진을 선택 할 것인지 등 기획 단계에서 많은 사항들을 고려하여야 한다.

번역은 대상 언어로 글을 단순히 옮기기만 하는 것이 아니라 지역의 문화와 시장에서 쓰이는 용어를 잘 이해해야 한다. 그리고 제품의 기능을 이해하여 맞는 용어를 선택하여 번역해야 한다. 예를 들어 마이크로소프트 윈도우 제품을 마이크로소프트 창문이라고 번역하면 회사 브랜드에 큰 타격을 입힌다. 언어 품질을 측정하고 개선하는 것은 절대적 정답이 있지 않은 어려운 부분이지만 많은 리서치와 경험을 통해 표준처럼 쓰이는 기준들이 있다.

명료도: 사용자가 번역된 문자열을 의도한 대로 이해하는가? 문자열이 의도한 대로 이해하는데 얼마만큼의 노력을 필요로 하는가?

유창성: 문자열이 처음부터 대상 언어로 쓰여진 듯 자연스러운가?

적합성: 문자열이 대상에 맞게 문법, 톤, 형식을 알맞게 사용하는가?

일관성: 여러 번역자가 번역했어도 내용과 스타일이 일관성 있게 쓰여졌는가?

--

--