검증일: 2026-08-23
P0 운영 신뢰성 개선이 서로 연결된 상태에서도 요구사항을 유지하는지 재현 가능한 자동 테스트로 확인한다. 공개 리포트 열람, 역할별 관리 경계, 일회성 예약 실행, 출처 상태, 감사 이력을 한 검증 범위로 묶었다.
통합 테스트는 빈 SQLite 데이터베이스에 모든 D1 마이그레이션을 순서대로 적용한 뒤 다음 흐름을 실행한다.
- 한국, 미국, 유럽 감시 대상 한 개를 등록한다.
- 가까운 실행 시각이 지난 일회성 예약을 등록한다.
- Worker 정기 확인을 두 번 실행한다.
- PubMed, MFDS, KIDS, FDA, EMA 응답은 결과가 없는 정상 응답으로 대체한다.
- 예약이 정확히 한 번만 실행되고 하나의 리포트만 생성되는지 확인한다.
- 리포트가 완료 상태와 100퍼센트 진행률에 도달하는지 확인한다.
- 다섯 출처가 모두 완료되고 실행 감사 기록이 남는지 확인한다.
검증 결과:
- 일회성 예약은
triggered상태가 되고 다시 실행되지 않았다. scheduled_once리포트가 정확히 한 건 생성됐다.- 리포트는 모든 계획 단계를 처리한 뒤 완료 상태가 됐다.
- 각 출처의 처리 단위와 완료 단위가 일치했다.
- 시스템 수행자의 리포트 생성 감사 기록이 저장됐다.
- 홈과 리포트 상세 화면은 로그인을 강제하지 않는다.
- 관리 화면은 ChatGPT 로그인을 요구한 뒤 팀 구성원 역할을 다시 확인한다.
- 관리자, 검토자, 읽기 전용의 권한 계층을 단위 테스트로 확인한다.
- 감시 대상, 일정, 리포트 API와 Worker 수동 실행 경로에 서버 권한 검사가 있는지 확인한다.
- 운영 Sites 접근 모드는 공개 상태임을 확인했다. 이는 비로그인 공개 리포트 요구사항과 일치하며 관리 기능은 서버의 팀 권한으로 보호한다.
- 인증정보가 없는 운영 홈 요청이 HTTP 200으로 응답하는 것을 확인했다.
외부 출처 응답은 자동 테스트에서 정상 빈 응답으로 대체했다. 따라서 이 검증은 외부 기관 사이트의 가용성이 아니라 예약, 수집 진행, 완료 판정, 중복 방지와 저장 일관성을 확인한다.
자동 통합 검증에서는 운영 D1에 일정이나 리포트를 추가하지 않았다. 운영 외부 출처의 가용성은 실제 정기 실행 결과와 출처별 상태로 계속 확인한다.
검증된 P0 소스를 Sites 운영 버전 32로 배포했다. 배포 후 브라우저에서 다음 항목을 확인했다.
- 비로그인 홈에 최근 완료 리포트와 다음 정기 실행 시각이 표시됐다.
- 비로그인 상태에서 공개 리포트 상세 화면을 열 수 있었다.
- 관리 화면 직접 접근은 ChatGPT 로그인 화면으로 전환됐다.
- 로그인 후 현재 사용자를 관리자로 인식했다.
- 30분 실행 제한 문구, 시스템 정기 일정 보호, 감시 대상 목록과 리포트 목록이 표시됐다.
- 팀 권한 관리와 최근 감사 기록이 표시됐다.
- 브라우저에서 애플리케이션 오류가 발견되지 않았다.
브라우저 검증 과정에서는 감시 대상, 일정, 리포트와 팀 권한을 변경하지 않았다.