다국어 프로그래밍의 기초지식

출처 : 마이크로소프트웨어

i18N

i18N은 국제화(internationalization)를 줄여서 쓴 말이다. i와 n 사이에 18개의 알파벳이 있다는 뜻에서 붙여진 이름이다. 즉, 이미 만들어진 프로그램을 다른 언어를 사용하는 사용자가 사용할 수 있도록 변경하는 과정을 말한다. 즉, 시스템에서 기본적으로 사용하는 언어의 문자들을 자유롭게 사용할 수 있어야 한다.

문자 집합

각 나라의 언어들은 그 말을 표현하기 위한 문자들을 가지고 있습니다. 이를 컴퓨터 상에서 나타내기 위해 필요한 것이 문자 집합(character set)이다. 예를 들자면 한글을 표현하기 위해서는 KSC-5601 완성형을 사용할 수도 있으며, 조합형을 사용할 수도 있다. 이와 같이 하나의 언어에도 여러 가지의 문자 집합이 존재할 수 있다.

코드 페이지

코드 페이지(code page)는 쉽게 말하면 문자나 특수 문자를 숫자로 표현한 대조표 같은 것이다. 1바이트 코드 페이지는 8비트를 사용하여 기본적으로 256개의 문자를 가지고 있다. 첫 128개는 표준 ASCII 문자들로 구성되어 있으며 이 속에 기본적인 영어의 알파벳 문자들이 들어 있다. 나머지 128개의 공간에는 각 언어별로 특별히 사용되는 문자들이 들어 있다. 물론 우리나라나 중국, 일본, 대반 등의 2바이트 코드 페이지를 사용하는 국가는 이런 1바이트 코드 페이지로는 표현할 수 없는 문자들이 너무 많다.

유니코드

컴퓨터는 기본적으로 숫자만 처리한다. 글자나 다른 문자에도 숫자를 지정하여 저장한다. 유니코드가 개발되기 전에는 이러한 숫자를 지정하기 위해 수백 가지의 다른 기호화 시스템을 사용했다. 단일 기호화 방법으로는 모든 문자를 포함할 수 없었기 때문이다. 예를 들어 유럽 연합에서만 보더라도 모든 각 나라별 언어를 처리하려면 여러 개의 다른 기호화 방법이 필요하다. 영어와 같은 단일 언어의 경우도 공통적으로 사용되는 모든 글자, 문장 부호 및 테크니컬 기호에 맞는 단일 기호화 방법을 가지고 있지 못했다.

이러한 기호화 시스템은 또한 다른 기호화 시스템과 충돌한다. 즉, 두 가지 기호화 방법이 두 개의 다른 문자에 대해 같은 번호를 사용하거나 같은 문자에 대해 다른 번호를 사용할 수 있다. 주어진 모든 컴퓨터(특히 서버)는 서로 다른 여러 가지 기호화 방법을 지원해야 한다. 그러나, 데이터를 서로 다른 기호화 방법이나 플랫폼 간에 전달할 때마다 그 데이터는 항상 손상의 위험을 겪게 된다.

유니코드는 사용 중인 플랫폼, 프로그램, 언어에 관계없이 문자마다 고유한 숫자를 제공한다.  유니코드 표준은 Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys 및 기타 여러 회사와 같은 업계 선두주자에 의해 채택되었다. 유니코드는 XML, Java, ECMAScript(JavaScript), LDAP, CORBA 3.0, WML 등과 같이 현재 널리 사용되는 표준에서 필요하며 이는 ISO/IEC 10646을 구현하는 공식적인 방법이다. 이는 많은 운영 체제, 요즘 사용되는 모든 브라우저 및 기타 많은 제품에서 지원된다. 유니코드 표준의 부상과 이를 지원하는 도구의 가용성은 최근 및 전 세계에 불고 있는 기술 경향에서 가장 중요한 부분을 차지하고 있다.

유니코드를 클라이언트-서버 또는 다중-연결 응용 프로그램과 웹 사이트에 통합하면 레거시 문자 셋트 사용에 있어서 상당한 비용 절감 효과가 나타난다. 유니코드를 통해 리엔지니어링 없이 다중 플랫폼, 언어 및 국가 같에 단일 소프트웨어 플랫폼 또는 단일 웹 사이트를 목표로 삼을 수 있다. 이를 사용하면 데이터를 손상없이 여러 시스템을 통해 전송할 수 있다.

유니코드 컨소시엄은 비영리 조직으로서 현대 소프트웨어 제품과 표준에서 텍스트의 표현을 지정하는 유니코드 표준의 사용을 개발하고 확장하며 장려하기 위해 세워졌다. 컨소시엄 멤버십은 컴퓨터와 정보 처리 산업에 종사하고 있는 광범위한 회사 및 조직의 범위를 나타낸다. 컨소시엄의 재정은 전적으로 회비에 의해 충당된다. 유니코드 컨소시업에서의 멤버십은 전 세계 어느 곳에서나 유니코드 표준을 지원하고 그 확장과 구현을 지원하고자 하는 조직과 개인에게 개방되어 있다.

zemna

Programmer/Web/Mobile/Desktop

Leave a Reply