본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

웹서버 복구 대신 데이터베이스 활용한 전자책 발간

by easyfly 2026. 2. 21.
반응형

🎯 최종 목표 (확정)

  • 웹서버 복구 ❌
  • GCP 인스턴스 정상화 ❌
  • DB 백업(madang_2026-02-07_0528.sql)만 활용
  • 박도진 시인의 시 전부를 모아
  • 폰트 포함 EPUB 전자책 1권 완성


🧭 전체 흐름 한눈에 보기

DB 백업 있음
   ↓
임시 작업용 폴더(poet_epub)
   ↓
초미니 Django 환경
   ↓
DB 연결
   ↓
시 선택 스크립트 실행
   ↓
EPUB 생성
   ↓
폰트 포함
   ↓
다운로드 → 출판

1️⃣ 작업용 폴더와 가상환경 준비 (완료)

mkdir ~/poet_epub
cd ~/poet_epub
python3 -m venv venv
source venv/bin/activate

필수 패키지:

pip install django ebooklib mysqlclient

2️⃣ 초미니 Django 프로젝트 생성 (완료)

django-admin startproject config .
python manage.py startapp poem

구조 핵심:

poet_epub/
 ├─ manage.py
 ├─ config/
 │   └─ settings.py
 └─ poem/
     └─ management/
         └─ commands/
             └─ make_selection_epub.py

3️⃣ DB 복원 상태 확인 (완료)

이미 확인됨:

  • DB 이름: madangDB
  • 테이블 존재:
    • poem_poem
    • poem_poet
    • django_migrations
    • 등 17개

즉,
DB 구조 그대로 사용 가능


4️⃣ settings.py 핵심 설정 (완료)

📌 config/settings.py

(1) 앱 등록

INSTALLED_APPS = [
    ...
    'poem',
]

(2) MySQL 연결

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'madangDB',
        'USER': 'madang2user',
        'PASSWORD': '비밀번호',
        'HOST': '127.0.0.1',
        'PORT': '3306',
        'OPTIONS': {'charset': 'utf8mb4'},
    }
}

문법 확인:

python -c "import config.settings"
python manage.py check

5️⃣ EPUB 생성 스크립트 준비 (완료)

파일:

poem/management/commands/make_selection_epub.py

이 스크립트의 역할:

  • 특정 시인 이름 입력
  • 해당 시인의 시 전체 조회
  • all 선택 시 전부 수록
  • EPUB 파일 생성 (/tmp/*.epub)

6️⃣ 폰트 추가 (완료)

사용 폰트

  • SunBatang-Medium.ttf → 본문
  • KoPubDotumMedium.ttf → 제목/표지

폰트 위치

mkdir ~/poet_epub/fonts
cp SunBatang-Medium.ttf ~/poet_epub/fonts/
cp KoPubDotumMedium.ttf ~/poet_epub/fonts/

스크립트 보완 내용

  • epub.EpubItem으로 폰트 파일을 EPUB에 실제 포함
  • CSS의 @font-face와 연결

👉 이로써 뷰어와 관계없이 동일한 서체 보장


7️⃣ 핵심 실행 단계 (이제 여기만 하면 됨)

cd ~/poet_epub
source venv/bin/activate
python manage.py make_selection_epub

입력 순서:

선택(1/2): 1
전자책 제목: 박도진 시집
저자(표지 표기용): 박도진
시인 이름: 박도진
전자책에 담을 번호: all

결과:

/tmp/박도진_시집_YYYYMMDD_HHMMSS.epub

8️⃣ 결과 파일 정리 및 다운로드

mkdir -p ~/poet_epub/out
mv /tmp/*.epub ~/poet_epub/out/

로컬로 받기:

scp -i 키.pem ubuntu@서버IP:/home/ubuntu/poet_epub/out/*.epub .

9️⃣ 이 시점에서 “완성된 것”

✅ 박도진 시인의 모든 시
✅ DB 구조 그대로 사용
✅ 웹서버 없이
✅ 폰트 포함 EPUB
✅ 출판 가능한 원본 파일

 

반응형

댓글