Skip to content

Latest commit

 

History

History
74 lines (53 loc) · 3.61 KB

File metadata and controls

74 lines (53 loc) · 3.61 KB

실행 노트 — 요구사항·경로·폴백

요구사항

항목 필요 여부 없으면
python3 필수 서버가 뜨지 않는다. macOS·Linux 기본 탑재
외부 패키지 없음 표준 라이브러리만 쓴다. pip install 이 없다
브라우저 창 권장 Claude Code 데스크톱 앱의 창을 쓴다. 없으면 사용자가 직접 localhost:<포트> 를 열면 동일하게 동작한다
인터넷 불필요 덱은 외부 CDN을 참조하지 않는다. 오프라인에서 만들고 발표할 수 있다

도구 경로 해석

스크립트는 skills/lecture-live-edit/scripts/ 에 있다. 플러그인 설치 위치는 환경마다 다르므로 세션에서 한 번 찾아 쓴다.

TOOL=$(dirname "$(find ~/.claude -name lle.py -path '*lecture-live-edit/scripts*' 2>/dev/null | head -1)")

launch.jsonruntimeArgs 만은 실제 절대경로가 들어가야 한다(설정 파일이라 변수 확장이 없다). 오케스트레이터가 셋업 단계에서 위 방법으로 해석해 채워 넣는다.

포트

  • 강의 1건 = 폴더 1개 = 포트 1개. 4601부터 순서대로 쓴다.
  • 포트가 이미 쓰이면 서버는 다른 포트로 옮겨가지 않고 즉시 종료한다. launch.json 의 포트가 단일 진실이어야 브라우저가 늘 같은 주소를 보기 때문이다.
  • 충돌 시: 그 강의의 서버가 이미 떠 있는 것이면 그대로 쓰고, 다른 프로그램이면 launch.json 의 포트를 바꾼다.
lsof -nP -iTCP:4601 -sTCP:LISTEN     # 누가 쓰는지 확인

자동 깨우기와 폴백

피드백이 도착하면 Claude가 자동으로 깨어나 반영한다. 이 감시는 세션 단위다.

상황 동작
정상 피드백 1건마다 알림 → 자동 반영
세션 종료 감시는 사라지지만 큐는 디스크에 남는다. 재개 시 일괄 반영
감시가 죽음 반자동으로 강등 — 오버레이가 대기 건수와 안내를 표시하고, 채팅에 아무 말이나 하면 처리된다

어느 경우에도 데이터 유실은 없다. 미처리 여부는 queue.jsonl 줄 수와 cursor 의 차이로만 판정하므로, 알림은 유실돼도 되는 힌트일 뿐이다.

세션을 새로 시작했을 때의 재개 절차는 lecture-live-edit 스킬에 규정돼 있다 (서버 재기동 → 밀린 것 반영 → 감시 재장전 → 상태 보고).

보안

  • 서버는 127.0.0.1 에만 바인딩한다. 외부에서 접근할 수 없다.
  • 피드백 요청은 64KB로 제한한다.
  • 별도 인증이 없는 것은 로컬 전용이기 때문이다. 공개 네트워크에 노출하지 말 것.

파일 배치

<강의 폴더>/
├── deck.html              최종 산출물 (항상 클린)
├── feedback/              라이브 편집 상태 — queue.jsonl, cursor, published, applied.jsonl
├── versions/              반영 직전 스냅샷 (되돌리기용)
└── _workspace/            구성안 등 중간 산출물

feedback/versions/ 는 런타임 부산물이다. 배포할 때는 deck.html 만 가져가면 된다.

알려진 제약

  • 슬라이드를 JS가 런타임 생성하는 덱은 편집 대상이 되지 못한다. 고칠 자리가 소스에 없기 때문이다.
  • 같은 프로젝트를 두 세션이 동시에 편집하면 커서를 양쪽이 기록해 어긋난다. 지원하지 않는다.
  • macOS에서 한글 파일명은 NFC/NFD 정규화 불일치로 404가 날 수 있다. 서버가 자동 재시도하지만, 이미지 파일명은 ASCII를 권한다.