우리 회사가 갑자기 체코에 지사를 세운답니다.
오라클 DB 설계를 해야하는데 체코어는 캐릭터셋을 어떻게 설계하죠?
오라클 데이터베이스를 설계할때 많은 고민을 하게 하는것이 캐릭터 셋이다.
최근에 제조업들이 유럽으로 진출하기 위해서 거점을 두는 곳이 체코인데 한국에서 개발하는 개발자들이 체코어 데이터베이스를 설계할때 고려할 사항을 검토해 보자.
1. 캐릭터셋
문자열의 집합이다. 영어 알파벳을 1바이트 한글은 2바이트 이렇게 우리는 상식으로 알고있다.
조금더 어렵게 내려가보면 내가 완성형 한글 '가' 를 입력했다고 치자.
이게 파일 시스템에 저장될 때는 ASCII 문자표에 KO16KSC5601(완성형) 페이지의 코드표에 맞게 2바이트의 '가' 에 해당하는 값 'B0A1'을 저장할 것이다.
이를 데이터베이스에서 읽을때 2바이트 단위로 읽으면서 B0A1 이 나오면 '가' 로 바꾸어서 표현해 주는 방식이다.
그럼 한글을 표현하는 캐릭터 셋은 무었일까?
KO16KSC5601(완성형)
KO16MSWIN949(조합형)
UTF8 ( 3바이트 다국어 )
이 3개의 캐릭터 셋은 한국어를 저장하고 꺼낼 수 있다.
2. 체코어는 어떤 캐릭터셋을 사용할까?
체코어(Czech)는 EE8ISO8859P2, EE8MSWIN1250 캐릭터셋 군에 속한다.
이 캐릭터 셋군에 들어가는 다른언어는 중앙유럽에 필요한 언어들 Czech 를 포함한 Hungarian, Polish 이며 유로 심볼은 포함되지 않으며. 체코어로 1바이트를 차지 한다.
이중에 ,
EE8MSWIN1250은 euro 심볼을 포함함으로(TM 마크 등) 윈도우 클라이언트를 많이 사용하며 TM마크등에서 ? 표시가 나는 것을 방지하기 위해 EE8MSWIN1250 을 추천할 수 있다.
3. 하지만 본사가 한국이라 한국어 매니저들이 들어가는 값은 한국어 인데?
(즉 한국어와 체코어가 동시에 들어가야 하는 상황 )
만약 한국어와 체코어를 병행해서 사용할 일이 있다면 UTF-8 혹은 AL32UTF8 을 사용하면 된다.
이때의 캐릭터 바이트 계산은 아래의 표와 같다.
(UTF-8 과 AL32UTF-8의 차이는 4byte 문자 지원여부 AL32UTF-8 이 4byte지원함.)
아스키 문자 : 1바이트 , 한글 3바이트, 유럽언어 2바이트, 유로심볼 3바이트
이렇게 정리할 수 있다.
'oracle' 카테고리의 다른 글
오라클 테이블별 사이즈 조회하기 (0) | 2018.10.20 |
---|---|
오라클 리두 로그 관리 (0) | 2018.10.17 |
보안점검후 오라클 기동 불가 해결방법 (0) | 2018.10.10 |
oracle freespace query ( 오라클 freespace 테이블 스페이스별 간편조회 스크립트 ) (0) | 2018.09.11 |
오라클 apex 서비스 끄는 방법(oracle xe 8080 충돌) (0) | 2018.08.19 |