반응형
🎯 최종 목표 (확정)
- 웹서버 복구 ❌
- 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
✅ 출판 가능한 원본 파일
반응형
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
| 와이파이 백업 디바이스란 무엇인가? (1) | 2026.02.28 |
|---|---|
| USB 미니 가습기 DIY 키트 (0) | 2026.02.27 |
| [클라우드] 구글 클라우드 경고 해결 과정 (0) | 2026.02.04 |
| SSH 접속의 비밀: "자물쇠와 열쇠" 원리 (1) | 2026.01.29 |
| 출간동행 프로젝트 사용법 정리 (2) | 2026.01.28 |
댓글