혼합 로컬 문자 세트 또는 UTF-8 다국어 데이터베이스 지원

이 주제에서는 혼합 로컬 문자 세트 배치 또는 UTF-8(8-bit Unicode Transformation Format) 다국어 데이터베이스를 지원하기 위한 가이드라인을 제공합니다.
서로 다른 로컬 문자 세트를 사용하는 각기 다른 컴퓨터를 동일한 Rational® ClearQuest® 데이터베이스 세트에 연결하는 환경에서 작업하는 경우 또는 데이터베이스 세트에 ClearQuest UTF-8 데이터 코드 페이지(65001)를 선택한 경우 다음 문자 표시 문제를 고려해야 합니다.

로컬 문자 세트 구성

로컬 문자 세트는 클라이언트 운영 체제의 명령행 쉘에서 입력 또는 표시할 수 있는 문자 세트입니다. UNIX 시스템에서 로컬 문자 세트는 LANG 환경 변수로 제어됩니다. Windows에서는 국가 및 언어 옵션의 설정으로 제어됩니다.

7.0 이전 버전의 Rational ClearQuest에서는 로컬 문자 세트가 ClearQuest 데이터 코드 페이지와 일치하지 않으면 쓰기 조작이 허용되지 않습니다. 설정이 일치하지 않으면 읽기 전용 조작만 허용됩니다. ClearQuest 애플리케이션에서 데이터베이스에 데이터를 쓸 때 데이터베이스 세트의 ClearQuest 데이터 코드 페이지 대신 클라이언트 또는 웹 서버의 로컬 문자 세트를 사용했으므로 읽기 전용 모드가 필요합니다.

버전 7.0부터 Rational ClearQuest 소프트웨어는 데이터를 유니코드로 처리하고, 해당 애플리케이션은 ClearQuest 데이터 코드 페이지를 사용하여 해당 데이터베이스에 씁니다. 이러한 애플리케이션은 로컬 문자 세트가 ClearQuest 데이터 코드 페이지와 일치하지 않는 경우에도 읽기/쓰기 모드에서 ClearQuest 데이터베이스에 연결될 수 있습니다.

데이터베이스 세트의 ClearQuest 데이터 코드 페이지 선택 및 설정

Oracle, IBM DB2 및 SQL Server에 대한 각각의 벤더 데이터베이스 문자 세트를 문자 세트(character set)문자 세트(charset), 코드 페이지코드 세트, 코드 페이지정렬이라고 합니다.

사용자 데이터베이스의 벤더 데이터베이스 문자 세트 선택 및 설정

Rational ClearQuest 버전 7.1.1부터 Oracle 및 DB2 데이터베이스 세트에 대해 UTF-8 ClearQuest 데이터 코드 페이지를 선택할 수 있습니다. UTF-8 데이터 코드 페이지에서는 사용자 데이터베이스에 다국어 문자의 저장을 허용합니다. 데이터 코드 페이지로 UTF-8을 선택하는 경우 운영 체제의 로컬 코드 페이지가 UTF-8이 아니면 혼합 로컬 문자 세트 배치에서 작업하게 됩니다. 그러나 후자는 Windows 시스템의 옵션이 아닙니다.

로컬 문자 세트에 포함되지 않은 ClearQuest 데이터 코드 페이지에서 문자 처리를 위한 후크 및 스크립트 코딩

혼합 로컬 문자 세트 배치 또는 UTF-8 다국어 데이터베이스 환경에서 작성된 스크립트 및 후크는 로컬 문자 세트에 포함되지 않은 ClearQuest 문자 데이터를 처리해야 합니다. 이러한 환경에서 이들 기능을 완전히 이용할 수 있도록 유니코드를 지원하려면 스크립트 및 후크를 코딩해야 합니다.

디자이너는 유니코드 인식이라는 새로운 설정을 포함합니다. 버전 7.0용으로 작성된 후크는 ClearQuest API 호출에서 리턴되는 문자열의 문자가 로컬 문자 세트(RETURN_STRING_LOCAL) 전용인지, 유니코드 문자(RETURN_STRING_UNICODE)가 될 수 있는지를 지정할 수 있습니다. 또한 새로운 API 함수는 리턴 문자열 모드를 제어하는 데 사용할 수 있습니다. RETURN_STRING_LOCAL 모드에서 API 호출은 리턴 문자열에 로컬 문자 세트로 표시할 수 없는 문자가 포함되어 있는 경우 예외를 리턴합니다. RETURN_STRING_UNICODE에서 API 호출은 오류 없이 모든 문자를 리턴합니다.

후크 및 스크립트가 혼합 로컬 문자 세트 또는 UTF-8 배치에서 모든 데이터를 처리하도록 하려면 모드를 RETURN_STRING_UNICODE로 설정하고 리턴될 수 있는 유니코드 문자를 적절히 처리해야 합니다. 리턴 문자열 모드를 RETURN_STRING_UNICODE로 설정하는 것만으로는 충분치 않습니다. 코드가 유니코드 문자를 올바르게 처리하는지 확인해야 합니다. 아래 나와 있는 가이드라인은 유용하지만 궁극적으로는 스크립팅 언어에 적합한 유니코드 프로그래밍 기술을 사용해야 합니다.

버전 7.0으로 업그레이드하는 경우, 환경의 모든 로컬 문자 세트가 이전 버전에서 공통이었던 것과 마찬가지로 ClearQuest 날짜 코드 페이지와 일치하는 경우 이러한 변경사항은 기존 스키마에 아무런 영향을 주지 않습니다. 기본 모드는 RETURN_STRING_LOCAL이며, 후크와 스크립트는 계속 작동하게 됩니다.

버전 7.0을 로컬 문자 세트가 ClearQuest 데이터 코드 페이지와 일치하지 않는 환경에 배치하는 경우, 스크립트가 ClearQuest 소프트웨어에 대해 유니코드 문자 데이터를 처리할 수 있는지 확인하고 스크립트에 대한 리턴 모드를 RETURN_STRING_UNICODE로 설정하고 패키지를 7.0 버전으로 업그레이드해야 합니다. 유니코드를 지원하는 ClearQuest 패키지 목록은 표 1 부분을 참조하십시오. 유니코드를 처리하지 않는 스크립트를 실행할 수는 있지만 시스템이 로컬 문자 세트에 포함되지 않는 문자 데이터를 스크립트에 리턴하려고 하면 오류가 리턴됩니다. 이들 스크립트는 처리되는 데이터가 클라이언트 또는 웹 서버의 로컬 문자 세트로 제한되는 동안 계속 작동합니다.

표 1. 패키지 리턴 문자열 모드
패키지 리턴 문자열 모드
AMWorkActivitySchedule RETURN_STRING_UNICODE
ATStateTypes RETURN_STRING_UNICODE
Attachments RETURN_STRING_UNICODE
AuditTrail RETURN_STRING_UNICODE
BTStateTypes RETURN_STRING_UNICODE
BuildTracking RETURN_STRING_UNICODE
CQTM RETURN_STRING_UNICODE
Customer RETURN_STRING_UNICODE
DeploymentTracking RETURN_STRING_UNICODE
DTStateTypes RETURN_STRING_UNICODE
EMail RETURN_STRING_UNICODE
EnhancementRequest RETURN_STRING_UNICODE
eSignature RETURN_STRING_UNICODE
History RETURN_STRING_UNICODE
Notes RETURN_STRING_UNICODE
Project RETURN_STRING_UNICODE
Resolution RETURN_STRING_UNICODE
TPM RETURN_STRING_UNICODE
혼합 문자 세트 배치를 처리해야 하는 애플리케이션을 개발하는 경우 여러 가지 고려사항을 해결해야 합니다.
  • 리턴 문자열 모드

    ClearQuest 소프트웨어는 유니코드 문자처럼 모든 데이터를 처리합니다. 그러나 스키마 후크(Perl 및 Visual Basic) 및 기타 ClearQuest API 애플리케이션 또는 통합은 유니코드 문자를 처리하도록 코딩되지 않습니다. 7.0 버전에서 이 문제점을 처리하는 데 리턴 문자열 모드를 사용할 수 있습니다. 디자이너 스크립트 편집기에서는 RETURN_STRING_UNICODE 리턴 문자열 모드에서 스크립트 실행을 표시하도록 후크 코드를 유니코드 인식으로 설정할 수 있습니다. (이를 위해서는 유니코드 인식 선택란을 선택하십시오.) 스크립트는 SetPerlReturnStringMode 또는 SetBasicReturnStringMode 메소드를 호출하여 리턴 문자열 모드를 RETURN_STRING_UNICODE로 설정할 수 있습니다.

    리턴 문자열 모드는 Perl 또는 COM에 대해 ClearQuest API에서 문자열을 리턴하는 경우 (RETURN_STRING_LOCAL)을 제한하거나 전체 (RETURN_STRING_UNICODE) 문자 표시를 허용합니다.

  • 기존 후크 또는 스크립트 코드에서 유니코드 지원

    유니코드 문자를 처리할 수 있는 후크 및 스크립트를 작성하는 것이 좋습니다. RETURN_STRING_LOCAL은 기본 리턴 문자열 모드로 제공되므로 이전 버전의 ClearQuest 소프트웨어에 대한 기존 후크 및 스크립트를 변경하지 않고 실행할 수 있습니다. 시간이 지날수록 현재 유니코드에 필요하지 않더라도 RETURN_STRING_UNICODE 모드에서 작동하도록 기존 후크 및 스크립트를 수정해야 합니다.

    후크 또는 스크립트 코드가 유니코드 문자를 처리할 수 있는지 확인하십시오. 그런 다음 디자이너 스크립트 편집기에서 후크 코드를 유니코드 인식으로 표시하거나, SetPerlReturnStringMode 또는 SetBasicReturnStringMode 메소드에 대한 외부 스크립트 호출을 수행하십시오. 그러면 후크 또는 스크립트를 모든 ClearQuest 환경에서 사용할 수 있습니다. 예를 들어, 다음과 같습니다.
    1. Perl의 ClearQuest API 스크립트를 데이터 코드 페이지가 Shift-JIS(932)로 설정된 ClearQuest 데이터베이스에 연결되는 Windows Latin 1(1252) 로컬 문자 세트 시스템에서 실행하는 중입니다.
    2. 스크립트는 일본어 텍스트를 포함하는 필드 값을 검색합니다. 기본적으로 값은 Perl 스크립트(이 예에서는 1252)를 실행하는 컴퓨터의 로컬 문자 세트로 리턴됩니다. Shift-JIS (932) 일본어 문자는 Latin 1 코드 페이지에서 문자로 표시되지 않으므로 예외가 발생합니다. 이 문자를 처리하려면 애플리케이션은 유니코드 문자를 처리할 수 있어야 하고 리턴 문자열 모드를 RETURN_STRING_UNICODE로 설정해야 합니다. 그러나 예외는 생성되지 않으며 스크립트는 필드 값에서 유니코드 문자로 모든 문자를 검색합니다.

    기본적으로 ClearQuest API 스크립트가 로컬 문자 세트 이외의 문자를 포함하는 문자열로 리턴되는 경우 2단계에서 예외가 발생합니다. 그러나 예외로 인해 데이터 손상이 발생하지는 않습니다. 코드를 검토하고 유니코드 문자를 처리할 수 있는 것으로 확인한 후 ClearQuest API를 사용하거나 디자이너의 스크립트 편집기에서 RETURN_STRING_UNICODE 리턴 문자열 모드를 설정할 수 있습니다. 이와 같이 변경하면 2단계에서 Perl용 ClearQuest API는 필드 값 문자열을 UTF8(UNICODE)로 리턴(문자열에 비로컬 문자 세트 데이터가 포함된 경우)하고 VBScript, Visual Basic 또는 COM에 대한 ClearQuest API는 무제한 유니코드 문자 세트를 리턴합니다. 로컬 문자 세트로 표시할 수 없는 문자는 유니코드 문자로 처리 시 후크 또는 스크립트로 리턴될 수 있습니다.

    후크 및 스크립트는 로컬 문자 세트로 표시할 수 없는 문자 처리를 지원하지 않는 스크립트 언어(Perl, VBScript, Visual Basic 또는 COM)로 오퍼레이션을 수행하는 경우 RETURN_STRING_LOCAL을 사용해야 합니다. 예를 들어, 다음과 같습니다.
    • Perl UTF8 문자열(예: 일부 시스템 호출)에 대해 작업하지 않는 Perl 호출에서 ClearQuest 데이터 사용
    • 파일 또는 디렉토리 이름으로 ClearQuest 데이터 사용(파일 및 디렉토리 이름은 로컬 문자 세트여야 함)
    • 유니코드 문자를 지원하기 위해 출력 파일을 구성하지 않고 파일에 ClearQuest 데이터 쓰기
    • 로컬 문자 세트 데이터만 허용하는 통합으로 ClearQuest 데이터 송신

    RETURN_STRING_LOCAL 모드에서 실행 조회와 같은 오퍼레이션을 수행할 수 있으며 조회 결과 세트는 유니코드 문자를 포함할 수 있습니다. 데이터가 Rational ClearQuest API 메소드로 결과 세트에서 추출되고 API 호출에서 리턴된 문자가 로컬 문자 세트가 아닌 경우에만 예외가 생성됩니다. 예를 들어, 통합으로 다시 전달되는 데이터에 로컬 문자 세트 문자만 포함된 경우 통합 또는 외부 애플리케이션은 변경 요청에 대해 작업할 수 있습니다. 리턴된 문자가 로컬 문자 세트가 아닌 경우 통합 코드는 Rational ClearQuest API 메소드로 발생한 예외를 처리해야 합니다. 통합 API가 RETURN_STRING_UNICODE로 구성된 경우 예외가 발생하지 않지만 애플리케이션은 리턴된 유니코드 문자를 올바르게 처리해야 합니다. RETURN_STRING_LOCALRETURN_STRING_UNICODE 모드에서는 애플리케이션에서 ClearQuest 데이터 코드 페이지로 표시될 수 없는 문자를 작성하는 경우 호출하는 통합 또는 애플리케이션으로도 예외가 리턴됩니다.

    자세한 정보는 IBM Rational ClearQuest API Reference 도움말의 후크 및 스크립트에 대한 리턴 문자열 모드 설정을 참조하십시오.

  • 패키지 및 스키마에서 유니코드 지원

    일부 패키지 또는 스키마는 유니코드 및 비로컬 문자 세트 데이터를 처리하도록 설계되어 있지 않습니다. 패키지마다 각 스크립트가 제공하는 지원은 디자이너 스크립트 편집기에 표시됩니다(유니코드 인식 선택란 선택). DefectTracking 및 Common 스키마는 유니코드를 지원합니다. 그러나 유니코드 문자를 지원하지 않는 패키지를 포함하는 스키마는 혼합 문자 세트 배치에 사용할 수 없습니다. 표 1 부분을 참조하십시오.

    패키지 필드에 액세스하는 후크를 편집하거나 추가할 수 있으며 이러한 후크는 패키지 파트로 간주됩니다. 그러한 후크는 패키지에서 기본 유니코드 지원을 상속하지만 디자이너는 후크에 적절한 설정을 표시하지 않습니다.

데이터베이스 세트 또는 클랜에 연결된 모든 클라이언트의 로컬 문자 세트가 데이터 코드 페이지와 일치하는 경우 그러한 문제를 고려할 필요가 없습니다. 문자 표시 및 코드 페이지 설정에 대한 자세한 정보는 Rational ClearQuest 관리 온라인 도움말을 참조하십시오.


피드백