“국제화(Internationalization)”와 “현지화(Localization)”라는 용어는 종종 혼용되어 사용되는데, 이는 특히 소프트웨어 개발자들 사이에서 혼란을 초래합니다. 본 글에서는 국제화가 실제로 무엇인지, 그리고 회사에서 이를 가장 효과적으로 접근하는 방법을 설명합니다.
먼저 위키백과를 인용해 보겠습니다:
현지화는 텍스트를 번역하고 지역별 구성 요소를 추가하여 국제화된 소프트웨어를 특정 지역이나 언어에 맞게 적응시키는 과정입니다.
국제화는 소프트웨어 애플리케이션을 설계하여 엔지니어링 변경 없이도 다양한 언어와 지역에 적응할 수 있도록 하는 과정입니다.
여기서 핵심은 현지화와 달리 국제화는 개발자 작업이라는 점, 즉 제품 출시 훨씬 전에 완료되어야 한다는 것입니다. 이를 위해서는 신중한 계획 수립과 함께 이 목적에 맞게 설계된 개발 프로세스 및 도구가 필요합니다.
국제화의 주요 측면
국제화는 여러 측면을 포함하는 복잡한 과정입니다. 가장 중요한 요소들은 다음과 같습니다:
1. 사용자 인터페이스(UI) 디자인
UI는 다양한 언어와 지역에 쉽게 적용될 수 있도록 설계되어야 합니다. 여기에는 다음이 포함됩니다:
글꼴: UI는 다른 언어에서 사용할 수 없는 경우 쉽게 다른 글꼴로 변경할 수 있는 글꼴을 사용해야 합니다.
색상과 이미지: 색상과 이미지는 다른 문화권에서 부정적인 의미를 가질 수 있으므로 쉽게 변경할 수 있어야 합니다.
텍스트 포함 요소: 이상적으로는 매우 긴 텍스트와 매우 짧은 텍스트 모두, 그리고 오른쪽에서 왼쪽으로 쓰는 문자 체계에서도 작동하도록 설계되어야 합니다.
2. 데이터 형식 및 저장
문자열은 현지화가 용이하도록 저장해야 합니다. 여기에는 다음이 포함됩니다:
인코딩: 문자열은 유니코드 문자열에 가장 널리 사용되는 인코딩인 UTF-8로 인코딩해야 합니다.
문법 형태: 문자열은 복수형 및 성별 형태에 쉽게 적용될 수 있도록 설계되어야 합니다(예: ICU 형식 사용).
날짜 및 시간: 현지화가 쉬운 형식(예: ISO 8601 표준 사용)으로 저장해야 합니다.
숫자: 숫자는 현지화가 쉬운 형식으로 저장해야 합니다(예: 통화의 경우 ISO 4217 표준, 지역 코드의 경우 UN M.49 표준 사용).
흔히 저지르는 실수는 문자열을 코드 내에 직접 저장하는 것입니다. 예를 들어 버튼이나 입력 필드 같은 사용자 인터페이스 요소에 해당합니다. 이는 향후 현지화를 훨씬 어렵게 만들고 제품 출시를 상당히 지연시킬 수 있습니다.
3. 프로세스와 도구
국제화는 신중한 계획과 개발이 필요한 복잡한 과정입니다. 또한 번역 메모리 및 용어 관리나 현지화된 제품의 자동화된 테스트를 지원하는 도구들도 필요합니다.
이를 위한 다양한 도구가 존재하지만, 번역 및 현지화를 위한 CI/CD 프로세스를 가능하게 하는 도구에 집중할 것을 권장합니다. 이렇게 하면 번역을 위해 콘텐츠를 수동으로 전송하거나 번역가의 작업 상태를 확인할 필요가 없습니다.
어디서부터 시작해야 할까?
국제화는 제품이 제작되기 전부터 시작되며 출시 후에도 계속됩니다. 따라서 국제화는 최상위 계획 수립 과정의 일부가 되어야 합니다.
1. 국제화 담당자를 찾거나 그 역할을 맡으세요
아이러니하게도 가장 어려운 부분은 종종 국제화가 제품의 성공에 막대한 영향을 미칠 수 있으며 진지하게 고려해야 한다는 점을 관련자 모두를 설득하는 일입니다.
이를 위해 국제화의 비즈니스적 이점에 대한 명확한 논거를 준비해야 합니다. 예를 들어, 새로운 시장에서 새로운 고객에게 제품을 제공함으로써 수익을 증가시킬 수 있다는 점이나, 나중에 제품 현지화에 소요되는 시간과 비용을 절감함으로써 비용을 줄일 수 있다는 점 등이 있습니다.
여기서 활용할 수 있는 일화적 사례는 한때 시장을 주도했던 스프레드시트 제품인 로터스 1-2-3의 이야기입니다. 그러나 모든 문자열이 하드코딩되어 있었기 때문에, 제품을 현지화하기로 결정했을 때 코드와 텍스트를 분리하는 데 2년을 소비해야 했고, 결국 마이크로소프트에게 시장을 내주게 되었습니다.
2. 사용할 형식 및 도구를 결정하십시오
i18n의 필요성이 모두에게 명확해지면, 기술적인 부분을 고려하기 시작할 수 있습니다. 예를 들어:
문자열을 저장하고 코드 내에서 실제 텍스트로 변환하는 데 어떤 형식을 사용할 것인가?
번역 및 현지화를 위해 어떤 도구/기술을 사용할 것인가?
이 과정에 어떤 역할과 책임이 수반될 것인가?
이상적으로는 상세한 국제화 계획/전략을 수립하고 모든 제품에 걸쳐 적용 가능한 프로세스를 설계해야 합니다. 이렇게 하면 전략이 정립된 후에는 신규 출시 제품마다 요구사항에 쉽게 대응할 수 있습니다. 또한 동일한 내용을 반복해서 논의하는 것을 방지하는 데도 도움이 될 것입니다.
3. 실행 및 모니터링
전략이 수립되면 이제 실행하고 프로세스를 모니터링할 차례입니다. 프로세스를 지원할 새로운 도구와 기술을 도입하는 것으로 시작하고, 점진적으로 새로운 역할, 책임 및 프로세스를 도입하세요(하지만 과도하게 하지 마세요).
프로세스 내 문제점을 찾아 제거하세요. 예를 들어 무언가를 자동화하거나 작업을 더 쉽게 만드는 새로운 도구를 찾는 식으로 해결할 수 있습니다. 로컬라이저들의 피드백을 지속적으로 수집하고 그에 따라 프로세스를 조정하세요.
결국 핵심은 효율적이고 효과적인 워크플로우를 갖춘 견고한 프로세스를 구축하는 것입니다. 이는 향후 제품 로컬라이제이션을 시작하는 데도 도움이 됩니다. 국제화 프로세스가 정착될수록 이에 대해 고민할 필요가 줄어들 것입니다.
결론
국제화는 제품 개발 과정의 핵심 요소이지만, 특히 그 이점이 모든 사람에게 명확하지 않을 때 올바른 방향으로 추진하기가 매우 어려울 수 있습니다.
이 짧은 글이 올바른 방향으로 시작하는 데 도움이 되었기를 바랍니다.
다양한 현지화 접근 방식을 지원하는 올인원 로컬라이제이션 플랫폼으로, 다양한 로컬라이제이션 방식을 지원하며 프리랜서와 번역 에이전시를 위한 내장 마켓플레이스를 보유하고 있으며, 가장 널리 사용되는 버전 관리 시스템과 연동됩니다.



