- 전 세계 유니코드 문자에 대한 글리프(문자 도형) 를 포함한 자유 폰트로, GNU 프로젝트의 일부로 유지되는 공개 폰트임
- 15.1.01 버전부터는 이민서와 이호석의 기여로 새로운 조합 인코딩(6/3/1 방식) 이 도입되어 개선된 한글 글리프 체계 적용
- 최신 17.0.03버전에서는 중국어·일본어 한자와 아랍어·음악 기호 등 다수의 글리프가 수정·추가됨
-
BMP(기본 다국어 평면) 전체 65,536 코드포인트를 지원하며, SMP(보조 다국어 평면) 및 CSUR(ConScript Unicode Registry) 영역도 점차 확장 중임
-
GNU GPLv2+ 폰트 임베딩 예외와 SIL Open Font License 1.1의 이중 라이선스로 배포되어, 상용 소프트웨어에서도 자유롭게 사용 가능함
-
전 세계 문자 체계의 완전한 커버리지를 목표로 하는 대표적인 오픈소스 유니코드 폰트 프로젝트
GNU Unifont 개요
- GNU Unifont은 모든 인쇄 가능한 유니코드 코드포인트에 대한 글리프를 포함하는 폰트로, GNU 프로젝트의 일부로 유지됨
- 기본 다국어 평면(BMP, U+0000~U+FFFF)을 완전 지원
- 보조 다국어 평면(SMP, U+010000~U+01FFFF) 및 CSUR/Under-CSUR 영역도 지속 확장 중
-
상용 소프트웨어에서도 사용 가능하며, 파생 폰트는 동일한 라이선스로 공개해야 함
- 라이선스는 GNU GPLv2+ (폰트 임베딩 예외 포함) 및 SIL Open Font License 1.1
- 파생 폰트의 공개를 통해 공공 이익을 보장함
저작권 및 라이선스
- 수천 개의 글리프는 개별 기여자들의 창작물로, 각국 저작권법의 보호를 받음
- 일부는 기존 문자 형태, 일부는 아이콘·상징 디자인으로 국제 보호 수준이 더 높음
- 독일 저작권법 관련 메모랜덤이 공개되어 있음
- Unifont 13.0.04 이후 버전부터 GPL 2+ / SIL OFL 1.1 이중 라이선스로 배포됨
- 문서에 폰트를 포함(embed)하는 것은 GPL 위반이 아님
폰트 다운로드 및 형식
- 표준 빌드와 CSUR/Under-CSUR PUA 글리프 포함 버전 제공
-
OpenType(.otf) , PCF, BDF, PSF, HEX 등 다양한 형식 지원
- Windows, macOS에서 설치 가능하며, macOS 터미널에서는 Antialias 옵션을 켜야 가독성 확보
- 일부 렌더링 엔진은 글리프 간격 정보를 무시하므로, 모노스페이스 전용 엔진에서는 표시 오류 가능
Unifont의 한계
- 각 인쇄 가능한 코드포인트당 하나의 글리프만 저장
- 인도계 문자(데바나가리, 벵골어, 타밀어 등)나 위치에 따라 형태가 변하는 문자(아랍어 등) 는 정확히 렌더링되지 않음
- 복잡한 스크립트는 전문 OpenType 폰트 사용이 권장됨
새 글리프 기여
- 새로운 글리프를 추가하려면 사전 이메일 연락 필요
- 중국 정부가 저작권을 보유한 15×16 픽셀 한자 글리프(Plane 2, 3) 는 자유 폰트에 포함 불가
최신 릴리스 — Unifont 17.0
-
2025년 11월 1일 버전 17.0.03
- 중국어 ‘馬(말)’·‘鳥(새)’ 부수 포함 한자 100여 개 이상 수정
- 1935~2013년 간의 중국 간체자 표준 목록 반영
- 2009년 발표된 현대 상용자 부수 규격 포함
-
2025년 10월 18일 버전 17.0.02
- Plane 0~3 전반에서 Paul Hardy, David Corbett, 晓晓Akatsuki, Boris Zhang 등 다수 기여
- 아랍어, 체스 기호, CJK 확장자 등 다수 수정
-
2025년 9월 9일 버전 17.0.01
- 아랍어 확장-B, 통화 기호, 텔루구·칸나다 문자 등 추가
- Plane 1~3에서 새로운 아랍어 확장-C, Sidetic, Tolong Siki, Beria Erfe, Adlam 등 다수 스크립트 추가
이전 주요 버전
-
Unifont 16.0 (2025년 상반기)
- 아랍어, 그리스어, 한글, 음악 기호 등 다수 수정
-
Sitelen Pona, Zbalermorna 등 CSUR 스크립트 추가
-
Unifont 15.1 (2024년)
-
이호석(Ho-seok Ee) 의 조합형 한글 6/3/1 Johab 인코딩 도입
-
TrueType 대신 OpenType 기본 빌드로 전환
-
한글, CJK 확장자, Wen Quan Yi 글리프 대규모 개선
글리프 커버리지
- Plane 0~3, Plane 14, Plane 15까지 광범위한 유니코드 평면 지원
- Plane 0: 기본 다국어 평면 (모든 주요 문자 완전 커버)
- Plane 1: 보조 다국어 평면 (음악 기호, 상형문자, 고대 문자 등)
- Plane 2~3: CJK 확장 한자
- Plane 14: 태그 및 변형 선택자
- Plane 15: CSUR/Under-CSUR 사설 영역
CSUR 및 UCSUR 스크립트
-
Tengwar, Cirth, Aurebesh, Klingon, Sitelen Pona, Sadalian 등
- 다양한 인공 문자(conlang script) 포함
- 일부는 아직 미완성 상태로 표시
일본어 및 중국어 변형
-
JIS X 0213 표준을 완전 지원하는 unifont_jp 버전 제공
- 초기에는 Jiskan16, 이후 Izumi16 공개 글리프로 교체
- 중국어 버전은 통용규범한자표 완전 커버
-
Wen Quan Yi(文泉驛) 프로젝트의 공개 글리프를 기반으로 함
기술적 세부사항
-
TrueType 변환은 Luis Alejandro González Miranda의 스크립트를 기반으로 함
-
.hex → .sfd → .ttf 변환 자동화
-
16×16 픽셀 그리드를 기본으로 하며, 향후 32×32 픽셀 글리프 지원 예정
향후 계획
- SMP 평면의 16×16 픽셀 글리프는 모두 완성됨
-
탕구트(Tangut) 등 복잡한 스크립트는 32×32 픽셀로 향후 제작 예정
-
CSUR 스크립트 추가 작업 지속 중
- 모든 신규 기여는 GPL 2+ / SIL OFL 1.1 조건으로 공개해야 함
프로젝트 의의
- GNU Unifont은 전 세계 문자 체계의 디지털 접근성 확보를 목표로 하는 대표적 자유 폰트
-
오픈소스 생태계, 국제화(i18n), 폰트 엔지니어링 분야에서 핵심 인프라 역할 수행
- 지속적인 커뮤니티 기여를 통해 유니코드 표준의 시각적 완성도를 높이는 프로젝트임
한글의 기원과 구조
- 한글은 세종대왕이 1443~1446년 사이에 창제하여 1446년 훈민정음 해례본으로 반포
- 창제 목적은 “백성이 쉽게 배우고 매일 편리하게 쓰게 하려 함”으로 명시
- 해례본은 제자 원리를 설명한 주석서로, 2차 세계대전 중 발견된 유일본이 보존되어 있음
- 한글은 초성(자음)·중성(모음)·종성(받침) 세 요소로 이루어진 음절 블록 구조
- 예시: “한글”은 ‘ㅎ+ㅏ+ㄴ’, ‘ㄱ+ㅡ+ㄹ’의 조합으로 구성
- 모음과 반모음(y, w)은 초성 오른쪽 또는 아래쪽에 배치
자음의 구성 원리
- 자음은 발음 기관의 형태를 본뜬 다섯 기본 자음(ㄱ, ㄴ, ㅁ, ㅅ, ㅇ)에서 출발
- 여기에 획을 더해 17개의 원래 자음이 만들어짐
- 일부 자음은 쌍자음 형태로 강세를 표시
-
조합형 자모(Compatibility Jamo) 도 Unicode에 포함되어 있으며, 일부 옛 자모는 현재 사용되지 않음
모음의 구성 원리
- 모음은 하늘(양), 사람(중), 땅(음) 의 삼재 개념에서 유래
- 기본 요소: 점(ㆍ), 수평선(ㅡ), 수직선(ㅣ)
- 원래 11개의 모음이 존재했으며, ㆍ(아래아) 는 현대 표준어에서는 사라졌으나 제주 방언에 남아 있음
- 모음 결합으로 이중모음(diphthong) 이 형성되며, 일부는 현대 한글에서 사용되지 않음
-
Unifont Hangul 자모 세트는 고대와 현대의 모든 모음·이중모음을 지원
Unicode 내 한글 영역
- 한글은 다음 Unicode 범위에 포함
-
U+1100–U+11FF: Hangul Jamo
-
U+3130–U+318F: Hangul Compatibility Jamo
-
U+A960–U+A97F: Hangul Jamo Extended–A
-
U+AC00–U+D7A3: Hangul Syllables
-
U+D7B0–U+D7FF: Hangul Jamo Extended–B
-
U+FFA0–U+FFDF: Half-width Compatibility Jamo
-
초성·중성·종성의 조합 위치 조정이 폰트 디자인의 핵심이며, 비트맵 폰트에서도 조합형 음절 표현 가능
X11 조합형(Johab) 폰트와 Unifont
-
Johab 인코딩 폰트는 초성·중성·종성을 결합해 음절 글리프를 생성
- Unix X11 환경의 Hanterm 터미널에서 사용
-
Hanterm용 무료 폰트는 GPL 호환이 아니었기 때문에, Unifont에서는 새로운 한글 음절 글리프를 직접 제작
- 변환 과정: Perl 스크립트 johab2ucs2.pl → .hex → .bdf 변환
- 기존 폰트(iyagi16, johabg16 등)는 한터미널 전용 라이선스로 제한
- 이후 새로운 Hangul Syllables 세트를 수년간 제작하여 Unifont에 포함
최근 기여와 인코딩 개선
-
이민서(Minseo Lee) : 2023년, Hanterm 순서 기반의 현대 글리프와 고대 글리프 수정본 제공
- Perl 스크립트 개선 및 Unicode 범위 내 자모 일관성 수정
-
이호석(Ho-Seok Ee) : Johab 6/3/1 인코딩 제안
- 초성 6, 중성 3, 종성 1의 조합 구조로, 기존보다 글리프 생성이 단순화
-
Private Use Area(U+E000–U+E8FF) 로 코드 포인트 이동 제안
-
Unifont 15.1.01 버전부터 이 인코딩 방식 채택
Unicode 한글 음절 블록 (U+AC00–U+D7A3)
- 총 11,172개 음절 글리프로 구성
- 초성 19개(또는 채움자 1개), 중성 21개, 종성 27개(또는 없음)
- 조합식: (19×21)×28 = 11,172
- 모음으로 시작하는 단어는 초성 ‘ㅇ(이응)’ 을 채움자로 사용
- Unifont 5.1 이후 버전에서는 새로운 음절 블록 생성 과정이 별도 문서 Generating Hangul Syllables 에 상세히 기술됨