# 파티 장난 앱 — 계획서 ## 1. 목표 친구와 함께 즐기는 **되돌릴 수 있는 장난 연출 앱**. 깜짝 효과(가짜 블루스크린, 가짜 바이러스 경고 등)를 띄웠다가 바로 "장난이야"로 풀어주는 파티용 프로그램. ## 2. 핵심 원칙 (불변 조건) 이 조건들은 기능보다 우선합니다. 하나라도 깨지면 그건 더 이상 "장난 앱"이 아닙니다. - **항상 보임** — 실행 중 창은 언제나 화면에 떠 있다. 트레이 숨김 / 최소화 은닉 없음. - **그 자리의 사람이 통제** — 앱이 도는 PC 앞의 사람이 모든 동작을 보고, 멈추고, 끌 수 있다. - **되돌림 가능** — 모든 연출은 키/클릭/ESC로 즉시 해제. 파일 손상·설정 변경 등 영구 효과 없음. - **흔적 없음** — 설치·자동실행 등록·파일 쓰기·외부 전송 없음. 끄면 끝. ## 3. 범위 ### 하는 것 (In scope) - A. **로컬 파티 앱** — 그 PC에서 직접 실행, 버튼으로 연출을 터뜨리는 앱. ✅ 이미 구현됨(`index.html`). - B. **한 화면 2인 모드(hot-seat)** — 네트워크 없이, 한 PC 앞에 둘이 앉아 한 명이 상대에게 연출을 걸어주는 모드. 창은 계속 보이고 상대가 직접 ESC로 끌 수 있음. - C. **연출 추가** — 가짜 다운로드 바, 가짜 업데이트 화면, 커스텀 문구/효과음 등. - D. **배포 편의** — 더블클릭 실행 패키징(현재는 HTML 파일 하나, 필요 시 단일 실행파일로). ### 안 하는 것 (Out of scope — 거절) - ✗ **클라이언트/서버로 나눠, 한 사람이 네트워크 너머 다른 사람 PC의 연출을 트리거하는 구조.** - 이유: "대상 PC에 상주하는 클라이언트 + 원격에서 명령을 보내는 서버"는 연출이 무해해도 **아키텍처 자체가 원격 조종 툴(RAT)의 뼈대**다. 명령 목록만 바꾸면 그대로 악성툴이 되고, "동의한 장난"과 "몰래 장악"이 코드상 구분되지 않는다. 연결 승인 UI·종료 버튼을 붙여도 통제권이 대상자가 아닌 원격 조작자에게 있다는 본질은 바뀌지 않는다. - ✗ 트레이/백그라운드 은닉, 자동 시작, 상대 몰래 실행. ## 4. 현재 상태 - `index.html` — 단일 파일 로컬 파티 앱. 연출 6종(가짜 블루스크린 / 가짜 바이러스→폭죽 / 화면 깨짐 / 글리치 / 폭죽 / 효과음). 시스템 크롬으로 렌더링·동작 검증 완료. - `README.md` — 실행법과 연출 설명. ## 5. 다음 단계 (사용자 선택 대기) 1. **B안(한 화면 2인 모드)** 으로 진행 — 네트워크 없이 둘이 즐기는 형태. 계획 상세화 → 구현. 2. **C안(연출 추가)** — 넣고 싶은 연출만 지정하면 현재 앱에 바로 추가. 3. **D안(단일 실행파일 패키징)** — 친구가 브라우저 없이 더블클릭으로 실행하게. > 참고: 3절 "안 하는 것"의 원격 트리거 구조는 어떤 포장을 해도 진행하지 않습니다.