본문 바로가기

파일 형식 백과사전

폰트를 설치했는데 프로그램 목록에 안 보일 때, 원인을 구분하는 법

폰트 파일을 더블클릭해서 "설치" 버튼까지 눌렀는데, 파워포인트나

포토샵의 글꼴 목록에는 이름이 안 뜨는 상황이 있습니다. 다시 설치해도 마찬가지고,

재부팅까지 해야 하나 싶어집니다.

 

이 증상은 원인이 한 가지가 아닙니다. 윈도우가 폰트를 등록하는 위치를 직접 조작해 보면서 어느 경우에 무엇이 안 보이는지 실제로 재현해 봤습니다.

 

이 PC의 레지스트리 폰트 등록 수 실측. HKLM(모든 사용자용)에 369개, HKCU(현재 사용자만)에는 0개가 등록되어 있음

윈도우는 폰트를 두 장부에 나눠 적습니다

폰트를 설치하면 윈도우는 파일을 폰트 폴더에 두는 동시에, 레지스트리라는 시스템 설정 저장소에 "이 이름의 폰트가 여기 있다"는 목록을 남깁니다. 이 목록이 두 군데로 나뉜다는 점이 핵심입니다.

구분 레지스트리 위치 적용 범위
모든 사용자용 설치 HKEY_LOCAL_MACHINE\...\Fonts 이 PC를 쓰는 모든 계정, 관리자 권한 필요
나만 설치 HKEY_CURRENT_USER\...\Fonts 지금 로그인한 계정만, 관리자 권한 불필요

실제로 이 PC의 두 위치를 읽어 보니 HKLM에는 369개가 등록되어 있었고, HKCU는 비어 있었습니다. 이 계정에서는 지금까지 "나만 설치"로 넣은 폰트가 하나도 없다는 뜻입니다.


재현 1. 파일은 있는데 등록만 안 된 경우

디스크 어딘가에 폰트 파일(.otf, .ttf)이 있다고 해서 프로그램이 자동으로 찾아 쓰는 건 아닙니다.

개발용 프로젝트 폴더에 들어 있던 오픈소스 폰트 파일 하나로 확인해 봤습니다.

파일은 분명히 존재하는데, HKLM과 HKCU 어느 쪽에도 이름이 없었습니다. 당연히 워드나 포토샵의 폰트 목록에도 뜨지 않습니다.

 

해결: 파일을 더블클릭해 미리보기 창에서 [설치] 버튼을 누르거나, C:\Windows\Fonts 폴더에 끌어다 놓아야 비로소 레지스트리에 등록됩니다.

재현 2. "나만 설치"로 넣었더니 다른 프로그램에서 안 보임

같은 폰트 파일을 이번엔 실제로 "나만 설치" 방식으로 등록해 봤습니다. 사용자 폰트 폴더(%LOCALAPPDATA%\Microsoft\Windows\Fonts)에 파일을 넣고 HKCU 레지스트리에 값을 추가하자, 그 즉시 HKCU 쪽에서는 조회가 됐습니다.

PS> Get-ItemProperty "HKCU:\...\Fonts" -Name "Pretendard Bold (TrueType)"
Pretendard Bold (TrueType) : Pretendard-Bold.otf

PS> Get-ItemProperty "HKLM:\...\Fonts" -Name "Pretendard Bold (TrueType)"
(해당 이름 없음)

HKCU에는 잡히지만 HKLM에는 그대로 없습니다. 일부 오래된 프로그램이나 관리자 권한으로 별도 실행되는 프로그램은 HKLM 목록만 읽고 HKCU는 건너뛰는 경우가 있어, 이럴 때 "나만 설치"한 폰트가 그 프로그램에서만 유독 안 보일 수 있습니다.

 

재현 3. 켜 놓은 상태에서 설치하면 반영이 늦습니다

프로그램은 대개 실행되는 시점에 폰트 목록을 한 번 읽어 메모리에 담아 두고,

그 뒤로는 다시 읽지 않습니다. 설치 도중 프로그램이 켜져 있었다면 목록에 안 보이는 게 오히려 정상입니다. 목록을 새로 창을 열어도 갱신되지 않는 프로그램이 많아, 이 경우 프로그램을 완전히 종료했다가 다시 켜야 반영됩니다.

 

재현 4. 등록도 됐고 재시작도 했는데 여전히 안 보임

레지스트리에 이름도 있고, 프로그램도 새로 켰는데 그래도 목록에 안 뜨는 드문 경우가 있습니다. 이럴 땐 윈도우 자체가 들고 있는 폰트 캐시를 의심할 만합니다. 실제로 이 PC에서 캐시 파일이 어디 있는지 확인해 봤습니다.

 

C:\Windows\System32\FNTCACHE.DAT   580,144 B (실제 존재 확인)

윈도우는 설치된 폰트 목록을 매번 레지스트리부터 다시 읽는 대신,

이 캐시 파일에 미리 정리해 두고 빠르게 불러옵니다. 그런데 폰트를 설치하거나 지우는 도중 오류가 나면 이 캐시가 실제 레지스트리 상태와 어긋난 채로 남을 수 있습니다. 레지스트리에는 분명히 있는데 캐시에는 반영이 안 된 상태입니다.

 

해결: 폰트 관련 서비스를 껐다가 캐시를 지우고 다시 켜는 절차로 어긋난 상태를 정리할 수 있습니다.

 

1. 서비스(services.msc) 목록에서 "Windows Font Cache Service"를 찾아 중지한다.
2. C:\Windows\System32\FNTCACHE.DAT 파일을 지운다(서비스가 중지된 상태에서만 지워짐).
3. 서비스를 다시 시작하거나 PC를 재부팅한다.
4. 캐시가 새로 만들어지며 지금 레지스트리 상태를 다시 반영한다.

이 방법은 캐시 파일 자체를 지우는 작업이라, 재현 1~3을 먼저 확인한 뒤에도 원인을 못 찾았을 때 마지막 수단으로 시도해 볼 만합니다.


증상별 원인 찾기

증상 가능성 높은 원인 확인 방법
설치 버튼을 눌렀는데도 안 보임 설치가 실제로 완료되지 않음 C:\Windows\Fonts 폴더에 파일이 실제로 있는지 확인
일부 프로그램에서만 안 보임 HKCU로만 설치되어 HKLM을 읽는 프로그램이 못 찾음 다시 설치할 때 "모든 사용자용으로 설치"를 선택
모든 곳에서 안 보임, 재부팅해도 마찬가지 설치 자체가 실패(손상된 폰트 파일 등) 다른 폰트 파일로 같은 절차를 시도해 비교
켜져 있던 프로그램에서만 순간적으로 안 보임 프로그램이 폰트 목록을 이미 읽어 캐시함 프로그램 재시작
레지스트리도 있고 재시작도 했는데 안 보임 윈도우 폰트 캐시(FNTCACHE.DAT)가 어긋남 Font Cache Service 중지 후 캐시 파일 삭제, 재시작

자주 묻는 질문

Q. 관리자 권한 없이도 폰트를 설치할 수 있나요?
가능합니다. 설치 창에서 "나만 설치"를 고르면 관리자 권한 없이 현재 계정에만 등록됩니다. 다만 위에서 본 것처럼 일부 프로그램에서는 인식되지 않을 수 있습니다.

 

Q. ttc처럼 여러 서체가 묶인 파일은 설치하면 전부 등록되나요?

네, 한 파일 안의 서체가 한 번에 등록됩니다. 다만 특정 서체 하나만 목록에 안 보인다면 해당 파일 안에 그 서체가 실제로 포함되어 있는지부터 의심해야 합니다. ttc 파일 구조를 직접 열어 어떤 서체가 들어 있는지 확인하는 방법은 따로 다룬 글에서 보실 수 있습니다.

 

 

설치 버튼 하나로 끝나는 일 같지만, 그 뒤에는 "누구 계정에 등록할지"를 가르는 레지스트리 두 곳이 있습니다. 안 보이는 프로그램이 특정 몇 개뿐이라면, 재설치보다 먼저 어느 계정으로 설치했는지부터 확인해 보시길 권합니다.

 

위 등록 수와 재현 결과는 이 PC의 레지스트리를 파워셸로 직접 조회하고, 폰트를 실제로 설치했다가 다시 지우며 확인한 값입니다.

 

 

내려받은 폰트가 한글을 지원하는지, 설치하기 전에 코드로 확인하는 법

해외 폰트 사이트에서 마음에 드는 서체를 내려받았는데,정작 적용해 보면 한글 부분만 시스템 기본 폰트로 뭉개져 나오는 경우가 있습니다.미리보기 이미지는 영어로만 되어 있어서, 한글을

richyeon.com

 

 

한컴 없이 hwp 열기, 확장자 바꾸기가 안 통하는 이유와 실제로 되는 방법

hwp 파일을 받았는데 열리지 않을 때 확장자를 doc로 바꿔 보라는 조언을 자주 만납니다.그런데 막상 해 보면 워드가 파일을 집어 드는 것 같다가 깨진 글자만 잔뜩 뱉거나 아예 거부합니다. 왜 될

richyeon.com