🚀 Colab 한글 폰트 설정 가이드 v2.4.0

📋 간단한 사용법

✨ 한 번만 실행하면 끝!

방법

from urllib.request import urlretrieve; urlretrieve("https://raw.githubusercontent.com/c0z0c/jupyter_hangul/master/helper_c0z0c_dev.py", "helper_c0z0c_dev.py")
import helper_c0z0c_dev as helper # 한번에 모든 설정 완료

🎉 출력 예시:

🚀 Jupyter/Colab 한글 환경 설정 중... (helper v2.4.0)
✅ 한글 폰트 및 pandas 확장 기능 설정 완료
🎉 사용 가능: 한글 폰트, CSV 읽기, DataFrame.head_att(), 캐시 기능

🧪 베타 버전 (최신 기능 테스트)

# 베타 버전 - 실험적 기능 포함
from urllib.request import urlretrieve; urlretrieve("https://raw.githubusercontent.com/c0z0c/jupyter_hangul/refs/heads/beta/helper_c0z0c_dev.py", "helper_c0z0c_dev.py")
import helper_c0z0c_dev as helper

🎯 핵심 특징

💾 Colab에서 캐시 기능 활용

캐시 저장 위치

# Google Drive 연결 (캐시 지속성을 위해 권장)
from google.colab import drive
drive.mount('/content/drive')

# 모델 훈련 후 저장
model = train_model()
helper.cache_save("my_model_v1", model)

# 다음 세션에서 로드
model = helper.cache_load("my_model_v1")
import matplotlib.pyplot as plt

# 바로 한글 사용 가능!
plt.title("한글 제목")
plt.xlabel("X축 라벨") 
plt.ylabel("Y축 라벨")
plt.show()

� Colab 환경 특화 기능

📊 큰 데이터셋 처리 팁

# 대용량 CSV 파일을 효율적으로 읽기 (Colab 메모리 제한 고려)
df = helper.read_csv("large_file.csv", chunksize=10000)  # 청크 단위로 읽기

# 읽기 옵션 활용 (메모리 절약)
df = helper.read_csv("data.csv", nrows=1000)  # 첫 1000행만 읽기
df = helper.read_csv("data.csv", usecols=['col1', 'col2'])  # 특정 컬럼만 읽기

🔄 세션 재시작 후 빠른 복구

# 세션이 끊어졌을 때 빠른 환경 복구
import helper_c0z0c_dev as helper
from google.colab import drive
drive.mount('/content/drive')

# 이전 작업 복구
df = helper.cache_load("work_data")
model = helper.cache_load("trained_model")
results = helper.cache_load("analysis_results")

📈 GPU/TPU 환경에서의 활용

# GPU 사용 시 캐시를 통한 효율적인 데이터 관리
import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

# 모델을 GPU로 이동 후 캐시 저장
model.to(device)
helper.cache_save("gpu_model", model.cpu())  # CPU로 이동 후 저장

# 다음 세션에서 GPU로 복구
model = helper.cache_load("gpu_model").to(device)

�🎨 제공되는 기능들

✅ 포함된 기능

한글 폰트 지원

import matplotlib.pyplot as plt
plt.figure(figsize=(10, 6))
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])
plt.title('한글 제목')
plt.xlabel('X축 한글')
plt.ylabel('Y축 한글')
plt.show()

pandas 확장 기능

import pandas as pd
df = pd.DataFrame({'이름': ['김철수', '이영희'], '나이': [25, 30]})

# 컬럼 설명 추가 - v2.4.0 개선된 기능
df.set_head_att({'이름': '사용자 이름', '나이': '사용자 나이'})

# 한글 설명과 함께 출력 (다양한 형식 지원)
df.head_att()              # 기본 print 형식
df.head_att(out='html')    # HTML 형식 (Colab에서 예쁘게 표시)
df.head_att(out='str')     # 문자열 형식

# Series도 지원
series = df['이름']
series.set_head_att('이름', '사용자 이름')
series.head_att(out='html')

캐시 기능 (v2.4.0 신기능)

# 분석 결과 저장 (Colab Drive 연동)
analysis_result = {"accuracy": 0.95, "loss": 0.05}
helper.cache_save("ml_result_v1", analysis_result)

# 큰 DataFrame 저장
large_df = pd.read_csv("huge_dataset.csv")
helper.cache_save("processed_data", large_df)

# 다음 세션에서 빠른 로드
result = helper.cache_load("ml_result_v1")
df = helper.cache_load("processed_data")

# 캐시 관리
helper.cache_list()    # 저장된 항목 목록
helper.cache_clear()   # 전체 캐시 삭제

DataFrame 커밋 기능 (v2.4.0 신기능)

# DataFrame을 git처럼 버전 관리
df.commit("원본 데이터 로드")
df.commit("결측치 제거 완료")
df.commit("피처 엔지니어링 적용")

# 커밋 히스토리 조회
df.commit_list()

# 특정 커밋 관리
df.commit_rm(0)               # 첫 번째 커밋 삭제
df.commit_has("abc123")       # 해시로 커밋 존재 확인

파일 읽기 함수

# 기본 사용법 (Colab/로컬 자동 감지)
df = helper.pd_read_csv('data.csv')

# pandas.read_csv의 모든 옵션 지원
df = helper.pd_read_csv('data.csv', encoding='utf-8', sep=',')
df = helper.pd_read_csv('한글파일.csv', encoding='cp949')

# 다양한 입력 타입 지원
# 1) 로컬 파일 경로 (Colab에서 자동 경로 변환)
df = helper.pd_read_csv('data/sample.csv')

# 2) URL (그대로 전달)
df = helper.pd_read_csv('https://example.com/data.csv')

# 3) 파일 객체 (그대로 전달)
with open('data.csv', 'r') as f:
    df = helper.pd_read_csv(f)

# 4) StringIO 객체 (그대로 전달)
from io import StringIO
csv_string = "이름,나이\n김철수,25\n이영희,30"
df = helper.pd_read_csv(StringIO(csv_string))

캐시 기능

# 머신러닝 실험에서 캐시 활용
params = {'alpha': 0.1, 'n_estimators': 100, 'random_state': 42}
cache_key = helper.cache_key(params)

# 캐시에서 모델 로드 또는 새로 훈련
if helper.cache_exists(cache_key):
    print("캐시에서 모델 로드")
    model = helper.cache_load(cache_key)
else:
    print("새로운 모델 훈련 및 캐시 저장")
    model = RandomForestClassifier(**params)
    model.fit(X_train, y_train)
    helper.cache_save(cache_key, model)

# 캐시 관리
helper.cache_list()           # 저장된 캐시 목록
helper.cache_info()           # 캐시 저장 위치 정보
helper.cache_size()           # 캐시 디렉토리 크기

# Colab에서는 Google Drive에 영구 저장
# 경로: /content/drive/MyDrive/cache.json

❓ 자주 묻는 질문

Q: 한글이 여전히 깨져요

A: helper.setup()을 다시 실행해보세요. 크로스 플랫폼 지원이 강화되어 대부분 즉시 해결됩니다.

Q: 캐시 파일이 너무 커져요

A: helper.cache_size()로 크기를 확인하고, helper.cache_clear()로 불필요한 캐시를 정리하세요.

Q: Google Drive 용량이 부족해요

A: 캐시 저장 위치를 변경하거나 helper.cache_list()로 불필요한 항목을 확인하여 삭제하세요.

Q: 세션이 끊어져도 캐시가 유지되나요?

A: 네! Google Drive가 연결되어 있으면 /content/drive/MyDrive/cache.json에 영구 저장됩니다.

Q: 설정이 적용되지 않아요

A: helper.setup()을 다시 실행하세요. 개선된 UTF-8 설정이 자동으로 적용됩니다.

Q: DataFrame의 한글 컬럼 설명이 안 보여요

A: df.head_att(out='html')을 사용하면 Colab에서 예쁘게 표시됩니다.

Q: 캐시된 데이터를 다른 환경에서도 사용할 수 있나요?

A: 네! Windows, Ubuntu, Mac 모든 환경에서 호환됩니다.

Q: 캐시 기능을 사용하고 싶어요

A: helper.cache_key(), helper.cache_save(), helper.cache_load() 함수를 사용하세요. Colab에서는 Google Drive에 자동 저장됩니다.

Q: 캐시 저장 위치가 궁금해요

A: Colab에서는 /content/drive/MyDrive/cache.json에 저장되며, helper.cache_info()로 확인 가능합니다.

🔧 문제 해결

Google Drive 인증 오류 해결

helper.setup()  # 다시 실행하면 해결

수동 설정 방법

# 1. 폰트 다운로드만
helper.font_download()

# 2. 폰트 로딩만
helper.load_font()

# 3. pandas 확장만
helper.set_pandas_extension()

환경별 경로 확인 및 파일 읽기

# 현재 환경 확인 (개선된 환경 감지)
if helper.is_colab:
    print("Colab 환경")
    print("캐시 위치: /content/drive/MyDrive/cache.json")
else:
    print("로컬 환경")
    print("캐시 위치: ./cache.json")

# 파일 읽기 테스트 (크로스 플랫폼 지원)
df1 = helper.pd_read_csv('test.csv')  # 자동 경로 변환

# URL은 그대로 전달
df2 = helper.pd_read_csv('https://raw.githubusercontent.com/user/repo/data.csv')

# 캐시 기능 테스트 (DataCatch 시스템)
params = {'test': True, 'version': 'latest'}
cache_key = helper.cache_key(params)
helper.cache_save(cache_key, df1)
cached_df = helper.cache_load(cache_key)
print(f"캐시된 데이터 형태: {cached_df.shape}")

# 캐시 상태 확인
print(f"캐시 항목 수: {len(helper.cache_list())}")
print(f"캐시 디렉토리 크기: {helper.cache_size()}")

📞 지원

문제가 지속되면 다음을 확인하세요:

💡 팁


작성자: 김명환 | 날짜: 2025.01.01 | 버전: v2.4.0