2011년 6월 1일 수요일

다국어를 지원하기 위한 Oracle 디비구성

질문
안녕하십니까?
저희 고객한테 다국어 디비구성에 대한 질문을 받아서 질문을 드리겠습니다. 데이타베이스는 Oracle9i를 사용할 것입니다.
저희 고객은 최소 10개국의 언어를 지원할 데이타베이스 구성을 원합니다.
물론 저희 Application이 유니코드를 지원하기 때문에 지원에는 문제가 없으나 이것을 하나의 데이타베이스에 구성하기 원하고 있습니다. 이를 위해서 데이타베이스는 유니코드(UTF8으로 구성해야 될 듯 저희 Application이 UTF8을 지원합니다)로 생성을 해야 할 것 같은데요.
1. 클라이언트쪽은 어떻게 language set을 설정해야 할까요(한국어,중국어스페인어 예를 들어 주시면)?
2. 기존에 KSC5601등으로 구성된 데이타베이스를 migration하는데는 문제가 없는지요?


답변
안녕하세요.

귀하의 경우 DB는 말씀하신 대로, AL32UTF8 charset을 사용하는 것이 맞다고 생
각합니다.

기존의 "KSC5601 등"의 데이타베이스라 함은 이 10가지 언어들을 각각 다른 데
이타베이스에 유지한 것으로 이해하겠습니다. 문의하신 10가지 언어가 무엇이
든 AL32UTF8 데이타베이스로 마이그레이션 가능합니다. 전문성을 갖춘 직원과
책임질 수 있는 사람의 감독 하에 상식적인 테두리에서 진행하거나 오라클 기
술 인력을 이용하여 차질 없이 진행될 것입니다.

다만, charset을 무시하고 사용했을 경우에는 문제가 쉽지 않습니다. 예를 들
어 임의적인 인코딩과 디코딩으로 KSC5601 완성형 문자셋에 포함되어 있지 않
는 Simplified Chinese chars을 저장해서 사용했다거나 하는 경우 imp/exp나 강
제 charset 변환 같은 방법으로 해결할 수 없습니다. 다른 성격의 바이트들이
섞여 있기 때문인데, 전문가나 전문성을 갖춘 직원에게 각 언어별로 환경을 맞
추어, 즉 10개의 언어인 경우, 최대 10번의 단계를 거쳐 데이타를 추출하여 해
결하도록 계획해야 할 것입니다.

Application이 어떤 형태인지 밝히지 않으셨기 때문에 답하기가 힘듭니다. 클라
이언트의 의미도 명확하지 않습니다. Application Server 내의 Application들
은 DB의 클라이언트가 되며, 일반 사용자가 쓰는 Application은 Server
Application의 클라이언트입니다. OCI방식인지 Thin인지, 어떤 언어를 기반으
로 하는지에 관한 정보가 필요합니다.

1) 다국어 데이타베이스 + 1개국어 사용자 Application

- 해당 OS에서 NLS_LANG을 맞추고 사용하시면(한국 Windows에서 사용하는 한국
어: NLS_LANG=KOREAN_KOREA.KO16MSWIN949) 별 문제가 없을 것입니다.

2) 다국어 데이타베이스 + 다국어 출력 Applicaton

- 웹 기반이면 매우 간단합니다. UTF8 기반의 페이지들을 출력하시면 되겠습니
다. 웹 기반으로 운영을 하는 것이 비용상 가장 유리합니다.
- 웹 기반이 아니면, 기본적으로 다국어 출력시 해당 OS가 출력할 수 있는 형태
로 Application이 UTF8 데이타를 직접 변환해 주어야 하므로 까다롭습니다. 특
정 나라 버전의 OS에서 타국의 글자가 깔끔하고 보기좋게 나오는 경우는 특히
아시아 캐릭터들의 경우 거의 없습니다.

댓글 없음:

댓글 쓰기

블록체인 개요 및 오픈소스 동향

블록체인(block chain) 블록체인은 공공 거래장부이며 가상 화폐로 거래할때 발생할때 발생할 수 있는 해킹을 막는 기술. 분산 데이터베이스의 한 형태로, 지속적으로 성장하는 데이터 기록 리스트로서 분산 노드의 운영자에 의한 임의 조작이 불가...