본문 바로가기

콩's EDUCATION/콩's Python

🐍 파이썬으로 시스템 폰트 확인하기

반응형

 

🐍 파이썬으로 시스템 폰트 확인하기

💡 이 가이드는 누구를 위한 것인가요?

파이썬 프로그래밍을 배우고 있는 초보자분들이 자신의 컴퓨터에 어떤 폰트가 설치되어 있는지 확인하고, 특정 폰트(예: Pretendard)가 제대로 설치되었는지 점검할 수 있도록 도와드립니다.

📋 목차

  1. 왜 폰트를 확인해야 할까요?
  2. 준비물
  3. 단계별 실행 가이드
  4. 코드 상세 설명
  5. 문제 해결

🤔 왜 폰트를 확인해야 할까요?

프로그래밍을 하다 보면 사용자 인터페이스(UI)를 만들 때 특정 폰트를 사용하고 싶을 때가 있습니다. 하지만 코드에서 폰트 이름을 잘못 입력하거나, 해당 폰트가 컴퓨터에 설치되지 않았다면 원하는 결과를 얻을 수 없죠.

이 스크립트를 사용하면:

  • 컴퓨터에 설치된 모든 폰트 목록을 확인할 수 있습니다
  • 특정 폰트(예: Pretendard)가 제대로 설치되었는지 확인할 수 있습니다
  • 코드에서 사용할 정확한 폰트 이름을 알 수 있습니다

🛠️ 준비물

  • 파이썬 설치: 파이썬 3.x 버전 (대부분의 컴퓨터에 기본 설치되어 있음)
  • 텍스트 에디터: 메모장, VS Code, PyCharm 등 아무거나
  • 기본 파이썬 지식: 파이썬 파일을 실행할 줄 아는 정도면 충분

⚠️ 주의사항

이 코드는 tkinter라는 파이썬 기본 라이브러리를 사용합니다. 대부분의 파이썬 설치에 포함되어 있지만, 일부 Linux 시스템에서는 별도로 설치해야 할 수 있습니다.

📝 단계별 실행 가이드

1

코드 파일 생성

먼저 새로운 파이썬 파일을 만들어주세요. 파일명은 font_checker.py로 하겠습니다.

2

코드 복사하기

아래 코드를 복사해서 파일에 붙여넣어주세요:

# font_checker.py (수정본)
import tkinter
from tkinter import font

try:
    root = tkinter.Tk()
    # font.families()가 튜플을 반환하므로, sorted() 내장 함수를 사용해 정렬합니다.
    # sorted()는 튜플, 리스트 등 어떤 것이든 받아 정렬된 '리스트'를 반환합니다.
    sorted_font_families = sorted(font.families())

    print("--- 시스템에 설치된 사용 가능한 폰트 목록 ---")
    for f in sorted_font_families:
        print(f)
    print("------------------------------------------")

    # Pretendard가 있는지 확인
    found = False
    print("\n--- Pretendard 폰트 검색 결과 ---")
    for f in sorted_font_families:
        # 폰트 이름에 'pretendard'가 포함되어 있는지 대소문자 구분 없이 확인
        if "pretendard" in f.lower():
            print(f"  > 찾음: '{f}'")
            found = True

    if not found:
        print("\n[결과] Pretendard 계열 폰트를 찾지 못했습니다.")
        print("폰트가 올바르게 설치되었는지, '모든 사용자용으로 설치'했는지 확인해주세요.")
    else:
        print("--------------------------------")
        print("\n[조치] 위 '찾음:' 목록에 있는 이름 중 하나를 '정확히' 복사해서 코드에 적용해보세요.")
        print("예시: self.main_font_family = \"Pretendard\"")
        print("또는: self.main_font_family = \"Pretendard Variable\"")


except Exception as e:
    print(f"오류 발생: {e}")

finally:
    # Tkinter 창이 보이지 않도록 바로 닫아줍니다.
    if 'root' in locals() and root.winfo_exists():
        root.destroy()
3

코드 실행하기

터미널이나 명령 프롬프트를 열고 다음 명령어로 실행해주세요:

python font_checker.py

또는 파이썬 개발 환경에서 직접 실행하셔도 됩니다.

4

결과 확인하기

실행하면 다음과 같은 결과를 볼 수 있습니다:

  • 전체 폰트 목록: 컴퓨터에 설치된 모든 폰트가 알파벳 순으로 정렬되어 표시됩니다
  • Pretendard 검색 결과: Pretendard 폰트가 설치되어 있다면 해당 폰트들이 표시됩니다

🔍 코드 상세 설명

1. 라이브러리 가져오기

import tkinter
from tkinter import font

tkinter는 파이썬의 기본 GUI 라이브러리입니다. 여기서는 폰트 정보를 가져오기 위해서만 사용합니다.

2. 폰트 목록 가져오기

root = tkinter.Tk()
sorted_font_families = sorted(font.families())

font.families() 함수가 시스템의 모든 폰트 목록을 반환합니다. sorted() 함수로 알파벳 순으로 정렬합니다.

3. 특정 폰트 찾기

if "pretendard" in f.lower():
    print(f"  > 찾음: '{f}'")

폰트 이름을 소문자로 변환해서 'pretendard'가 포함된 폰트를 찾습니다. 대소문자를 구분하지 않아 더 정확하게 찾을 수 있습니다.

4. 에러 처리

try:
    # 메인 코드
except Exception as e:
    print(f"오류 발생: {e}")
finally:
    # 정리 작업

만약 오류가 발생하면 사용자에게 알려주고, 마지막에는 반드시 tkinter 창을 닫아줍니다.

✅ 코드의 장점

  • 자동 정렬: 폰트 목록이 알파벳 순으로 정렬되어 찾기 쉽습니다
  • 대소문자 무관 검색: 'Pretendard', 'PRETENDARD', 'pretendard' 모두 찾을 수 있습니다
  • 에러 처리: 오류가 발생해도 프로그램이 안전하게 종료됩니다
  • 창 숨김: tkinter 창이 나타나지 않아 사용자 경험이 좋습니다

🔧 문제 해결

1. "ModuleNotFoundError: No module named 'tkinter'" 오류

원인: tkinter가 설치되지 않았습니다.

해결책:

  • Windows: 파이썬 재설치 시 "tcl/tk and IDLE" 옵션 체크
  • macOS: brew install python-tk
  • Ubuntu/Debian: sudo apt-get install python3-tk

2. 원하는 폰트가 나타나지 않는 경우

확인사항:

  • 폰트가 정말로 설치되었는지 확인 (제어판 > 글꼴)
  • "모든 사용자용으로 설치" 옵션으로 설치했는지 확인
  • 컴퓨터 재시작 후 다시 시도

3. 결과에 이상한 폰트 이름들이 나오는 경우

이는 정상적인 현상입니다. 시스템 폰트나 특수 문자가 포함된 폰트들도 함께 표시됩니다. 원하는 폰트 이름만 찾아서 사용하시면 됩니다.

💡 추가 활용 팁

  • 다른 폰트 찾기: 코드에서 'pretendard'를 다른 폰트명으로 바꿔서 검색할 수 있습니다
  • 결과 저장: 출력 결과를 텍스트 파일로 저장하고 싶다면 python font_checker.py > fonts.txt 명령어를 사용하세요
  • GUI 프로그램에 활용: 이 코드로 찾은 정확한 폰트 이름을 tkinter, PyQt 등의 GUI 프로그램에서 사용할 수 있습니다

📚 마무리

이제 여러분의 컴퓨터에 설치된 폰트를 쉽게 확인할 수 있게 되었습니다. 이 방법을 사용하면 GUI 프로그래밍을 할 때 원하는 폰트를 정확하게 사용할 수 있고, 폰트 관련 오류를 미리 방지할 수 있습니다.

파이썬 프로그래밍에서 작은 유틸리티 스크립트를 만들어 보는 것은 실력 향상에 큰 도움이 됩니다. 이 코드를 기반으로 더 다양한 기능을 추가해보세요!

🎯 다음 단계 추천

  • 폰트 미리보기 기능 추가해보기
  • 특정 폰트 스타일(Bold, Italic) 확인 기능 만들기
  • 폰트 정보를 CSV 파일로 저장하는 기능 추가하기

반응형

⚠️ 광고 차단 프로그램 감지

애드블록, 유니콘 등 광고 차단 확장 프로그램을 해제하거나
화이트리스트에 추가해주세요.