옛한글

위키백과 ― 우리 모두의 백과사전.

이 문서는 옛한글을 포함하고 있습니다. 옛한글이 제대로 보이지 않는다면 옛한글 도움말을 참고하십시오.

옛한글은 현대 한글에 쓰이지 않는 글자를 말한다.

목차

[편집] 컴퓨터에서 표기하기 위한 체계

[편집] 문자 코드 체계

[편집] 첫가끝 코드

첫가끝 코드란 유니코드의 한글 자모 영역(U+1100~U+11FF)을 첫소리-가운뎃소리-끝소리(-방점) 순서로 배열하는 방법을 말한다.

첫가끝 코드를 사용하여 《훈민정음》의 첫 구절(방점은 제외, 이하 같음)을 쓰면 다음과 같다(은글꼴이나 Code2000을 적용하면 볼 수 있다).

나랏말ᄊᆞ미 듀ᇰ귁에 달아 문ᄍᆞᆼ와로 서르 ᄉᆞᄆᆞᆺ디아니ᄒᆞᆯᄊᆡ

[편집] 한양 사용자 정의 영역 코드

이른바 한양 사용자 정의 영역 코드(Hanyang private use area code) 또는 한양 PUA 코드는 유니코드의 사용자 지정 문자범위를 쓰는 옛한글·구결 구현 코드이다. 윈도 XP까지 한국어판 윈도의 시스템 글꼴을 제작해온 한양정보통신에서 이 코드에 대응되는 글꼴을 제작하고 있다.

이 코드는 한/글마이크로소프트 워드 옛 버전에서 공식적으로 지원하고 있고, 그 밖에도 정부 기관 등에서 한글 고전을 정리하는 데에도 많이 사용되고 있다.

한양 PUA 코드를 사용하여 《훈민정음》의 첫 구절을 쓰면 다음과 같다.

나랏말미 듕귁에 달아 문와로 서르 디아니

사용자 지정 문자범위에는 어떤 것이 들어가도 되기 때문에, 이 코드로 된 글을 다른 글꼴(가령 Code2000)로 보면 올바르게 나타나지 않을 수 있다. 한국 TEX 사용자 모임과 같은 곳에서는 이 문자범위가 유니코드에서 옛한글을 위해 공식적으로 지정한 또는 지정할 코드가 아니기 때문에 이를 첫가끝 코드로 대체해야 한다고 주장한다.

한양 PUA 코드가 쓰는 한글 문자는 다음과 같이 배치되어 있다.

  • U+E0BC~U+EFFF, U+F100~U+F66E: 옛한글 완성형 글자
  • U+F784~U+F800: 옛한글 첫소리
  • U+F806~U+F864: 옛한글 가운뎃소리
  • U+F86A~U+F8F7: 옛한글 끝소리

그 밖의 문자는 다음과 같이 배치되어 있다.

  • U+E000~U+E0BB: 공백 문자
  • U+F000~U+F0FF: 특수한 그림 문자 (글꼴:Wingdings 1, 2, 3)
  • U+F67E~U+F77C: 구결

한양 PUA는 첫가끝 코드와는 달리 현대 한글 이외에, 자소의 합성이 완성되어 있는 글자들이 포함돼 있다. 따라서 이 글자들은 정사각형 형태의 글자 모양을 원하는 사람들에게 긍정적으로 받아들여질 수 있다. 이 완성형 글자 목록 외의 조합은 U+F784~U+F8F7 영역의 자소들을 이용해 합성하도록 하고 있다. 이 경우 정사각형 형태의 글자 모양을 완전히 유지하지 못한다는 단점이 있다.

그 외에 자소를 하나씩(ㄱ, ㅗ 등) 입력할 경우, 가급적 호환용 한글 자모 영역(U+3130~U+318F)의 자모를 이용하고, 그 영역에 없는 것은 한글 자모 영역(U+1100~U+11FF, 첫가끝 코드에서 이용하는 영역)의 자모를 그대로 이용한다. 그런데 한글 자모 영역의 문자들은 문자 조합을 위해 만든 것이기 때문에, 유니코드 콘소시엄의 방침대로라면 가운뎃소리와 끝소리는 글자 자체에 공간이 없이 앞 글자에 달라 붙게 만들어야 한다. 그러나 한양 PUA 코드를 이용하는 글꼴은 원칙을 무시, 한글 자모 영역의 글자들을 모두 글자 자체에 자기 공간이 할당돼 있다. 호환용 한글 자모 영역과 한글 자모 영역에도 없는 자모(한양 PUA에만 있는 자모)는 한양 PUA의 첫소리·가운뎃소리·끝소리 범위를 이용해 합성한다(채움 문자와 해당 자소를 합성한다).

한양 PUA 코드는 첫가끝 코드에는 없는 자소를 포함하고 있다. 예컨대 한양 PUA에 있는 ㆍ+ㅏ(한양 PUA: )는 유니코드 표준에는 없는 것이다.

[편집] 옛한글 자모 계열 글꼴

한양정보통신에서는 한국어판 윈도 시리즈에 내장된 자사의 굴림·궁서·돋움·바탕, 굴림체·궁서체·돋움체·바탕체, 새굴림·새궁서·새돋움·새바탕에 대응되는 ‘옛한글 자모’ 계열의 글꼴을 만들어냈다. 그 글꼴들은 굴림 옛한글 자모·궁서 옛한글 자모·돋움 옛한글 자모·바탕 옛한글 자모이다. 위의 한양 PUA 코드와 달리 PUA 영역을 이용하지 않고 자체적인 코드 정렬을 하고 있다.

이 글꼴의 특징 중에 하나로 한글을 조합할 때 필요한 다양한 모양의 자소들을 제공하고 있다는 점을 들 수 있다. 예를 들어 첫소리 ㄱ은 6종류의 형태가 있다(‘가’의 ㄱ, ‘과’의 ㄱ, ‘고’의 ㄱ, ‘강’의 ㄱ, ‘광’의 ㄱ, ‘공’의 ㄱ). 이들 자소는 한양 PUA에서 사용된 자소가 모두 포함돼 있다.

이 글꼴은 유니코드의 한중일 통합 한자 영역의 상단 일부(첫소리: U+4E06~U+50ED, 가운뎃소리: U+5102~U+51BD, 종성: U+5204~U+5437; 채움 문자는 여기서 제외)를 임의로 사용하고 있어, 기존 글꼴의 한자와 충돌한다는 문제점이 있다.

이 글꼴을 이용하여 《훈민정음》의 첫 구절을 쓰면 다음과 같다.

丘儂乻儃卲仙儃劇侦冰付冒 乍六叛上兩分俾儞 之儃劅俾儂 仝兗刯偩冱去俿儬乺優 佴儖乺冀 佶冰仝冱即么冒俾儂丘冒僕冱劇侥冺

이 글꼴로 옛한글을 쓰는 것이 가능하기는 하지만 입력하기 어렵고, 이것으로 작성된 문서는 전체 용량이 커진다는 단점이 있다. 한양 PUA 코드에서는 완성된 형태의 글자 외의 글자는 U+F784~U+F8F7 영역의 자소들을 이용해 합성하도록 하고 있어, 이들 글자들은 정사각형 형태의 글자 모양을 완전히 유지하지 못하는 단점을 이미 위에서 언급했다. 이 옛한글 자모 글꼴은 이 ‘단점’을 굳이 보완하고자 할 때에 한해서만 사용이 적합하다.

[편집] 그 외 기술적인 이슈

[편집] 채움 문자

상기 세 코드는 조합할 때 채움 문자(영어: filler)를 사용하기도 한다. 채움 문자란, 한글 음절에서 첫소리·가운뎃소리·끝소리가 비어 있으면 대신 넣는 문자이다.

유니코드 표준인 첫가끝 코드의 경우 초성 채움 문자는 U+115F, 중성 채움 문자는 U+1160, 종성 채움 문자는 없다. 그런데 날개셋 한글 입력기는 제작자가 유니코드의 채움 문자가 잘못 배정되었다고 주장, 초성 채움 문자를 U+10FF으로 사용하고 있고, U+11A7을 종성 채움 문자로 새로이 할당하여 쓰고 있다. 이 점은 제작자 주장의 타당성 여부를 떠나 코드 호환에 문제가 되고 있다.

한양 PUA 코드의 경우, 초·중·종성 채움 문자를 각각 U+F784, U+F806, U+F86A으로 할당하고 있다. 옛한글 자모 계열의 글꼴의 경우, 정확히 어떤 것이 채움 문자인지는 알려져 있지 않으나 추정 가능하다. 옛한글 자모 계열의 글꼴은 첫소리는 한 글자 당 6종류(ㄱ을 예로 들면 ‘가’의 ㄱ, ‘과’의 ㄱ, ‘고’의 ㄱ, ‘강’의 ㄱ, ‘광’의 ㄱ, ‘공’의 ㄱ)를, 가운뎃소리는 한 글자 당 2종류(ㅏ를 예로 들면 ‘가’의 ㅏ, ‘강’의 ㅏ)를, 끝소리는 한 글자 당 4종류를 할당하고 있다. 따라서 초·중·종성 채움 문자도 각각 6개, 2개, 4개가 된다는 것을 짐작할 수 있다. 이에 따라 초·중·종성 채움 문자는 각각 U+4E00~4E05, U+5100~U+5101, U+5200~U+5203이라고 생각된다.

[편집] 방점

유니코드에서 방점은 한 점짜리를 U+302E, 두 점짜리를 U+302F에 할당하고 있다(한양 PUA 코드와 옛한글 자모 계열의 글꼴은 방점을 따로 할당하지 않고 있다). 방점은 한글 음절(첫소리+가운뎃소리+끝소리)이 완성된 뒤에 입력하면 된다.

그런데 이 방식이 널리 정착되지 않아서인지 출판계 등에서는 한글 음절에 앞서 방점으로 가운뎃점(·)이나 콜론(:)을 입력하는 방식을 대신 쓰는 경우가 많다(이 방식은 세로쓰기에서 쓸 수 없고, 가로쓰기에서만 쓸 수 있다).

한/글에서는 별도로 글자 모양 설정을 통해 ‘강조점’의 한 형태로 방점을 다는 방식을 별도로 제공하고 있다. 그런데 한/글 내에서 세로쓰기를 할 경우 강조점 방점의 위치가 글자 왼쪽이 아닌 위로 올라가는 문제가 있다. 방점의 위치는 가로쓰기·세로쓰기 모두 한글 음절의 왼쪽에 붙어야 하는데, 한/글 개발자들이 이 점을 간과한 것으로 보인다.

[편집] 정규화 알고리즘

유니코드 콘소시엄에서는 정규화(normalization) 알고리즘을 제정하고 있다. 이것은 미디어위키 등에서 사용되고 있다.

그런데 현재의 정규화 알고리즘에는 첫가끝 코드에 치명적인 버그가 있다. 예컨대 ‘듀’(U+1103, U+1172)는 이 알고리즘을 거치면 ‘듀’(U+B4C0)로 치환이 되는데, 문제는 이 뒤에 옛한글 종성이 붙을 경우이다. 예컨대 ‘듀ᇰ’(U+1103, U+1172, U+11F0)은 따로 완성형 한글 음절이 없으므로 치환을 하면 안 된다. 그런데 정규화 알고리즘에서는 이것을 인지하지 못하고 ‘듀’만 따로 ‘듀’로 치환, ‘듀ᇰ’(U+B4C0, U+11F0; 즉 듀+ᅟᅠᇰ)의 잘못된 형태로 바꾸어 버린다. 위키백과를 구동하는 미디어위키에서도 같은 버그가 발생한다.

한국어 위키백과에서는 이 버그를 피하기 위해 편집자들이 다음과 같은 몇 가지 방법을 사용하고 있다. 듀ᇰ을 예로 든다.

  1. 첫소리나 가운뎃소리를 문자 참조(character entity reference)로 대체한다.
    • 예: ᄃᅠᅲᅟᅠᇰ
  2. 첫소리와 가운뎃소리 사이에 <nowiki></nowiki>를 집어 넣는다.
    • 예: ᄃᅠ<nowiki></nowiki>ᅟᅲᅟᅠᇰ
  3. {{첫가끝}} 틀에서 제공하는 회피법(첫소리와 가운뎃 소리 사이에 | 삽입)을 사용한다.
    • 예: {{첫가끝|ᄃᅠ|ᅟᅲᅟᅠᇰ}}
  4. 첫소리와 가운뎃소리 사이에 U+200D(ZERO WIDTH JOINER)를 첨가한다.
    • 예: ᄃᅠ&#x200D;ᅟᅲᅟᅠᇰ

위 방법 중 4번은 한글 조합과 관계 없는 다른 문자(ZERO WIDTH JOINER)를 더하게 되어 표준적인 음절을 만들어 낼 수 없다는 문제가 있다.

[편집] 바깥 고리

첫가끝 지원 무료 글꼴 다운로드

첫가끝 지원 무료 유틸리티 다운로드

한양 PUA 지원 무료 글꼴 다운로드

한양 PUA 지원 무료 유틸리티 다운로드

한글 홑낱자
현대 한글: | | | | | | | | | | | | |
| | | | | | | | |
옛한글: | | | 치두음과 정치음(·········)

방점(〮, 〯)
한글 겹낱자
현대 한글: | | | | | | | | | | | | | | |

| | | | | | | | | |

옛한글: ㄱㄴ | ㄱㄷ | ᇃ | ㄱㅂ | ᇄ | ㄱㅊ | ㄱㅋ | ㄱㅎ | ᄓ | ㅥ | ㅦ | ㄴㄹ | ᄖ | ㅧ | ㅨ | ㄴㅊ | ᇉ | ᄗ | ㄷㄷㅂ | ᇋ | ㄷㅁ | ㄷㅂ | ㄷㅅ | ㄷㅅㄱ | ㄷㅈ | ㄷㅊ | ㄷㅌ | ㄹㄱㄱ | ㅩ | ㄹㄱㅎ | ᄘ | ㅪ | ㄹㄷㄷ | | ᄙ | ㄹㄹㅋ | ᇑ | ᇒ | ㄹㅁㅎ | ㄹㅂㄷ | ㄹㅂㅂ | ㅫ | ㄹㅂㅍ | ᇔ | ᇕ | ᇖ | ㅬ | ㄹㆁ | ㄹㅈ | | ㅭ | ㄹㆆㅎ | | ᇚ | ㅁㄴ | ㅁㄴㄴ | ㅁㄷ | ᇛ | ㅁㅁ | ㅮ | ㅁㅂㅅ | ㅯ | ᇞ | ㅰ | ㅁㅈ | ᇠ | ᇡ | ㅱ | ㅂ계 합용 병서(ㅲ·ᄟ·ㅳ·ᇣ·ㅂㄹㅍ·ㅂㅁ·ㅶ·ᄨ·ㅂㅋ·ㅷ·ᄪ·ᇥ) | ㅄ계 합용 병서(ㅴ·ㅵ·ᄤ·ᄥ·ᄦ·ㅂㅅㅌ) | | ㅹ | ㅅ계 합용 병서(ㅺ·ㅻ·ㅼ·ᄰ·ᄱ·ㅽ·ᄳ·ㅅㅸ·ㅅㅅㄱ·ㅅㅅㄷ·ㅅㅅㅂ·ᄴ·ㅅㅿ·ᄵ·ㅾ·ᄷ·ᄸ·ᄹ·ᄺ·ᄻ) | ᅁ | ᇭ | ᅂ | ㅇㄹ | ᅃ | | ᅅ | ᅆ | | ᅈ | ᅉ | ᇯ | ᅊ | | ㅇㅎ | ㆁㄱ | ㆂ | ㆃ | ㆁㅋ | ㆁㅎ | ㅈㅂ | ㅈㅂㅂ | ᅍ | ㅈㅈㅎ | ᅒ | ᅓ | ㅌㅌ | ᅖ | ㅍㅅ | ㅍㅌ | | ᇵ | ᇶ | ᇷ | ᇸ | ㅎㅅ | | ㆆㆆ

ᅶ | ᅷ | ㅏㅡ | ᅸ | ᅹ | ㅑㅜ | ᅺ | ᅻ | ᅼ | ㅕㅑ | ᅽ | ᅾ | ㅗㅑ | ㅗㅑㅣ | ᅿ | ᆀ | ㅗㅕ | ᆁ | ᆂ | ㅗㅗㅣ | ᆃ | ㅛㅏ | ㅛㅏㅣ | ㆇ | ㆈ | ㅛㅓ | ᆆ | ᆇ | | ᆉ | ᆊ | ᆋ | ㅜㅕ | ᆌ | ᆍ | ㅜㅣㅣ | ᆎ | ㅠㅏㅣ | ᆏ | ᆐ | ㆊ | ㆋ | ㅠㅗ | ᆓ | ㆌ | ㅡㅏ | ㅡㅓ | ㅡㅓㅣ | ㅡㅗ | ᆕ | ᆖ | ᆗ | ᆘ | ᆙ | ㅣㅑㅗ | ㅣㅑㅣ | ㅣㅕ | ㅣㅕㅣ | ᆚ | ㅣㅗㅣ | ㅣㅛ | ᆛ | ㅣㅠ | | ㅣㅣ | | ㆍㅏ | ᆟ | ㆍㅓㅣ | ᆠ | |

한글 낱자 목록