# Java Practice 개발팀 전달 메모 **화면·업무 흐름·1차 개발 범위를 합의하기 위한 두 비교안이다.** 실제 Java 실행·AI 응답·보안 인증은 구현되어 있지 않다. ## 접속 - [통합 안내 및 다운로드](http://192.168.0.100:8000/java-practice/) - [Astra 목업](http://192.168.0.100:8000/java-practice/astra/) - [Fable / Claude 목업](http://192.168.0.100:8000/java-practice/fable/) - [영문 개발팀 사용·검토 가이드](developer-guide.md) - [Fable 상세 검토 메모](fable-review.md) 호스트 PC와 Mongoose가 켜져 있어야 한다. 다른 내부망 PC에서 접속도 확인한다. | | 학습자 | 관리자 | 기본 콘텐츠·진도 | | --- | --- | --- | --- | | Astra | `maya / Practice123!` | `admin / Admin123!` | 게시 18문제, Maya 필수 2/12 | | Fable | `maria / maria-demo` | `admin / admin-demo` | 게시 16문제·초안 2문제, Maria 필수 4/10 | 가상 계정이다. 실제 비밀번호·개인정보를 입력하지 않는다. ## 각 목업에서 15분씩 확인할 흐름 1. **My Learning → 문제 열기:** 과제·수업·PHP 비교를 읽고 Help에서 힌트를 순서대로 연다. 코드 수정 후 저장 표시를 확인하고 새로고침한다. 2. **실행과 제출 비교:** Prototype controls에서 준비된 실패 코드를 넣고 Run examples와 Submit을 각각 누른다. 실행만으로 진도가 오르지 않는지 확인한다. 준비된 통과 코드 제출 후 한 번만 완료 처리되는지, 이전 제출 소스가 보존되는지 본다. 3. **학습자 → 강사 → 학습자:** 질문을 작성하고 강사 답변을 요청한다. 같은 탭에서 관리자 계정으로 전환해 Review Inbox에서 답변한 뒤, 다시 학습자로 전환해 답변을 확인한다. 4. **관리:** 가상 계정을 만들고 비활성화한다. 새 문제를 초안으로 저장·미리보기·게시하고, 라이브러리에는 추가되지만 기존 필수 배정 수는 바뀌지 않는지 본다. 5. **오류:** Prototype controls에서 채점 서비스 장애와 AI unavailable을 각각 확인한다. AI가 없어도 질문 저장과 채점·진도 흐름이 가능한지 본다. Astra는 **Queue numbers**에서 `Load known failed variant` / `Load known passed variant`를 사용한다. 기본 Maya의 통과 후 진도는 3/12다. Fable은 **Validate a Reference Number**에서 `Known code variant`를 선택하고 `Insert variant into editor`를 누른다. 실패/통과 코드의 정확한 이름과 순서는 영문 가이드에 있다. 기본 Maria는 통과 후 5/10이다. `Queue Ticket Countdown`은 Maria가 이미 통과했으므로 재통과해도 진도가 증가하지 않는다. ## 비교하면서 결정할 사항 - 어느 화면이 학습자의 다음 행동을 더 쉽게 찾게 하는가? - 문제·수업·힌트·편집기·결과의 배치가 실제 공부에 적절한가? - 제출 결과와 AI 설명, 강사 의견이 구분되는가? - 강사에게 필요한 계정·콘텐츠·리뷰 기능만 남아 있는가? - 버전 게시·재배정·진도 계산·장애 재시도의 운영 규칙은 무엇으로 확정할 것인가? 채택할 동작과 수정할 동작을 화면별로 기록한다. ## 전달 시 반드시 함께 설명할 한계 **내부망에서도 PC별 학습 기록은 공유되지 않는다.** 계정·질문·답변·진도는 브라우저에 저장된다. 연결 흐름은 같은 브라우저에서 계정을 전환해 확인한다. Astra/Fable의 데이터도 분리된다. Fable은 탭 간 덮어쓰기 결함이 있어 한 탭씩 사용한다. Fable의 게시 초안 노출, 변경된 문제와 채점 fixture 불일치, 버전별 완료 표시 불일치, 제출 중 새로고침 복구 실패 등은 **미수정 상태**다. 참고자료로 전달하되 그대로 구현할 사양으로 채택하지 않는다. 상세 검토 메모를 함께 전달한다. 원본은 `C:\PNP\Astra`, `C:\PNP\Fable`이다. ZIP의 `source/astra`, `source/fable`은 개별 실행용 소스이며, `mongoose/java-practice`는 기존 Mongoose 웹 루트에 복사하는 서버 제공본이다. 압축 해제 폴더에서 실행할 수 있으므로 개발팀 PC에 `C:\PNP`를 만들 필요는 없다. 상세 실행 방법은 동봉한 `README-FIRST.md`와 영문 가이드에 있다. 현재 Mongoose의 `.html` 응답 헤더 문제 때문에 서버 제공본의 진입점은 **index.shtml**이다. **서버 제공 폴더에 index.html을 추가하면 정상 진입점을 가리므로 추가하지 않는다.** 원본 소스의 index.html은 그대로 유지한다. 접속 URL은 위 폴더 주소 그대로다. Astra에는 내부망 HTTP용 ID 생성 호환성 수정도 적용했다. 실제 인증·DB·격리 채점기를 갖춘 Java/Spring 운영 시스템은 별도 구현 대상이다.