폰트 파일 검사기
폰트 파일 안의 테이블을 읽어, 그 파일이 스스로에 대해 실제로 무엇이라고 주장하는지 보여 줍니다. 파일 이름이 말하는 것과 다른 경우가 흔합니다. 운영체제가 읽는 그대로의 패밀리와 스타일 이름, CSS나 PDF 작업에서 요구하는 PostScript 이름, 버전 문자열, 글리프 수, 이 폰트가 실제로 매핑하는 유니코드 코드 포인트 수, em당 유닛, 굵기와 너비 등급, 제작사 ID, 그리고 디자이너가 저작권·라이선스·라이선스 URL 필드에 적어 둔 내용을 표시합니다. 또한 OS/2 테이블의 2바이트 필드인 fsType을 읽습니다. 여기에는 제작사가 허용하는 범위가 기록되어 있습니다. 설치 가능, 미리보기와 인쇄만, 편집 가능 임베딩, 서브셋 금지, 또는 임베딩 자체 금지입니다. 앱이나 PDF 안에 폰트를 넣어도 되는지를 결정하는 필드인데도 들여다보는 사람이 거의 없습니다. 여기서 헷갈리기 쉬운 두 숫자는 일부러 따로 표시합니다. 글리프 수는 파일이 담고 있는 모양의 개수이고, 매핑된 문자 수는 cmap이 실제 글리프로 연결하는 코드 포인트의 개수입니다. 모든 폰트에서 두 값이 다릅니다. cmap 구간에 구멍이 있을 수 있고, 합자나 스몰캡, 대체 글리프는 어떤 코드 포인트도 직접 가리키지 않기 때문입니다. 모든 테이블의 체크섬을 검증하므로, 빌드 후 수정되거나 손상된 파일은 멀쩡한 것처럼 읽지 않고 표시합니다. TrueType, OpenType/CFF, WOFF를 지원하며 WOFF2는 Brotli 압축이라 잘못 읽는 대신 이유를 밝히고 거부합니다. 업로드되지 않으며 브라우저 안에서 해석합니다.
사용법
- .ttf, .otf, .woff 파일을 상자에 끌어다 놓거나 눌러서 선택합니다. WOFF는 해석 전에 브라우저에서 먼저 풀어냅니다.
- 패밀리와 스타일 이름으로 이 폰트가 스스로를 뭐라고 부르는지 확인합니다. 폰트 메뉴에 표시되는 이름이며, 파일 이름은 틀린 경우가 많습니다.
- 앱이나 PDF, 웹페이지에 폰트를 넣기 전에 임베딩 줄을 확인하십시오. 제작사가 직접 밝힌 허용 범위입니다.
- 글리프 수와 매핑된 문자 수를 비교해 실제 커버리지를 판단합니다. 글리프는 많은데 매핑된 문자가 적다면 대부분 대체 글리프입니다.
- 테이블 목록을 열어 어떤 테이블이 들어 있는지 봅니다. 강조된 항목은 체크섬이 맞지 않는 테이블입니다.
자주 묻는 질문
- 여기 나오는 패밀리 이름이 파일 이름과 왜 다릅니까?
- 둘은 아무 관계가 없기 때문입니다. 파일 이름은 그 파일을 건네준 사람이 입력한 문자열일 뿐이고, 패밀리 이름은 폰트의 name 테이블 안에 있으며 운영체제와 폰트 메뉴, CSS가 실제로 대조하는 값입니다. 파일 이름을 바꿔도 폰트는 전혀 달라지지 않습니다. 그래서 깔끔하게 이름 붙인 파일이 가득한 폴더가 설치하고 나면 뒤죽박죽인 하나의 패밀리가 되기도 하고, 디스크에서는 멀쩡해 보이는 웹폰트가 font-family 규칙에 걸리지 않기도 합니다. 중요한 것은 안쪽 이름이고, 이 도구는 그 이름을 보여 줍니다.
- fsType이 무엇이고 왜 신경 써야 합니까?
- fsType은 OS/2 테이블에 있는 2바이트 필드로, PDF나 앱 번들, 게임, 웹폰트에 폰트를 임베딩할 때 무엇을 해도 되는지를 제작사가 기록해 둔 값입니다. 0이면 제한 없이 설치 가능입니다. 비트 1은 임베딩 금지입니다. 비트 2는 미리보기와 인쇄만 허용하므로 PDF가 표시는 하되 아무도 텍스트를 편집할 수 없습니다. 비트 3은 편집 가능한 임베딩을 허용합니다. 나머지 두 비트는 서브셋을 금지하고 비트맵 임베딩만 허용합니다. 잠금 장치라기보다 기계가 읽을 수 있는 의사 표시이며 라이선스 원문을 읽는 일을 대신하지는 않지만, 제한으로 표시된 폰트는 배포 전에 확인하라는 분명한 신호입니다.
- 문자 수가 글리프 수보다 왜 적습니까?
- 재는 대상이 다릅니다. 글리프는 파일 안의 모양이고, 매핑된 문자는 cmap 테이블이 .notdef가 아닌 글리프로 연결해 주는 유니코드 코드 포인트입니다. 거의 모든 폰트에서 글리프가 문자보다 많습니다. 합자, 스몰캐피털, 옛날식 숫자, 아랍 문자의 위치별 형태, 스타일 대체 글리프는 어떤 코드 포인트도 직접 가리키지 않고 레이아웃 엔진이 OpenType 기능을 통해 접근하기 때문입니다. cmap 구간이 연결하는 글리프가 아니라 구간의 길이를 세면 커버리지가 과장됩니다. 구간 안에 매핑되지 않은 구멍이 있어도 규격상 문제가 없기 때문입니다.
- WOFF2나 폰트 컬렉션도 열 수 있습니까?
- 아직 안 되고, 추측하는 대신 그렇다고 알려 줍니다. WOFF2는 Brotli로 압축되어 있어 이 페이지 전체보다 훨씬 큰 압축 해제기가 필요하므로 메시지와 함께 거부합니다. 구글 woff2 도구의 woff2_decompress를 쓰면 순식간에 일반 파일로 바뀝니다. .ttc 폰트 컬렉션은 하나의 헤더 뒤에 여러 폰트를 담고 있는데 이 도구는 폰트 하나를 읽으므로 컬렉션도 거부합니다. 일반 WOFF는 지원합니다. 테이블이 zlib으로 압축되어 있고, 해석 전에 여기서 풀어냅니다.
- em당 유닛은 무엇을 알려 줍니까?
- 폰트의 좌표가 표현되는 설계 격자의 크기, 즉 1 em을 이루는 내부 단위의 개수입니다. TrueType 폰트는 거의 언제나 1000이나 2048을, CFF/OpenType 폰트는 보통 1000을 씁니다. 폰트끼리 메트릭을 비교하거나 폰트 편집기의 값을 변환할 때 중요합니다. 어센더가 1600 유닛이라는 말은 em이 1000인지 2048인지 알기 전까지 아무 의미가 없습니다. 또 TrueType 힌팅이 제대로 동작하려면 2의 거듭제곱이어야 하는데, 2048이 그렇게 흔한 이유가 그것입니다.
- 폰트가 어딘가로 전송됩니까?
- 아닙니다. 파일은 브라우저의 파일 API로 읽고 이 페이지의 자바스크립트에서 해석하며 어디로도 보내지 않습니다. 직접 확인할 수 있습니다. 페이지를 연 다음 네트워크를 끊고 폰트를 끌어다 놓아 보십시오. 그대로 동작합니다. 폰트에서는 이 점이 특히 중요합니다. 라이선스를 산 상용 폰트야말로 라이선스를 확인하겠다고 남의 서버에 올려서는 안 되는 종류의 파일이기 때문입니다.
관련 도구
WAV 파일 인스펙터
.wav 파일 드롭 → 포맷·채널·샘플레이트·비트 깊이·길이·모든 RIFF 청크·내장 LIST/INFO 태그 표시. 완전 클라이언트 사이드.
WebP 파일 검사기
.webp 파일의 RIFF 청크를 브라우저에서 훑어봅니다. 손실·무손실·확장 구분, 캔버스와 프레임 크기 비교, 애니메이션 타이밍, 알파, ICC, Exif, XMP를 보여줍니다.
MP4 / ISO 베이스 미디어 파일 분석기
MP4·M4A·M4V·MOV를 브라우저에서 분석합니다. 브랜드, 패스트 스타트 여부, 박스 트리, 트랙별 코덱과 길이, iTunes 태그를 보여 줍니다.
PNG 청크 인스펙터
`.png` 파일 드롭 → 포함된 모든 청크 확인 — IHDR·IDAT·tEXt 메타데이터·IEND — 크기·CRC·critical/ancillary/safe-to-copy 플래그 포함.
WebAssembly 모듈 인스펙터
브라우저에서 .wasm 파일을 분석합니다. 섹션 크기, 타입까지 포함한 임포트와 익스포트, 메모리 페이지, start 함수, name과 producers 섹션을 보여줍니다.
자바 클래스 파일 분석기
컴파일된 .class 파일을 브라우저에서 바로 분석합니다. 클래스 파일 버전과 자바 릴리스, 접근 플래그, 상수 풀, 필드, 메서드, 참조 클래스를 보여줍니다.