Skip to content

Repository files navigation

PTStudio v0.1.0-alpha

PTStudio는 발표자와 발표 보조자가 같은 네트워크 안에서 하나의 발표 흐름을 함께 볼 수 있도록 만든 로컬 웹 기반 발표 보조 도구입니다. 발표자는 Presenter 화면에서 현재 슬라이드와 발표 대본을 확인합니다. 발표 보조자는 Controller 화면에서 세션과 슬라이드 진행을 관리합니다. 발표 중 급하게 전달해야 하는 말은 긴급 코멘트로 보내며 발표자는 화면 상단 알림으로 바로 확인할 수 있습니다.

이 버전은 실제 발표 리허설과 현장 발표를 돕기 위한 알파 버전입니다. PPTX 파일을 세션으로 가져오고 슬라이드별 발표 대본과 Q&A 근거 자료와 할당 시간을 함께 관리합니다. 리허설을 진행하면 슬라이드별 실제 소요 시간이 기록됩니다. Controller는 이 기록을 바탕으로 시간 초과 위험을 보여주고 전체 발표 시간 안에서 할당 시간을 다시 조정할 수 있도록 돕습니다.

왜 만들었는가

발표 현장에서는 발표자가 모든 정보를 혼자 들고 있기 어렵습니다. 질문 대비 자료가 따로 있고 발표 시간이 계속 줄어들며 팀원이 급하게 알려야 하는 말도 생깁니다. PTStudio는 이런 순간을 위해 발표 화면과 보조 화면을 분리합니다. 발표자는 읽기 쉬운 화면만 봅니다. 보조자는 자료와 시간을 정리하고 필요한 신호를 보냅니다.

주요 경험

Controller는 발표 준비와 진행을 담당합니다. 여기에서 세션을 만들고 PPTX 자료를 가져옵니다. 기존 세션의 PPTX를 교체할 수도 있습니다. 각 슬라이드에는 발표 대본과 Q&A 근거 자료와 할당 시간이 저장됩니다. 세션 선택과 슬라이드 이동은 Presenter 화면에 즉시 반영됩니다.

Presenter는 실제 발표자가 보는 화면입니다. PPT 원본에 가까운 슬라이드 이미지를 확인할 수 있고 필요에 따라 대본을 크게 띄우거나 슬라이드 위에 겹쳐 볼 수 있습니다. 발표가 라이브 상태가 아닐 때 타이머는 멈춥니다. 발표가 시작되면 현재 슬라이드 기준으로 시간이 흐르며 남은 시간과 초과 위험을 볼 수 있습니다.

리허설 기록은 발표 시간을 다듬는 데 쓰입니다. 한 번의 리허설마다 전체 시간과 슬라이드별 실제 시간이 저장됩니다. 기록은 삭제할 수 있으며 번호는 자동으로 다시 정렬됩니다. 여러 리허설이 쌓이면 최근 기록 기준으로 시간 초과 위험 슬라이드를 확인할 수 있습니다.

긴급 코멘트는 발표 보조자가 발표 중 바로 보내는 메시지입니다. Controller에서 보낸 메시지는 Presenter에 크게 표시됩니다. 전송 기록은 Controller에 남아 복사할 수 있습니다. 현장에서 어떤 말을 보냈는지 나중에 확인하기 쉽도록 만들었습니다.

프로그램 구조

PTStudio는 하나의 Node.js 서버와 두 개의 웹 화면으로 구성됩니다. 서버는 Express로 정적 화면과 API를 제공합니다. Socket.IO는 Controller와 Presenter 사이의 실시간 상태 동기화에 사용됩니다. 발표 세션과 리허설 기록은 로컬 data 폴더에 JSON 파일로 저장됩니다. PPTX에서 만든 슬라이드 이미지는 data/assets 아래에 저장됩니다.

Controller 화면은 public/index.html에 있습니다. Presenter 화면은 public/presenter.html에 있습니다. 서버 로직과 PPTX 처리 로직은 server.js에 있습니다. 발표장 실행용 macOS 커맨드 파일은 PTStudio_Run.command입니다. 로직 검증은 scripts/logic-check.js가 담당합니다. 로컬 CSS 생성은 scripts/build-local-css.js가 담당합니다.

PTStudio/
  server.js
  package.json
  PTStudio_Run.command
  public/
    index.html
    presenter.html
    vendor/ptstudio-local.css
  scripts/
    logic-check.js
    build-local-css.js
  runptstudio/
    run_ptstudio.py
  data/
    .gitkeep

실행 방법

macOS에서는 PTStudio_Run.command를 더블클릭해서 실행하는 방식을 권장합니다. 실행 화면에는 Controller 주소와 Presenter 주소가 함께 표시됩니다. 같은 Wi-Fi 또는 같은 핫스팟에 연결된 기기라면 표시된 공유용 IP 주소로 접속할 수 있습니다.

터미널에서 직접 실행할 때는 아래 명령을 사용합니다.

npm install
npm start

실행 후 Controller는 아래 주소에서 열립니다.

http://localhost:3000/

Presenter는 아래 주소에서 열립니다.

http://localhost:3000/presenter

발표 준비 흐름

처음에는 Controller에서 세션을 만들거나 PPTX 파일을 가져옵니다. 가져온 PPTX는 슬라이드별 세션으로 변환됩니다. 슬라이드 이미지가 생성되면 Presenter에서 실제 슬라이드 화면을 확인할 수 있습니다. 각 슬라이드에는 발표 대본과 Q&A 근거 자료와 할당 시간을 입력합니다.

발표 전에는 Presenter 주소를 발표자가 사용할 기기에서 엽니다. Controller에서 세션을 선택하면 Presenter도 같은 세션으로 이동합니다. 발표 시작 직전에 발표 라이브 시작을 누르면 타이머와 리허설 기록이 함께 시작됩니다. 발표가 끝나면 발표 라이브 종료를 눌러 기록을 마칩니다.

PPTX 변환과 권한

PTStudio는 PowerPoint 기반 변환을 우선 시도합니다. 이 방식은 원본 PPT 화면 재현을 가장 중요하게 보기 때문입니다. macOS에서 처음 사용할 때는 자동화 권한 확인 창이 뜰 수 있습니다. 권한이 없으면 PowerPoint를 통해 슬라이드 이미지를 만들 수 없습니다.

권한이 필요할 때는 macOS 시스템 설정에서 개인정보 보호 및 보안으로 이동합니다. 그다음 자동화 항목에서 PTStudio를 실행한 터미널 또는 Python이 Microsoft PowerPoint를 제어할 수 있도록 허용합니다. 앱은 권한 문제나 변환 실패가 발생하면 사용자가 닫을 때까지 오류 메시지를 유지합니다.

데이터와 GitHub 공개 기준

실제 발표 자료와 리허설 기록은 로컬 데이터입니다. 이 데이터에는 발표 내용과 팀 내부 자료가 들어갈 수 있으므로 GitHub에는 올리지 않는 것을 기본 원칙으로 합니다. 공개 전 확인 기준은 GITHUB_PUBLISH_CHECKLIST.md에 정리되어 있습니다.

아래 경로는 repository에 올리지 않습니다.

node_modules/
data/*.json
data/assets/
data/backups/
.env
.env.*
.DS_Store
.idea/
PTstudio/.idea/
runptstudio/.idea/
runptstudio/.venv/
runptstudio/__pycache__/

검증

발표장에 가져가기 전에는 아래 검증을 실행합니다.

npm run check

이 검증은 서버와 화면 스크립트 문법을 확인합니다. Controller와 Presenter의 핵심 DOM 계약도 확인합니다. 외부 Tailwind CDN과 Google Fonts 의존이 남아 있는지도 확인합니다. 로컬 CSS 파일과 세션 데이터와 PPT 이미지 참조도 함께 점검합니다.

현재 상태

v0.1.0-alpha는 발표 리허설과 현장 보조를 목표로 만든 첫 공개 준비 버전입니다. 핵심 사용 흐름은 로컬 네트워크 안에서 동작하도록 구성되어 있습니다. 이후 버전에서는 사용자 계정과 팀 단위 세션 공유와 더 정교한 PPT 분석 품질을 확장할 수 있습니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages