1. 폰트의 구조
A. 서체 (Typeface)
글자의 형태를 의미하는 단어로 일정한 격식이나 양식으로 써 놓은 글자의 모양을 말한다. 예를 들어, 한자에는 해서, 행서, 초서, 예서, 전서 그리고 한글에는 명조, 고딕, 궁체, 판본체 등의 서체류가 있으며, 각 개인 마다의 고유한 손글씨도 하나의 서체라 말할 수 있다.
B. 폰트 (Font)
활자 시대의 'found(주조하다)'에서 유래된 단어로 서체의 디자인과 크기가 유사한 한 벌의 문자집합을 말한다. 여기서 한 벌이란, 특정 문자로 조판을 하기 위해 필요한 모든 글자와 문장부호, 숫자 등을 의미한다. 현재는 일반적으로 디지털 폰트 파일을 의미하며, 컴퓨터의 운영체제나 소프트웨어에 탑재되어 텍스트를 스크린에 출력하거나 종이로 인쇄하는데 사용된다.
C. 글리프 (Glyph)
문자의 구체적인 모양이나 표현을 뜻하는 단어로, 폰트에서는 하나의 문자 또는 기호를 표현하기 위해 필요로 하는 데이터를 의미한다. 글리프 데이터는 크게 조판을 위한 매트릭스 정보와 서체를 표현하기 위한 윤곽선 정보로 구성되는 디자인 정보로, 문자의 뜻이나 의미, 소리 등은 포함하지 않는다.
2. 폰트의 종류
A. 트루타입 폰트
애플에서 개발하고 마이크로소프트가 윈도우 3.1에 채택하면서 세계적으로 널리 보급된 폰트 포맷이다. 하나의 파일로 화면 출력과 인쇄 출력을 동시에 할 수 있다는 장점때문에 여전히 대중적으로 사용되고 있으며 오픈타입 폰트로 발전되었다. 트루타입 폰트는 2차 스플라인 곡선으로 서체의 윤곽선을 표현하기 때문에 3차 베지어 곡선으로 표현하는 오픈타입 폰트에 비해 점의 개수가 많아 오픈타입 폰트에 비해 폰트 파일의 크기가 큰 편이다.
트루타입 폰트는 힌팅 기술로 픽셀 수준으로 윤곽선을 제어할 수 있어 윈도우 상의 저해상도 화면에서 뛰어난 품질을 보여주기 때문에 화면용 폰트로 사용하기에 적합하다. 하지만 힌팅 처리에 너무 많은 시간이 들고 고해상도 화면이 많아지면서 화면용 폰트로써의 활용도가 점차 줄어들고 있다.
B. 오픈타입 폰트
마이크로소프트와 어도비사가 합작하여 개발한 폰트 포맷으로 윈도우와 매킨토시에서 모두 사용이 가능하다. 오픈타입 폰트는 트루타입 기반과 포스트스크립트 기반으로 구분되는데, 트루타입 기반의 오픈타입 폰트는 파일 확장자로 .ttf를, 포스트스크립트 기반의 오픈타입 폰트는 .otf를 파일 확장자로 사용한다.
이 중 포스트스크립트 기반의 오픈타입 폰트는 3차 베지어 곡선으로 서체의 윤곽선을 표현하기 때문에 트루타입 기반의 오픈타입 폰트보다 파일의 크기가 작은 편이다. 또한 오픈타입 폰트는 다국어 혼용 등 고급 타이포그라피 환경에서 보다 뛰어난 조판 결과를 얻을 수 있도록 다양한 타이포그라피 기능을 제공한다.
C. 웹폰트
웹페이지에 표시되는 모든 문자는 이미지 혹은 텍스트로 구분된다. 이 중 이미지가 아닌 텍스트로 문자를 표현하는 경우, 디자이너는 텍스트에 적용할 폰트를 CSS에 지정한다. 하지만 방문자 시스템에 디자이너가 지정한 폰트가 설치되어 있지 않으면 웹브라우저가 시스템에 설치되어 있는 다른 폰트로 대치하여 텍스트를 표현하기 때문에 방문자마다 서로 다른 사용자 경험을 하게 된다.
웹폰트는 사이트에 접속한 방문자의 시스템에 자동으로 다운로딩 되어 해당 텍스트를 표현해주기 때문에 모든 방문자가 동일한 사용자 경험을 얻을 수 있게 한다. 현재 WOFF 포맷이 웹폰트 표준으로 채택되어 대부분의 브라우저에서 사용되고 있으며, Internet Explorer 하위 버전과의 호환성을 위해 EOT 포맷을 사용하기도 한다.
D. 가변폰트 (Variable Font)
서체의 다양한 변형을 하나의 파일 안에 담아 제작한 폰트를 말한다. 일반적인 폰트는 각 폰트 파일마다 하나의 정형화된 서체만을 사용할 수 있는 반면에 가변폰트는 하나의 폰트 파일만으로 서체의 두께, 너비, 기울기 등을 사용자가 직접 조정하여 원하는 형태의 서체로 사용할 수 있다.
이렇게 서체를 변형하는 기준을 축(axis)이라고 하며, 웹이나 Adobe CC 등 가변폰트를 지원하는 환경에서만 축의 수치를 조정할 수 있다.
E. 컬러폰트
폰트에 서체와 더불어 색상 정보가 함께 포함된 폰트를 말한다. 컬러폰트에는 다양한 방식으로 서체에 색상 정보를 부여할 수 있는데, Microsoft, Apple, Google, Adobe와 같은 주요 기업들은 서로 다른 접근방식으로 서체에 색상을 부여하고 있다.
컬러폰트를 사용하면 서체를 이미지로 변환하지 않아도 다양한 색상과 질감을 표현할 수 있기 때문에 웹과 같은 디지털 환경에서의 활용도가 높다.
3. 코드와 문자세트
A. 인코딩
사용자가 키보드를 통해 입력한 문자는 IME(Input Method Editor)를 통해 특정 코드로 변환되며, 컴퓨터는 이렇게 변환된 코드를 입력받아 데이터를 처리한다. 이렇게 문자나 기호를 특정 코드로 변환하는 것을 인코딩(Encoding)이라 하고, 반대로 변환된 코드를 원래의 문자로 해독하는 것을 디코딩(Decoding)이라 한다. 이 때 인코딩 전의 문자와 디코딩 후의 문자가 같기 위해서는 어떤 문자를 어떤 코드로 변환할지에 대한 약속을 정해야만 한다.
B. 문자세트
문자를 특정 코드로 변환하기로 약속하는 것을 코드 매핑(Code Mapping)이라 하고, 이러한 코드 매핑의 모음을 문자세트라 한다. 대표적인 문자세트로는 아스키(ASCII)코드가 있으며, 한글 문자세트로는 KS 코드 등이 있다.
C. KS코드
한국산업표준(Korea Industrial Standards)으로 지정된 문자코드를 지칭한다. KS로 지정된 문자코드 규격에는 여러가지가 있는데 일반적으로 'KS코드'라고 하면 KS X 1001 (구: KS C 5601)를 의미하며, 2004년에 개정된 KS X 1001:2004가 가장 최신 규격이다. 이 규격은 2004년도 개정본에서 약물 3자가 추가되어 한글 2,350자, 약물 988자, 한자 4,888자의 문자세트로 구성되어 있다.
KS코드는 한국산업표준 규격임에도 불구하고 산업 전반에 유니코드가 사용되면서 현재는 거의 사용되지 않는다. 단지 KS코드 규격에 포함된 문자들에 유니코드를 할당하기 위한 문자세트로만 활용되고 있다. 하지만 한글 2,350자만으로는 표현할 수 없는 글자가 너무 많고, 한글 11,172자가 모두 포함된 폰트들이 많이 출시되면서 문자세트 마저도 그 용도가 줄어들고 있다.
D. 유니코드 (Unicode)
플랫폼이나 장치, 소프트웨어, 지역, 언어에 관계없이 손상없이 데이터를 주고받을 수 있도록 전 세계의 모든 문자를 하나의 코드 체계로 묶은 산업규격이다.
유니코드는 KS코드와 달리 한글 11,172자를 모두 지원하며, 새로운 한자나 이모지 등이 계속해서 추가되고 있다. 이렇게 유니코드의 사용을 촉진하고 개발, 확장하기 위해 유니코드 컨소시엄이라는 비영리 조직이 운영되고 있으며, 여기에는 Adobe, Apple, Google, Microsoft와 같은 세계적인 IT기업들이 참여하고 있다.
E. Adobe Korea1-2
Adobe사에서 지정한 유니코드 기반의 한글 문자세트로, 코드 체계는 유니코드를 사용하고 문자세트는 KS X 1001을 차용하여 타폰트들과의 호환성이 높기 때문에 한글 폰트 제작에 많이 사용되고 있다.
포함된 글자 수에 따라 문자세트의 버전이 높아지며, 각 버전의 구성 문자는 다음과 같다.
- Adobe Korea1-0: 영문 95자 + KS문자세트 7,955자 + 확장심볼 1,281자
- Adobe Korea1-1: 한글 8,822자
- Adobe Korea1-2: 세로쓰기용 영문 197자
Adobe사에서는 한글 이외에도 다양한 언어를 위한 문자세트를 지정했는데, 대표적으로 일본어용 Adobe Japan1-7, 중국어용 Adobe GB1-5, 영문용 Adobe Latin 5 등이 있다.
F. Adobe KR-9
2000년대 이후로 많은 한글 조판 환경의 변화와 타이포그래피 기술의 발전이 있었으나 Adobe Korea1-2는 1998년에 발표한 이래 한 차례도 수정되지 않아 여러가지 문제점을 안고 있었다. 이에 Adobe사는 20년만인 2018년에 Adobe Korea1-2보다 호환성이 높고 유연한 Adobe KR-9이라는 문자세트를 발표했다.
Adobe KR-9은 Supplement 0부터 Supplement 9까지 총 10개의 영역으로 구분되는데, 각 영역은 서로 독립적이기 때문에 제작자의 의도에 따라 기본 영역인 Supplement 0에 원하는 영역들을 합하여 폰트를 제작할 수 있다. 예를 들어 Supplement 0에 KS문자세트 호환 영역인 Supplement 4, 5, 7, 9를 추가하여 폰트를 제작하면 기존 KS문자세트로 제작된 폰트들과도 완벽하게 호환이 가능하다.
기본 영역인 Supplement 0은 KS문자세트보다 430자 더 많은 2,780자의 한글을 포함하고 있어서, 이것만으로도 실제 사용되는 거의 대부분의 한글을 충분히 표현할 수 있다.
4. 웹폰트와 화면출력
A. 웹폰트
웹페이지는 CSS를 통해 글자를 어떤 폰트로 보여줄지 미리 지정할 수 있는데, 이 때 시스템 폰트를 적용할지 웹폰트를 사용할지 선택할 수 있다.
시스템 폰트란 윈도우의 '굴림', '맑은고딕', 매킨토시의 'Apple SD 산돌고딕네오'와 같이 운영체제에 기본적으로 탑재되어 있어 누구나 볼 수 있는 폰트를 말한다. 시스템 폰트를 사용하면 해당 운영체제를 사용하는 방문자들은 누구나 지정된 폰트가 적용된 웹페이지를 볼 수 있다.
만약 시스템 폰트가 아닌 폰트를 웹페이지에 적용하기 위해서는 방문자들의 시스템에 해당 폰트가 설치되어 있지 않을 확률이 높기 때문에 웹폰트를 사용해야 한다. 웹폰트를 사용하지 않으면 웹브라우저는 CSS에 정의된 폰트를 무시하고, 시스템에 설치된 폰트를 임의로 적용하여 웹페이지를 보여준다.
B. 서브세트
웹폰트를 사용하면 방문자 접속 시 웹브라우저가 CSS에 정의된 웹폰트 파일을 실시간으로 다운로딩하여 웹폰트가 적용된 페이지를 보여준다. 이 때 폰트 파일이 다운로딩 되는 시간만큼 웹페이지에 글자가 적용되는 속도가 늦어지기 때문에 웹폰트는 파일의 용량이 작을수록 방문자에게 쾌적한 브라우징 환경을 제공할 수 있다.
일반적으로 한글 등 CJK 문자권의 폰트는 글자수가 많기 때문에 그만큼 폰트 파일의 용량이 커서 웹폰트로 사용하기에는 적합하지 않다. 그래서 딱 웹페이지에 사용된 글자만 따로 모으는 '서브세팅(Subsetting)' 과정을 거치고, 이렇게 서브세트 된 글자들만 담아서 만든 작은 용량의 폰트를 서브세트 웹폰트(Subset Webfont)라고 한다.
다만 웹페이지마다 담고 있는 글자가 서로 달라서 모든 페이지마다 별도의 서브세트 웹폰트를 제작하기는 어렵기 때문에 다이렉트 서브세팅(Direct Subsetting) 기술이 필요하다. 다이렉트 서브세팅 기술을 이용하면 방문자가 웹페이지에 접속하는 순간 실시간으로 서브세트 웹폰트가 생성되어 방문자에게 언제나 쾌적한 웹브라우징을 제공할 수 있다.
C. PV (Pageview)
방문자가 웹페이지를 조회한 회수를 말한다. 이는 반복 조회 수를 포함하기 때문에, 만약 새로고침 버튼을 10번 클릭하면 10PV로 기록된다. 여러 번 재접속해도 세션이 동일하면 한 번으로 기록되는 사용자 수(UV, Unique Visitor) 와는 다른 개념이다.
D. 렌더링 (Rendering)
컴퓨터 프로그램을 통해 이미지를 생성하는 프로세스를 의미한다. 이 렌더링 과정 중 텍스트 렌더링 기술을 통해 벡터 이미지로 제작된 서체 디자인이 비트맵 이미지로 변환되어 모니터 픽셀에 출력되는데, 이런 텍스트 렌더링 기술에도 여러가지가 있다.
실제로 운영체제 마다 사용하는 텍스트 렌더링 기술이 다른데, 윈도우XP는 그레이스케일 안티앨리어싱(Grayscale Antialiasing), 윈도우7은 클리어타입(ClearType)이라는 이름의 서브픽셀 안티앨리어싱(Sub-pixel Antialiasing), 윈도우10은 다이렉트라이트(DirectWrite) 렌더링 기술을 사용하고 있다. 마찬가지로 웹브라우저 마다도 사용하는 렌더링 기술에 차이가 있다. 따라서 동일한 웹폰트를 사용해도 운영체제나 웹브라우저에 따라 방문자가 경험하는 서체 품질에는 차이가 있을 수 있다.
E. 힌팅 (Hinting)
모니터 화면의 해상도는 일반적으로 96dpi 또는 72dpi로, 종이 출력에 비해 현저히 낮은 해상도를 사용한다. 이렇게 낮은 해상도에서 9pt, 10pt와 같이 작은 글씨를 출력하면 픽셀의 개수가 부족하여 획의 소실이나 뭉침 현상이 발생하며, 이로 인해 글자의 가독성이 현저히 떨어진다.
힌팅이란, 이렇게 낮은 해상도에서 획의 소실이나 뭉침 현상을 해결하기 위해 획을 화면의 그리드에 맞춰 조정하는 작업을 말한다. 다만 글씨의 크기를 키우면 가독성이 높아져서 굳이 힌팅을 할 필요가 없기 때문에, 주로 작은 크기에서 사용되는 본문용 서체에 힌팅을 하게 된다.
힌팅은 모든 글자를 글자 크기마다 해주어야 하기 때문에 많은 시간과 비용이 소모된다. 그래서 프로그램을 돌려서 자동으로 힌팅을 하기도 하는데 이를 오토힌팅(Atuo-hinting)이라 한다. 다만 오토힌팅은 결과물이 그다지 좋지 않기 때문에 가독성이 매우 중요한 경우에는 디자이너가 직접 힌팅을 하기도 하며, 이를 매뉴얼 힌팅(Manual-hinting)이라 한다.
5. 오픈타입 피처 (OpenType Features)
폰트 디자이너는 사용자가 편리하고 아름답게 조판할 수 있도록 폰트에 다양한 타이포그라피 기능들을 정의할 수 있는데, 이것을 오픈타입 피처라고 한다. 이름은 오픈타입 피처이지만 비단 OTF뿐 아니라 TTF에도 피처를 정의해 넣을 수 있다.
피처를 사용하면 문자를 언어와 문맥에 따라 그에 맞는 형태로 대체하거나, 조판의 위치를 조정하는 등 사용자에게 다양한 타이포그라피 기능을 제공할 수 있다.
A. 커닝 (Kerning)
글자와 글자 사이의 간격을 자간이라 한다. 만약 자간이 너무 넓으면 띄어쓰기와 헷갈리기 때문에 가독성이 떨어지고, 반대로 너무 좁으면 글자와 글자가 겹쳐 판독성이 떨어지게 된다.
따라서 서체 디자이너는 조판 결과물의 자간이 적정하고 균일하게 보이도록 글자와 글자 사이의 간격을 조정하는데 바로 이것을 커닝이라 한다.
오픈타입 피처에서는 'kern' 피처로 자간을 조정할 수 있다.
B. 합자 (Ligature)
2개 이상의 글자를 하나의 글리프로 디자인하는 것을 말한다. 합자는 fi, fl과 같이 서로 겹치는 부분을 시각적으로 정리하거나 ㎢와 같이 단위 기호 등을 하나의 전각문자로 표현할 때 또는 æ, œ와 같이 두 개 이상의 글자가 결합해서 새로운 형태를 만드는 등 다양한 경우에 사용된다.
이런 오픈타입 피처의 합자 기능을 응용해서 기업의 로고나 심볼, 아이콘, 이모티콘 등을 표현하기도 한다.
C. 대체 글리프 (Alternate Glyphs)
하나의 글자를 경우에 따라 모양을 변경하거나 관련 있는 다른 형태의 글자를 입력하고 싶을 때 대체 글리프 기능을 사용한다.
Adobe 계열의 프로그램에서는 글리프 패널에서 대체 글리프를 사용할 수 있는데, 글리프의 우측 하단에 ▶표시가 있는 글리프를 1초 이상 누르고 있으면 대체 가능한 글리프 목록이 표시된다.
예를 들어 숫자 '1'을 누르고 있으면 ①, ⑴, ¹, ₁ 등의 대체 글리프를 사용할 수 있도록 오픈타입 피처를 제작할 수 있다.
6. 저작권
A. OFL (오픈 폰트 라이선스, Open Font License)
모든 타인의 저작물을 사용할 때는 저작권자가 허락한 라이선스 범위 안에서만 사용해야 하며, 이는 비용을 지불하지 않고 사용하는 '무료' 소프트웨어에도 동일하게 적용된다.
누구나 본인의 목적과 용도에 맞게 수정해서 새로운 소프트웨어를 개발할 수 있도록 공개된 소스코드를 오픈소스라 하는데, 이러한 오픈소스도 저작권자가 부여한 오픈소스 라이선스의 종류에 따라 사용할 수 있는 범위와 조건이 다르다.
대부분의 오픈소스 라이선스는 프로그램의 소스코드 배포를 목적으로 하고 있어 폰트 배포에는 적합하지 않다. 반면 OFL은 폰트의 수정 및 개작을 허용하기 위한 목적으로 작성된 거의 유일한 오픈소스 라이선스로 공개용 폰트 배포에 많이 사용되고 있다.
OFL 라이선스의 가장 큰 특징은 다음과 같다.
- OFL로 공개된 폰트는 연구, 복제, 삽입, 수정, 재배포 등 어떠한 방법으로도 사용할 수 있다.
- 폰트를 OFL로 공개할 때는 누구나 동일한 폰트를 재생산할 수 있도록 빌드 스크립트도 함께 공개해야 한다.
- OFL이 부여된 폰트를 수정 또는 개작하여 제작된 2차 폰트는 반드시 동일한 OFL을 부여하여 배포해야 하며, 대가를 받고 판매해서는 안 된다.