폰트헬퍼 — 누락 폰트 자동 설치기

포토샵에 열린 PSD의 누락 폰트를 스캔해 무료 소스에서 찾고·검증하고·설치하는 사내 Windows 툴 — 아트팀에 단일 포터블 exe로 배포.

체인 연결된 폰트 소스
10
테스트 — 픽스처 기반 TDD
166
단일 포터블 exe
33 MB
관리자 권한 불필요
0

해결하는 문제

공유 PSD를 열면 텍스트 레이어 절반에 노란 누락-폰트 경고가 떠 있습니다. 통상의 해법은 수작업입니다: 폰트 이름을 읽고, 웹을 검색하고, 낯선 사이트를 판별하고, 압축을 받아 맞는 파일을 골라 설치하고 — 폰트마다, 문서마다, 아티스트마다 반복. PSD를 매일 주고받는 팀에서는 (그리고 누군가 PC를 교체할 때마다) 꾸준한 생산 시간 세금입니다. 폰트헬퍼는 이 루프 전체를 더블클릭 한 번으로 바꿉니다.

동작 방식

스캔 → 대조 → 검색 체인 → 검증 → 설치.

  1. 스캔. 실행 중인 포토샵과 COM으로 대화하며 열린 문서 전부를 읽습니다 — 스마트 오브젝트 내부에 묻힌 폰트까지 재귀적으로(임베디드·링크드 PSD/PSB, 그리고 .ai/.pdf/.eps 벡터 스마트 오브젝트용 무의존 스캐너).
  2. 대조. 로컬 설치 폰트의 네임 테이블을 파싱해 차집합을 구합니다 — mtime/size 캐시로 웜 런 기준 검사 시간을 0.23초에서 0.02초로 단축.
  3. 검색 체인. 누락 폰트마다 무료 폰트 소스 10곳을 우선순위대로 순회합니다 — 라이선스가 안전한 파운드리부터 최후순위 미러까지, 마지막 인간 폴백으로 웹 검색 버튼.
  4. 검증. 다운로드를 열어 폰트의 내부 이름을 요청과 대조합니다 — 이름만 비슷한 다른 폰트는 설치되는 대신 건너뛰고, 모든 실패는 사유가 UI에 표시됩니다(로그인 장벽, 빈 압축, 이름 불일치).
  5. 설치. 사용자 폰트 폴더 + 사용자별 레지스트리 등록 — 관리자 권한 불필요, 잠긴 사무실 PC에서도 안전.

라이선스를 아는 설계

결과 목록은 의도적으로 거대한 “모두 설치” 버튼 하나가 아닙니다:

폰트헬퍼 — 세 가지 행 유형이 보이는 결과 목록

  • 안전한 소스는 원클릭 설치.
  • 라이선스 불명확 소스는 명시적 위험 인지 체크박스가 필요하고 원본 페이지로 링크됩니다 — 그 판단을 툴이 대신하지 않습니다.
  • Adobe Fonts는 감지만 하고 의도적으로 관여하지 않습니다 — 최신 포토샵이 Creative Cloud에서 자동 설치하므로, 툴은 아무것도 다운로드하지 않고 그쪽을 안내만 합니다.
  • “안전한 폰트 모두 설치” 일괄 액션이 따로 있어, 경계를 흐리지 않으면서 안전 경로는 원클릭을 유지합니다.

스크린샷은 합성 데모 파일로 재현 — 프로덕션 문서는 포함되지 않았습니다.

엔지니어링 노트

테스트 우선으로 개발: 166개 테스트, 모든 사이트 파서를 실물 HTML 픽스처에 고정해 스위트가 오프라인으로 돌고, 소스 사이트 개편은 현장의 조용한 실패 대신 빨간 테스트로 나타납니다. 단일 33 MB PyInstaller exe로 배포 — 파이썬도 인스톨러도 불필요, SmartScreen 안내 포함 — 그리고 %APPDATA% 회전 로그로 동료의 버그 리포트가 파일 하나로 전달됩니다. 포토샵 연결은 COM ProgID 버전 폴백을 갖춰 멀티 버전·베타 설치 PC에서도 붙습니다. 배포는 GitHub Releases를 통합니다.

왜 여기 있는가

이 랩의 다른 카드들과 같은 패턴입니다: 반복되는 프로덕션 작업을 찾고, 도구를 만들고, 실제 작업으로 증명하고, 팀에 넘긴다. 폰트헬퍼는 그 스펙트럼의 비생성 쪽 끝입니다 — 스펙 우선 설계 문서, AI 어시스트 고속 구현, 그리고 비개발자 아티스트가 SmartScreen 두 줄 안내 외엔 아무것도 읽지 않고 실행할 수 있는 결과물.