KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
He who has a shady past knows that nice guys finish last.
FrontPage › HanyangPuaTableProject
이 페이지는 종료된 프로젝트를 가리키고 있습니다.

목차

1 한양 PUA 옛한글 변환 테이블 프로젝트
1.1 변환테이블 View / Download
1.2 변환 스크립트
1.2.1 변환 스크립트 예제
2 프로젝트 진행(완료)
2.1 프로젝트 진행 방법
2.2 프로젝트 작업진행 표
3 대화, 기타

1 한양 PUA 옛한글 변환 테이블 프로젝트

한양시스템의 nbatang.ttf, ngulim.ttf 등 글꼴에는 PUA(Private Use Area)에 상당히 많은 수의 옛한글 글리프가 완성된 형태로 들어가 있으며, 현재 [http]21세기 세종계획 등 옛문헌 전산화 프로젝트에서 작업하고 있는 옛문헌들이 바로 이들 글꼴의 PUA를 직접 입력하여 만들어지고 있습니다.

그러나 옛한글의 전산텍스트화에 쓰여야 할 바람직한 입력방식은 한글자모영역(U+1100--U+11FF)에 의하여야 한다는 점은 KTUG을 비롯한 다수 자발적인 온라인공동체에서 공감하고 있는 바이며, 이는 또한 무엇보다 유니코드 콘소시움의 표준이기도 합니다. [http]Unicode Standard Chapter 3 3.12 Conjoining Jamo Behavior 참조하세요.

따라서 이미 입력된 옛문헌들과 혹시 있을지 모를 PUA로 입력될 장래의 옛문헌들은 모두 한글자모영역을 이용한 코드로 변환할 필요가 있습니다. 이를 위해서는 한양 옛한글 PUA 코드와 한글자모코드 간의 변환테이블이 필요합니다. 본 프로젝트는 바로 이 변환테이블을 만들기 위한 목적을 가지고 있습니다.

그런데 이러한 변환테이블을 만들자면 한양 옛한글 글리프 하나하나를 한글자모영역 코드로 입력할 필요가 있는데, 이는 지루하고도 단조롭고 짜증나는 작업임에 틀림없습니다. 한 사람의 노력으로 이를 달성하기에는 많은 노력과 인내가 필요하고 시간도 많이 걸리고 생산성과 정확성도 떨어질 우려가 있습니다. 이에 여러 자발적인 참여자들의 도움으로 이 프로젝트를 진행하고자 하오니 많은 분들의 적극적인 동참을 부탁드립니다.

목차

1 한양 PUA 옛한글 변환 테이블 프로젝트
1.1 변환테이블 View / Download
1.2 변환 스크립트
1.2.1 변환 스크립트 예제
2 프로젝트 진행(완료)
2.1 프로젝트 진행 방법
2.2 프로젝트 작업진행 표
3 대화, 기타

1.1 변환테이블 View / Download

한양 PUA 옛한글 글리프를 한글 자모 코드로 변환하는 테이블이 일차로 완성되었습니다. 여러분들의 참여, 격려, 그리고 관심이 아니었다면 여기까지 도저히 올 수 없었을 것입니다. 모두에게 감사드립니다. 이로써 본 프로젝트는 일단락되었으나 앞으로도 잘못된 점이나 개선 사항이 있으면 지속적으로 고쳐나가려 합니다. 그러기 위해서는 파일을 cvs로 관리하는 것이 좋겠다는 생각이 들어 cvs에 전격적으로 집어넣었습니다:


두 개의 파일 중 composed는 가능한 한 자모를 하나로 모아 파일크기를 줄인 것입니다. decomposed는 자모를 조합하지 않고 풀어놓은 상태로 입력되어 있습니다. 필요한 파일을 cvs로 또는 웹으로 다운받을 수 있습니다. 아참, 한양글꼴 PUA 끝부분에 첫가끝 자모가 들어가 있는데(U+F784-U+F9F7), 소용되는 바가 있을 법도 하여 이 또한 변환표에 포함시켰습니다.

1.2 변환 스크립트

[http]hypua2jamo.pl cvs page
사용법: hypua2jamo.pl [-s] [-x] [-c] [-t] [-a] < IN_FILE > OUT_FILE
        hypua2jamo.pl -h

한양 PUA 코드로 된 표준입력을 한글자모코드로 변환하여 표준출력으로 보냄

  -s  한글음절도 한글자모코드로 변환
  -x  TeX Control Sequence는 변환하지 않음
  -c  한글호환자모도 한글자모코드로 변환
  -t  U+00B7(가운뎃점), U+003A(콜론)을 방점(tone marks)로 변환
  -a  `-s -x -c -t'를 함께 쓴 것과 동일
  -h  도움말 메시지 출력
입력 인코딩, 출력 인코딩 모두 UTF-8입니다. -x 옵션은 \(escape)문자부터 공백이나 { 혹은 [가 올때까지를 control sequence로 간주하는 원시적인 기능만 가지고 있으니 주의하세요.

1.2.1 변환 스크립트 예제

Uploads:hunmin.uni (UTF-8) 훈민정음 언해본. 21세기 세종계획의 공개 말뭉치 자료에서 xml 태그를 제거하고, 원 자료에서 잘못 입력된 부분을 원본과 대조하여 수정한 자료입니다. 옛한글은 모두 한양PUA로, 자모문자는 일부는 한글자모, 일부는 한글호환자모로 입력되어 있습니다.
#> perl hypua2jamo.pl -s < hunmin.uni > hunmin-jamo.txt

2 프로젝트 진행(완료)

2.1 프로젝트 진행 방법

자발적으로 참여하고자 하시는 분들은 아래 표에서 원하는 파일을 다운 받아 에디터로 nbatang.ttf, ngulim.ttf, sunbatang.ttf, sundotum.ttf 중 하나를 이용하여 열어놓고 이미 입력된 한양옛한글 모양을 보면서 그 옆에다 한글자모영역 코드로 동일하게 입력해 주시면 되겠습니다. Yudit을 이용하는 것이 좋을 것으로 생각되나, 어떤 에디터를 이용해도 상관 없겠습니다. 필요한 분은 [http]한글자모영역 코드표를 이용할 수 있습니다. ngulim 등의 옛한글 글리프는, 시스템에 ngulim 등이 설치되어 있다면 다음 웹사이트에서 확인할 수 있습니다: http://jshin.net/i18n/korean/ngulim.html

주의 사항
  • 입력참여자는 작업을 시작하기 전에 반드시 아래 표에 이름 또는 별명을 써 주시고 작업상황란에 입력중이라고 기재해주세요. 그래야 중복작업이 없습니다.
  • 파일을 에디터로 열면 한양 PUA 글자가 한 줄에 하나씩 입력돼 있을 것입니다. 그 오른쪽에 한글자모(첫가끝)코드로 해당 글자의 모양대로 입력해 주십시오.
  • 반드시 U+1100∼U+11FF의 자모코드로만 입력해 주십시오. U+3130영역의 한글호환자모로 입력해서는 안됩니다.
  • 초성코드영역(U+1100∼U+115F)과 종성코드영역(U+11A8∼U+11F9)이 다르니 뒤바뀌지 않도록 주의해주십시오.
  • 이응(ㅇ)과 옛이응(ㆁ), 히읗(ㅎ)과 여린히읗(ㆆ) 등 모양이 유사한 자소가 있으니 주의하십시오.
  • 파일은 UTF-8 인코딩으로 저장해주십시오.
  • 각 파일은 256개의 글자로 이루어져 있습니다. 다 입력했으면 원래의 파일이름을 유지하여 본 위키에 업로드해 주시고 입력완료라고 상황란에 기재해 주십시오.
  • 교정에 참여하는 분은 교정자 이름이나 별명을 써주시고 작업상황란에 교정중이라고 기재한 후, 올려진 파일을 내려받아 교정을 봅니다.
  • 교정이 끝났으면 원래 파일이름대로 업로드해주시고 상황란에 교정완료라고 써주십시오.

2.2 프로젝트 작업진행 표


영역작업파일 입력자 교정자작업상황 비고
e000Uploads:HyPUA_E000.tblDohyunKimKarnes,입력완료,교정완료
e100Uploads:HyPUA_E100.tblDohyunKimKarnes입력완료,교정완료
e200Uploads:HyPUA_E200.tblKarnes JungshikShin입력완료, 교정완료
e300Uploads:HyPUA_E300.tblKarnes 입력완료,교정완료
e400Uploads:HyPUA_E400.tblJungshikShinKarnes,DohyunKim입력완료,교정완료
e500Uploads:HyPUA_E500.tblJungshikShinDohyunKim입력완료,교정완료 <!> e522 ㅗㅗㅜ
e600Uploads:HyPUA_E600.tblKarnes JungshikShin입력완료,교정완료 <!> e60d ㅗㅗㅜ
e700Uploads:HyPUA_E700.tblDohyunKimJungshikShin입력완료,교정완료
e800Uploads:HyPUA_E800.tblDohyunKimKarnes 입력완료,교정완료
e900Uploads:HyPUA_E900.tblDohyunKimmoosoy입력완료,교정완료 <!> e978 ㅣㅗㅜ
ea00Uploads:HyPUA_EA00.tblKarnes moosoy입력완료,교정완료
eb00Uploads:HyPUA_EB00.tblKarnes MadToad,DohyunKim입력완료,교정완료
ec00Uploads:HyPUA_EC00.tblKarnes MadToad입력완료,교정완료
ed00Uploads:HyPUA_ED00.tblKarnes MadToad입력완료,교정완료 <!> edd7 종성ㅍㅅ
ee00Uploads:HyPUA_EE00.tblKarnes 입력완료,교정완료 <!> ee84 ㅣㅗㅜ
ef00Uploads:HyPUA_EF00.tblKarnes 입력완료,교정완료
f000Uploads:HyPUA_F000.tbl 글리프없음. 입력불필요.
f100Uploads:HyPUA_F100.tblKarnes ,DohyunKim입력완료,교정완료
f200Uploads:HyPUA_F200.tblKarnes ,DohyunKim입력완료,교정완료
f300Uploads:HyPUA_F300.tblKarnes moosoy입력완료,교정완료
f400Uploads:HyPUA_F400.tblKarnes MadToad입력완료,교정완료
f500Uploads:HyPUA_F500.tblKarnes MadToad입력완료,교정완료
f600Uploads:HyPUA_F600.tblKarnes 입력완료, 교정완료

3 대화, 기타

확실히 입력보다는 교정보기가 더 힘들었을 터인데 여러분의 열띤 동참으로 프로젝트가 거의 막바지에 다다랐습니다. 이제 이틀간 여유기간을 더 두겠습니다. 이틀동안 온라인상에서 작업파일들을 살펴보시면서 혹시나 있을지 모를 오류를 찾아주십시오. 오류를 발견하시면 교정자란에 이름을 추가하시고 수정된 파일을 업로드해주세요. 최종적인 테이블만들기는 금요일 밤 자정, 토요일 새벽 0시에 하겠습니다.--DohyunKim

잘은 모르겠으나 e500영역의 U+E522 hypua_mooi.png는 모음이 ㅗㅗㅣ인 것으로 판단됩니다. 처음엔 ㅗㅗㅜ라고도 생각했으나 ㅗㅗㅜ를 저렇게 쓸 리는 없을 것으로 봅니다. 마침 [http]MS Hangul OpenType Specification Appendix를 보니 이러한 복합모음이 나타나 있군요. 이와 비슷한 양상인 것으로 ㅣㅗㅣ 복모음도 있으니 주의하시기 바랍니다. 고문에 밝지 못하니 자신은 없네요.--DohyunKim
말씀하신 사이트에는 ㅗㅗㅣ로 보고 있군요. 그런데 이 모음은 제가 좀 조사를 해보았는데, 문헌에서 어디에 나오는지는 아직 못 찾았습니다. 다만 이 글자의 입력을 어떻게 구현했는지 몇몇 프로그램만 조사했는데, MS Office 옛한글 입력기는 말씀하신 사이트와 같이 ㅗㅗㅣ로 입력합니다만, 아래아한글은 ㅗㅗㅜ 입니다. 그리고 한적입력기는 희한하게도 ㅗㅗㆍ입니다. 개인적인 견해를 말씀드린다면, 훈민정음 용자례를 따라서 만약 이것이 ㅣ라면 ㅗ의 오른쪽 옆으로 가야 한다고 생각합니다. 따라서 ㅣ일 수는 없을 듯하네요. ㅣㅗㅣ의 경우에도 그것이 ㅣ는 아닐 것입니다. 지금 제 생각은 ㅗㅗㆍ 쪽에 기울어 있습니다. 좀더 조사해보겠습니다. --Karnes
아하, 그것을 ㅗㅗㆍ로 볼 수 있군요. ㅗㅗㅣ는 저도 아닐 확률이 높다고 생각합니다. 저는 ㅗㅗㅜ라고 생각하고 없다고 보고한 것입니다. -- JungshikShin
U+E522의 마지막 획과 다른 글리프에 들어있는 아래아(ㆍ)를 비교해 보십시오. 그 모양이 확연히 다릅니다.--DohyunKim
이 글자에 관해서는 어차피 무슨 글자인지 잘 모르고(훈민정음이 틀림없는데 무슨 글잔지 모른다는 게 비감합니다만...) 관련된 용례의 전거를 잘 아시는 분이 근거를 보여주실 때까지는 잠정적으로 접근할 수밖에 없다고 생각합니다. 모양에 대해서는... 그것이 MS에서 나온 모든 프로그램에서 ㅗㅗㅣ로 입력하도록 하고 있는 것으로 감안할 때, 입력방식으로부터 유추된 글자모양이 아닌가 싶고, 저로서는 신뢰할 수 없다고 생각합니다. 우선 잠정적으로 아래아한글을 따라(MS Word를 따르는 것보다는 개인적-정서적으로 이 편이 낫다고 생각되어서요...) ㅗㅗㅜ, ㅣㅗㅜ로 입력해둘 것을 제안합니다. --Karnes 제가 이렇게 제안하는 이유를 하나 더 들자면, ㅛ와 ㅣㅗ는 /j/와 /i/의 차이이므로 중국음이나 한자음 표기에 쓰일 수 있었을 거라 생각이 됩니다. 이런 이른바 "절요중성"은 주로 박통사나 노걸대류에서 사용된 것으로 생각되는데(아닐 수도 있습니다만...) 그렇다 하더라도 ㅗ+ㅣ는 언제나 ㅚ(현대어와 같은 단모음이 아니고 복모음)이지 ㅗㅣ를 절요하여 기록하지는 않았을 것 같습니다.(실제로 ㅗ밑에 ㅣ를 부서한 모음은 없지요?) 그러나 ㅗ 아래 ㅜ를 부서한 모음은 존재하므로, ㅗ+ㅗㅜ의 절요중성으로 보(아두)는 것이 (우선은) 어떨까 해서였습니다. --Karnes
음... 그럴 것도 같군요. 일단 ㅗㅜ로 입력해 두는 데 찬성합니다.--DohyunKim

HyPUA_EE00의 133라인 hypua_ee00_133.png는 모음이 ㅣㅗㅜ로 입력되어 있습니다. 제가 고어를 몰라서요. 이 글을 읽어보면 ㅣㅗㅣ가 맞는 것 같기도 하구요. 확인해 주시기 바랍니다.--

거의 순식간에 입력작업이 모두 끝났군요. 참여자 여러분들께 감사드립니다. 이제 꼼꼼히 교정 보는 일이 남았습니다. 입력 오류가 드물긴 하지만 그래도 분명히 있을 것입니다. 다같이 좀 더 힘을 내도록 합시다. 아자! 화이팅~ 일단 교정작업이 완료되면 다음 스크립트를 돌려 변환테이블을 얻으려 합니다. 스크립트에 문제는 없겠죠? Uploads:make_pua_table.pl
교정볼때 고친게 없어도 한번 다 훑어보았으면 교정완료라고 쓰는 거 맞나요? --moosoy
결합문자, 예컨대 ㅐ 같은 것을 굳이 ㅐ로 입력하려고 애쓰실 필요가 없습니다. 나중에 파일을 합치면서 스크립트를 돌릴 터인데 이때 결합이 가능한 경우 최대한 결합문자로 변환되도록 스크립트를 짜겠습니다. 따라서 ㅐ는 ㅏ와 ㅣ로 입력해도 상관없습니다. 그러나 순서는 중요합니다. 이를테면 ㅏㅗ와 ㅗㅏ 는 전혀 다릅니다.--DohyunKim
:) 그러실 거라고 생각은 했습니다만... 아래 Yudit kmap을 수정해가면서 작업을 하고 있는지라... 그것 때문에 저도 시험삼아 해본 것입니다. 어떻든지 저는 이 kmap을 사용함으로써 작업 속도가 세 배 정도 빨라졌습니다. :) --Karnes
그 스크립트를 만드실 때에 다음도 참고하십시오. 참, 제가 쓰는 이 부분은 U+1100 자모를 쓴 것이므로, 모질라에서 은바탕을 써야만 제대로 모아서 볼 수 있습니다.
http://jshin.net/i18n/korean/jamocomp.html -- JungshikShin

감사합니다. 이것이 없었다면 스크립트 짜는 데 시간이 스무배 이상 더 걸렸을 것입니다.--DohyunKim

참, 그런 스크립트나 도은이 아빠님과 같은 keymap을 만들어야 한다는 사실이 U+1100 자모 영역의 문제점을 여실히 드러내고 있습니다. 한국어 기본 자모 (초성 17자 + 중국음 표기를 위한 몇몇 자음, 중성 11자, 종성 17자)만 코드 할당을 했어야 했는데, 쓸데 없이 '복합 자모'까지 코드를 할당했기 때문에 그런 문제가 생긴 것입니다. (훈민정음을 만들 때 새로 28자를 만들었다고 했지, 누가 200여자를 만들었다고 했는지.......) 게다가 위의 표에서 알 수 있듯이 '복합 자모'의 목록도 완전하지 못 하기 때문에 어차피 Unicode 표준 3.11에 나온 식으로 합성을 해야 합니다. -- JungshikShin
입력하다 보니 MS의 GSUB 표에 있는 버그를 몇 개 찾았습니다. 그 표에 바탕을 두고 은바탕에 글리프를 그리고(박원규님), GSUB 표를 넣었는데(박원규님과 저) 수정해야겠군요. -- JungshikShin
그 문제뿐이 아닙니다. 위 표에서 e000영역 파일을 은바탕odal을 이용하여 모질라로 읽어보았습니다: hypuaproject-mozilla.png처음엔 입력 오류인 줄 알았는데 아니었습니다. 모질라의 렌더링 과정에서 어딘가 문제가 있는 것입니다. e000영역에서 적어도 이런 경우가 세번이나 나타납니다. dhhangul도 모질라에 들어있는 루틴을 따왔는데 아마 동일한 버그가 있을 것으로 생각합니다. 살펴봐주세요. --DohyunKim
버그를 찾아 주셔서 감사합니다. 글꼴에 문제가 있을 수도 있고, 제가 모질라에서 쓴 표에 문제가 있을 수도 있습니다. 조금 시간이 걸릴 것 같습니다. 금년 초에도 문제를 발견하고 고친 적이 있는데, 여전히 문제가 있네요. --JungshikShin
글꼴 버그입니다. 이상하게 ㄴㅊ과 ㄸ 부근에서 ㄴㅎ이 두번 나오고, 순서도 엉켜 있습니다. -- JungshikShin

Odal폰트를 약간 고쳐서 사용하고 있습니다. 모질라 렌더링에 여전히 문제가 있네요. E200파일을 불러보면: hypua_neuGR.pngㄴㅣㄱㄹ도 "다"로 표시됩니다. 위에서 제기된 복합모음 문제와 더불어 모질라 소스 수정이 필요할 것 같습니다.--DohyunKim

f600 입력완료 죄성함다 -- Karnes :)
읍! 엄청 빠르시네요. 몇 분만에 할 수 없죠. 다른 걸 골라잡아야지... --DohyunKim

hypuaproject-yudit.png : Yudit으로 작업 중인 모습

gedit_hypua.jpg : gedit와 Uploads:kor2v.xkb.txt (X11 키맵 파일) 사용 입력 장면. 이 키맵은 두벌식을 확장한 것으로 초성과 종성의 구별은 소문자와 대문자로 하고(위치는 두벌식 위치와 같음), 아래아는 'K'(모음 'ㅏ'가 'k'이므로), 반시옷은 '6 ^', 옛이응은 '2 @', 여린 히읗은 '4 $' (앞의 것은 초성, 뒤의 것은 종성)으로 입력합니다. 복합 자모(쌍자음 포함)는 기본 자모를 조합해서 입력하면 됩니다. Pango는 [http]http://bugzilla.gnome.org/show_bug.cgi?id=95708에 있는 패치 (어쩌면 다른 패치인지도. 제 리눅스의 Pango를 한때 많이 바꿨는데, Pango 작업을 안 한 지 1년이 지나서, 마지막으로 어떤 패치를 적용했는지 헛갈림. 모양으로 보아서 [http]http://bugzilla.gnome.org/show_bug.cgi?id=112467에 있는 패치 가운데 자모 Normalization 부분만 적용한 것일 수도 있음) 적용한 것. 하지만, 이 패치 없어도 입력 가능. -- JungshikShin

입력작업에 Yudit을 사용하실 분을 위해서... MiddleKorean 입력방식을 조금 수정해보았습니다. 이에 대해서는 Yudit을 참고하세요. --Karnes

도와드리겠다기보다 어떤 것인지 알아보자는 마음으로 yudit로 시도를 했는데 yudit.properties로 별 삽집을 다 했는데도 제대로 나오지 않고 코드 번호만 나옵니다. ㅠ.ㅠ 근데 거의 다 하셨네요. --hoze
이 문제는 Yudit에 옮겼습니다. --Karnes

이런 번거로운 일은 제가 좀 해야하는데 맨날 말로만 때워서 죄송합니다. --Progress


수고하셨습니다. 참여자 여러분, 그리고 이 프로젝트를 수행하신 DohyunKim 님께 진심으로 감사드립니다. 이제는 이 테이블의 이용에 대해서 생각해보아야 할 때가 된 것 같습니다. 제 생각은 적어도 두 가지 용도로 쓰일 수 있을 것 같습니다.
  1. 고문헌 자료들을 한글자모조합 방식의 코드로 변환하여 데이터베이스화하는 일.
    -> 이것을 위해서 한양PUA 입력을 자모조합코드 출력으로 변환하는 스크립트가 있어야 할 것입니다. "모든" 한글 코드를 첫가끝으로 변환하는 옵션도 하나 있기를 바랍니다.
  2. 첫가끝 입력된 Lambda(.tex) 파일의 처리에 있어서 한양 PUA 영역의 완성옛한글 문자를 불러서 식자하는 Lambda macro. DHHangul이 이 일을 지원할 가능성은 있는 것인지요?
--Karnes



^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2011-06-07 15:13:05
Processing time 0.2263 sec