database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL News 5748 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 5748
한국어 M$ Windows 2000, XP, 2003 사용자들을 위한 PostgreSQL 8.0 설치 및 사용 안내
작성자
김상기(ioseph)
작성일
2004-12-23 11:14ⓒ
2004-12-23 22:52ⓜ
조회수
14,321

PostgreSQL 8.0 공식 릴리즈가 머지 않은 상태에서 한국어 관련으로 몇가지 주의할 점이 있어

이렇게 먼저 공지합니다.

 

한국어 사용자들에게 있어 가장 크게 바뀐 부분은 http://pgfoundry.org/projects/pginstaller/ 페이지에서 배포하는 win32 binary 설치 파일을 이용해서 설치를 하게 되면 강제적으로 각 콘솔용 프로그램들의 메시지가 한국어로 보이게 됩니다.

한국어로 보지 않기를 원하면, chcp 명령 (codepage 값을 바꾸는 명령)으로 cmd 창의 codepage를 변경하셔야합니다.

 

PostgreSQL에서는 한국어 사용을 위한 가장 바람직한 데이터베이스 문자셋은 utf-8입니다. PostgreSQL에서는 이것을 unicode 라고 표현하고 있습니다. 엄격히 말하면 틀린 표현이지만, 아무튼 PostgerSQL에서 이야기하는 유니코드는 utf-8을 의미합니다.

 

일단 전통적인 문자셋으로 euc-kr 문자셋을 사용할 수도 있으나, 이것을 사용하게 되면, PostgreSQL에서는 이 문자셋에서 표현할 수 없는 글자들 - 흔히 말하는 확장완성형, uhc, cp949, mswin949 문자셋의 글자들의 입력 자체를 막고 있습니다. 즉, '아햏햏' 같은 글자를 입력할 길이 없습니다. 그래서, 부득이 PostgreSQL을 사용하고, 한국어를 자유롭게 사용하려면, 유니코드를 데이터베이스 문자셋으로 사용할 수 밖에 없습니다.

 

설치 할 때의 주의 사항.

 

다음, pginstaller 를 통해 설치할 때, 로케일을 물어보는데, 이때, 기본값을 C 로 지정하셔야합니다.

Korean_Korea.949 로 지정하게 되면, LC_COLLATE 값을 Korean_Korea.949 로 지정해서 데이터베이스 클러스터를 만들게 됩니다. 이렇게 되면, like 연산에서의 인덱스를 쓸 수 없게 되며, 한국어 자료의 정렬이 이상하게 됩니다.

PostgreSQL 개발진 측 말을 빌면, LC_COLLATE 값이 C 아닌 값으로 지정될 경우, M$ Windows의 collate 관계 각종 함수들이 오동작을 하기 때문이다고 합니다. 이는 M$ Windows 쪽에서 지원하지 않는 원천적인 문제라고 합니다.

또한 서버 메시지로 utf-8 인코딩으로 만들어진 메시지들이 모국어도 자동 변환되어버리는 문제때문에, 서버가 오동작 하게 되는 원인이 되기도 합니다.

자세한 이야기는 http://database.sarang.net/?inc=read&aid=5736&criteria=pgsql&subcrit=qna&id=&limit=20&keyword=&page=1

 

다음, 위의 문제들 때문에, 결국 pginstaller를 통해서 설치하실 때, 초기 데이터베이스 문자셋으로 unicode를 사용할 수 없게 만들어 두었습니다. 그래서, 가장 보편적인 SQL_ASCII 로 선택하셔야합니다. - 물론 데이터베이스가 초기화 되고 서비스가 가동되면, 그때 새로운 데이터베이스를 unicode로 만들어서 사용하면 됩니다.

위에서 언급한 대로 SQL_ASCII로 한국어를 사용하시면, like 연산에서 인덱스 사용이 불가능합니다. - 라고 했는데, 테스트를 해보니, 되네요.

SQL_ASCII 문자셋을 사용해도 될 것 같습니다. 이 경우는 단지 흠이 varchar(2) 는 한글 한 글자를 뜻한다는 것과, 정렬에서 '햏' 이 '피' 보다 앞에 나온다는 것 뿐입니다. 나머지는 모두 다 잘 될 것 같네요.

 

이렇게 해서, 설치된 PostgreSQL 사용법에 있어, 데이터베이스 문자셋이 unicode 일 경우 psql 프로그램을 사용하면 오류가 발생합니다. 왜냐하면, psql 의 기본 문자코드는 euc-kr인데, 서버가 unicode 이기 때문에 발생하는 문제인데, 이부분은

\encoding uhc

set encoding to uhc;

 

같은 명령으로 client_encoding 을 확장완성형으로 지정해 주면 됩니다.

 

다음, 한국어가 아닌 다국어를 표현해야할 경우라면, 문제가 조금 더 복잡해지는데, 이런 경우는 psql 프로그램을 포기하는 것도 한 방법입니다. :) 아니면,

설치디렉토리/share/locale/ko/LC_MESSAGES 디렉토리를 없애버리든지 이름을 바꾸어 두든지 해야할 것같네요.

 

문서를 좀 너저분하게 쓰는 스타일인지라, 글이 좀 장황한데, 아무튼 중요한 이야기입니다.

참고하세요.

[Top]
No.
제목
작성자
작성일
조회
5778Ars Technica names PostgreSQL "Server Application of 2004"
신기배
2005-01-04
7087
5769PostgreSQL performs well on 1TB database
신기배
2004-12-29
6458
5760EMS Manager Lite 버전을 Freeware로 내어놓았네요.
김상기
2004-12-26
7290
5748한국어 M$ Windows 2000, XP, 2003 사용자들을 위한 PostgreSQL 8.0 설치 및 사용 안내
김상기
2004-12-23
14321
5745News article about the 8.0 Release
신기배
2004-12-22
6384
5744Slony on OnLamp
신기배
2004-12-22
6656
5739Arkeia Network Back-up adds PostgreSQL Plug-in
신기배
2004-12-17
7158
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.051초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다