이 프로젝트는 Google NotebookLM에서 생성된 슬라이드 PDF 파일을 편집 가능한 PowerPoint (.pptx) 형식으로 변환하여, 사용자들이 보다 쉽게 자료를 활용할 수 있도록 돕기 위해 개발되었습니다.
기존의 이미지 기반 PDF 슬라이드를 AI OCR 기술을 통해 텍스트와 이미지로 분리하고, 편집 가능한 프레젠테이션 파일로 재구성해줍니다.
🌟 Live Demo: https://joo.is/ppt2ppt Original: https://pdf2pptx-r5gd-ge9pmnpwq-techkwons-projects.vercel.app/
- NotebookLM 최적화: NotebookLM이 생성한 슬라이드 형식에 맞춰 변환을 지원합니다.
- AI 초정밀 OCR: Upstage Document AI를 활용하여 이미지 속 텍스트를 높은 정확도로 추출합니다.
- 완벽한 편집 지원: 단순 이미지가 아닌, 수정 가능한 텍스트 박스와 개별 이미지로 변환됩니다.
- 모던한 UI 디자인: 최신 Apple 스타일의 Glassmorphism과 다크 모드를 지원하는 아름다운 웹 인터페이스를 제공합니다.
- 안전한 처리: 변환된 파일은 안전하게 처리되며 제공된 링크를 통해서만 다운로드 가능합니다.
- Frontend: React, Vite, Tailwind CSS (Glassmorphism 디자인)
- Backend: Python, FastAPI
- AI Engine: Upstage Document Parser API
- PPTX Engine:
python-pptx
pdf-to-pptx-service/
├── backend/ # Python FastAPI 서버
│ ├── app/ # 애플리케이션 로직
│ ├── outputs/ # 생성된 PPTX 파일 저장소
│ ├── uploads/ # 업로드된 PDF 임시 저장소
│ └── requirements.txt
└── frontend/ # React 프론트엔드
├── src/ # React 컴포넌트 및 스타일
├── tailwind.config.js
└── package.json- Python 3.8 이상
- Node.js 16 이상
- Upstage API Key (Upstage Console에서 발급)
- 백엔드 디렉토리로 이동합니다:
cd backend - 가상 환경을 생성하고 실행합니다:
python -m venv venv source venv/bin/activate # Mac/Linux # venv\Scripts\activate # Windows
- 라이브러리를 설치합니다:
pip install -r requirements.txt
- 환경 변수를 설정합니다:
.env.example파일을 복사하여.env파일을 만듭니다:cp .env.example .env
.env파일을 열어 API 키를 입력합니다:UPSTAGE_API_KEY=발급받은_API_키_입력
- 서버를 실행합니다:
uvicorn app.main:app --reload --port 8001
- 프론트엔드 디렉토리로 이동합니다:
cd frontend - 패키지를 설치합니다:
npm install
- 개발 서버를 실행합니다:
npm run dev
- 브라우저에서
http://localhost:5173으로 접속합니다.
이 프로젝트는 **Backend(Render)**와 Frontend(Vercel) 조합으로 무료 배포에 최적화되어 있습니다.
- Github에 새 Repository를 생성합니다 (예:
pdf-to-pptx-service). - 아래 명령어로 코드를 푸시합니다:
git init git add . git commit -m "Initial commit for deployment" git branch -M main git remote add origin <당신의_GITHUB_주소> git push -u origin main
- **Render Dashboard**에 접속하여 'New' -> **'Blueprint'**를 클릭합니다.
- Github 레포지토리를 연결하면, 자동으로
render.yaml을 인식합니다. - Apply를 누르기 전에,
UPSTAGE_API_KEY환경변수 값을 입력합니다. - 배포가 시작됩니다.
- 배포 완료 후, 서비스 이름 아래에 있는 URL (예:
https://pdf-to-pptx-backend.onrender.com)을 복사해둡니다.
참고: Render 무료 서버는 15분간 요청이 없으면 절전 모드에 들어갑니다. 하지만 우리 프론트엔드에는 서버 자동 깨우기(Auto Wake-up) 기능이 탑재되어 있어 걱정 없습니다!
- **Vercel Dashboard**에 접속하여 'Add New Project'를 클릭합니다.
- 동일한 Github 레포지토리를 Import 합니다.
- Framework Preset은
Vite로 자동 설정될 것입니다. - Root Directory를
Edit눌러서frontend폴더를 선택합니다. - Environment Variables (환경 변수) 섹션을 펼쳐서 추가합니다:
- Key:
VITE_API_URL - Value: 아까 복사한 Render 백엔드 주소 (예:
https://pdf-to-pptx-backend.onrender.com) - 주의: 주소 뒤에 슬래시(
/)는 빼주세요.
- Key:
- Deploy 버튼을 클릭합니다.
이제 Vercel이 제공하는 도메인으로 접속하면 나만의 PDF 변환 서비스가 작동합니다.
MIT License