# Replacement Audit

작성일: 2026-04-18
대상 도메인: `https://med.blazers5.site`

## 1. 이번 감사의 목적

운영 중인 사이트를 기준으로, 새 프라이빗 저장소 `med-site-next`가 나중에 실제 사이트를 대체할 수 있도록 코드와 경로, 데이터 기준선을 정리하는 것이 목적입니다.

## 2. 운영 사이트에서 직접 확인한 사실

### 2026-04-18 확인 결과

- 루트 `/`는 즉시 `/medicine/`으로 이동합니다.
- 공개 화면은 정적 `medicine.html`이 아니라 `/medicine/` 경로에서 로드됩니다.
- 응답 헤더와 자산 비교 결과, 현재 운영 배포는 Cloudflare Pages/Worker 계열 프록시 뒤에서 동작합니다.
- 공개 화면 JavaScript는 `/api/medicine?machine=1|2`를 호출해 데이터를 가져옵니다.
- 관리자 경로 `/admin/`도 동일 저장소 계열 자산 구조를 사용하고 있습니다.
- 현재 운영 공개 자산은 GitHub 저장소 `blazers5/codex-med-dashboard`의 `codex/public-medicine-data-20260408` 브랜치와 일치했습니다.

## 3. 새 저장소로 가져온 소스와의 차이

초기에는 레거시 검증본을 기준으로 작업하고 있었고, 다음 문제가 있었습니다.

1. 실제 운영 공개 화면이 아닌 별도 검증용 `medicine.html`을 메인으로 보고 있었음
2. 운영 소스 경로(`/medicine/`, `assets/*`, `_worker.js`)가 저장소 기준선에 포함되지 않았음
3. 문서가 실제 수정 포인트가 아닌 레거시 파일을 가리켰음
4. 모바일 검색 개편 전에 운영 디자인과 실제 동작을 기준으로 맞출 수 없었음

## 4. 이번에 실제로 수정한 내용

### A. 운영 기준선 동기화

- `medicine/index.html`, `medicine/mobile/index.html`, `medicine/desktop/index.html`, `admin/index.html`, `assets/medicine-router.js`, `assets/medicine-public.js`, `assets/medicine-app.css`, `assets/medicine-desktop.css`, `assets/medicine-print.css`, `assets/medicine-admin.js`, `_worker.js`, `_redirects`를 실제 운영 기준선에 맞춰 가져옴
- 공개 화면 기준 진입 경로를 `/medicine/`으로 고정
- 레거시 진입 파일(`med-inventory.html`, `med-inventory-supabase.html`, `docs/medicine.html`)은 모두 `/medicine/`으로 정리

### B. 모바일 검색 UX 개편

- 검색창을 모바일 화면 최상단으로 이동
- 모바일 초기 진입 시 기본 목록을 숨기고 검색 결과 중심 구조로 변경
- 약품명, 코드, 번호, 식별문자를 통합 검색
- 현재 검색 유형과 결과 건수를 칩으로 표시
- 최근 검색어 10개를 재실행 가능하도록 저장

### C. DB 권한 강화

- `medicine_inventory`, `medicine_inventory_2` 모두 생성/갱신 기준 SQL 포함
- `anon`은 `select`만 가능
- `insert`, `update`, `delete`는 `authenticated`만 가능
- `updated_at` 컬럼과 자동 갱신 트리거 추가

### D. 문서 재작성

- 실제 운영 소스 추적 문서 추가
- 데이터 README를 현재 구조 기준으로 수정
- 루트 README를 현재 운영 구조 기준으로 수정
- 교체용 가이드 문서를 현재 아키텍처 기준으로 갱신

## 5. 아직 남아 있는 운영 전환 리스크

1. Cloudflare Pages/Worker의 실제 배포 환경변수와 Access 설정값은 별도로 확인해야 합니다.
2. `public-medicine-data.json`, `drug-image-overrides.json`, `drug-image-manifest.json`은 운영 데이터 변경 시 재동기화가 필요합니다.
3. 모바일 검색 동작은 로컬/브라우저 검증까지 수행했지만, 실기기 검수는 추가로 하는 것이 안전합니다.
4. 레거시 `medicine.html`이 저장소 안에 남아 있으므로, 다음 작업자는 현재 기준 파일을 혼동하지 않아야 합니다.

## 6. 현재 결론

이 저장소는 다음 목적에는 바로 사용할 수 있습니다.

- 기존 운영 저장소를 건드리지 않는 독립 백업/교체 후보
- 실제 운영 퍼블릭 디자인을 유지한 대체 후보
- 데이터 기준선 검증용 저장소
- 보안 정책이 정리된 DB 기준 저장소
- 후속 개발자가 모바일 개편과 운영 전환을 이어서 진행할 기준 저장소

실제 운영 환경변수와 배포 설정만 맞추면, 이 저장소는 운영 공개 화면 대체 후보로 사용할 수 있는 수준까지 기준선이 맞춰졌습니다.
