# 8081 Serving Map

## Purpose

이 문서는 `8081` 작업용에서 어떤 URL이 어떤 파일을 실제로 읽는지 고정하기 위한 책임 맵이다.
이번 1차 정리의 목표는 기능 변경이 아니라 `실제 서빙 파일`, `공통 기본 스타일`, `8081 전용 오버라이드`, `참고 원본 자산`의 경계를 분명히 하는 것이다.

## Runtime Entry Points

- 허브 엔트리: `/`
  - 파일: `frontend/public/index.html`
- 허브 공통 스크립트:
  - 파일: `frontend/public/app.js`
- 허브 공통 기본 스타일:
  - 파일: `frontend/public/styles.css`
- 허브 8081 전용 디자인 오버라이드:
  - 파일: `frontend/public/styles-8081-design.css`

## Login Rules

- 로그인 화면 기본 구조와 스타일은 `8080` 공통 기준을 따른다.
- 로그인 기본 스타일은 `frontend/public/styles.css`에서만 정의한다.
- `frontend/public/styles-8081-design.css`에는 로그인 관련 셀렉터를 넣지 않는다.

## Legacy Organization

- URL: `/legacy/organization`
- HTML 파일:
  - `DashBoard-organization.html`
- 정적 자산:
  - `legacy/static/common.css`
  - `legacy/static/organization.css`
  - `legacy/static/organization.js`

## Integration Screens

- URL: `/integrations/payment`
  - 현재 실제 서빙 파일: `incoming-files/served/payment.html`
  - 앱 소스 기준: `frontend/apps/payment/index.html`
  - publish 규칙: `scripts/publish_payment_app.sh`
- URL: `/integrations/ledger`
  - 현재 실제 서빙 파일: `incoming-files/served/ledger/index.html`
  - 현재 실제 runtime asset 경로: `incoming-files/served/ledger/*`
  - 앱 소스 기준: `frontend/apps/ledger/*`
  - publish 규칙: `frontend/apps/ledger/index.html` placeholder를 `scripts/publish_ledger_app.sh`가 runtime asset 경로로 치환
- URL: `/integrations/mh`
  - 현재 실제 서빙 파일: `incoming-files/served/mh.html`
  - 앱 소스 기준: `frontend/apps/team/index.html`
  - publish 규칙: `scripts/publish_team_app.sh`
- URL: `/db-status.html`
  - 현재 실제 서빙 파일: `incoming-files/served/db-status/index.html`
  - 앱 소스 기준: `frontend/apps/db-status/index.html`
  - publish 규칙: `scripts/publish_db_status_app.sh`

정리 원칙:

- `incoming-files` 아래에서는 `served/`를 실제 서빙 자산용으로 사용한다.
- `payment`, `mh`, `ledger`, `db-status`는 사람이 직접 `served/`를 먼저 수정하지 않는다.
- 이 4개 화면의 source-of-truth는 `frontend/apps/*`이고, publish 스크립트가 `served/`를 갱신한다.
- `reference/`는 원본 참고 파일, 복구 참고 파일, 비교용 자산만 둔다.
- 1차 정리에서는 기존 실제 서빙 파일을 `served/`에 복사하고, backend 서빙 경로를 먼저 `served/`로 갱신한다.
- `사업관리대장`은 `#21`부터 wrapper decode 방식 대신 `served/ledger/index.html`과 `served/ledger/*`를 직접 서빙한다.
- `사업관리대장` 수정 원본은 `#21` 다음 단계부터 `frontend/apps/ledger/*`를 먼저 보고, `scripts/publish_ledger_app.sh`로 runtime served 파일에 반영한다.
- 기존 루트 `incoming-files/payment.html`, `incoming-files/mh.html`는 안전한 비교/복구를 위해 당분간 남겨둔다.

## Seat Map

- 허브 화면 구성:
  - `frontend/public/index.html`
  - `frontend/public/app.js`
  - `frontend/public/styles.css`
  - `frontend/public/styles-8081-design.css`
- API / viewer:
  - `backend/app/main.py`
  - `backend/app/db.py`
  - `backend/app/center_chair_viewer_template.html`

## Incoming Files Classification

### Served

- 실제 URL에서 직접 읽는 파일
- 예:
  - `served/payment.html`
  - `served/mh.html`

### Reference

- 원본 HTML/CSS/XLSX/CSV
- 복구 비교용 자산
- 직접 서빙하지 않는 참고 파일
- 필요 시 다음 차수에서 `reference/` 하위로 단계적 재배치한다.

예:

- `260320.html`
- `sample style.css`
- `opayment.html`
- `omh.html`
- `reference/ledger/MH 통합 대시보드_260320.html`
- `reference/ledger/MH 통합 대시보드_260320.css`
- 원본 xlsx/csv

## Out Of Scope For Phase 1

- DB 스키마 의미 변경
- 계산식 변경
- 권한 로직 변경
- 신규 기능 추가
- backend 라우터 대분해

## Phase 1 Success Criteria

- 수정 대상 파일을 화면별로 즉시 찾을 수 있다.
- 로그인은 `styles.css`만 본다.
- 허브 8081 디자인은 `styles-8081-design.css`만 본다.
- `/integrations/payment`, `/integrations/mh`의 실제 서빙 파일 위치가 문서와 코드에서 일치한다.
- `/db-status.html`가 현재 DB 저장 구조와 import 상태를 화면에서 바로 보여준다.
- 기존 참고 자산을 지우지 않고도 실제 서빙 경로와 참고 경로를 구분할 수 있다.
