5 옵션 × 5 평가 기준 가중 점수 비교 · 5/22 데모 D-1 기준
| 순위 | 옵션 | 가중 점수 | 점수 분포 |
|---|---|---|---|
| 1 | B — hwpx-intelligence/viewer 확장 | 8.95 | |
| 2 | C — 별도 repo (oosooproduct 발전) | 7.65 | |
| 3 | A — apps/oosoo-viewer 신설 | 6.65 | |
| 4 | D — eval-system-premium 내부 분리 | 4.15 | |
| 5 | E — 현재 chat 제거 PR 진행 | 3.75 |
| # | 기준 | 가중치 | 이유 |
|---|---|---|---|
| 1 | 데모일 (5/22) 안 완성 가능성 | 30% | D-1 압박. 완성 못 하면 데모 자체 실패 |
| 2 | 회귀/리스크 (기존 코드 영향) | 25% | 이미 PR #162 revert 학습. AdminGuard SSR 등 회귀 재발 방지 |
| 3 | H100 LLM 의존도 (적을수록 ↑) | 15% | H100 vLLM 실서빙 미검증 리스크 회피 |
| 4 | 데모 후 발전 가능성 | 15% | 일회성 데모 vs 지속 발전 가능 아키텍처 |
| 5 | 코드 분리/응집도 | 15% | 도메인 경계 명확성. clean architecture |
| 옵션 | 완성 가능성 (30%) |
회귀 리스크 (25%) |
LLM 의존 (15%) |
발전 가능성 (15%) |
분리/응집도 (15%) |
가중 점수 |
|---|---|---|---|---|---|---|
| B hwpx viewer 확장 | 9 | 10 | 10 | 7 | 8 | 8.95 |
| C 별도 repo | 7 | 9 | 9 | 6 | 7 | 7.65 |
| A apps/oosoo-viewer 신설 | 2 | 8 | 8 | 9 | 10 | 6.65 |
| D 내부 분리 | 5 | 4 | 4 | 4 | 3 | 4.15 |
| E chat 제거 PR 진행 | 5 | 3 | 5 | 3 | 2 | 3.75 |
| 장점 | 근거 |
|---|---|
| 회귀 0 | eval-system-premium 무손상. PR #162 / AdminGuard SSR 회귀 / matcher cross-DB 문제 일체 무관 |
| LLM 의존 0 | hwpx 파서만 호출. H100 vLLM 실서빙 검증 부담 없음. 데모일 인프라 리스크 최소 |
| 이미 셋업됨 | viewer/index.html, detail.html, i18n.js, tokens.css, wrangler.toml 존재 — Cloudflare Pages 배포 1 명령 |
| 단점 | 완화 방안 |
|---|---|
| hwpx-intelligence repo 와 결합 (분리 응집도 차) | 장기적으로 옵션 A 로 분리 가능. 데모일까지는 B 가 빠름 |
| vanilla JS — TypeScript / 컴포넌트 안 됨 | 정적 페이지 + fetch 만 — 복잡도 낮아 vanilla 충분 |
| backend 영속화 없음 (in-memory) | 데모는 1회 시연 시나리오라 무방. 향후 옵션 A 로 발전 시 backend 추가 |
| # | 단계 | 예상 시간 |
|---|---|---|
| 1 | viewer/index.html 에 다중 HWPX 업로드 input + fetch 로직 추가 | 1시간 |
| 2 | 업로드 progress polling (/api/jobs/{id}) | 30분 |
| 3 | 완료 후 ProductRecord fetch (/api/records) + 카드/표 render | 1시간 |
| 4 | 다중 제품 side-by-side compare 화면 (column 자동 분할) | 1시간 |
| 5 | Cloudflare Pages 배포 (wrangler 명령) | 10분 |
| 6 | 로컬 hwpx-intelligence + viewer e2e 시연 리허설 | 30분 |
| 상황 | 추천 | 이유 |
|---|---|---|
| 5/22 데모만 본다면 | B | 최단 + 회귀 0 + LLM 의존 0 |
| 데모 후 1~2개월 발전 계획 | B → A | B 로 데모 통과 → 데모 후 A 로 monorepo app 마이그레이션 |
| monorepo CI/CD 표준 준수 절대 우선 | A | 발전 가능성 9 / 분리 10 최고. 단 D-1 안 불가능 → 데모 늦추거나 B 임시 운영 |
| chat 도 살리고 싶다 | E | 현재 PR 보강 — 단 회귀 리스크 7/10, AdminGuard SSR fix 추가 필요 |
monorepo 안 새 Next.js + FastAPI app. 가장 깨끗하지만 D-1 불가능.
이미 정적 페이지 + wrangler 셋업 존재. vanilla JS + fetch 만 추가. 4시간.
vercel 기존 프로젝트의 hardcoded 부분만 real API 로 교체. 외부 repo 동기화 부담.
같은 app 안 router prefix /oosoo/* + chat disable. 분리 효과 적음.
7 파일 수정 + DB 마이그레이션 + AdminGuard SSR fix. 회귀 위험 최고.
# 1. hwpx-intelligence 작업 시작
cd ~/Mirror/Github/1_Projects/hwpx-intelligence
git checkout -b feat/viewer-multi-upload-compare
# 2. viewer/ 정적 페이지 수정
# - index.html: 다중 업로드 input + fetch
# - detail.html: ProductRecord render
# - compare.html (신설): side-by-side 비교
# 3. 로컬 e2e
.venv/bin/python -c "import uvicorn; from hwpx_intelligence.web import create_app; \
uvicorn.run(create_app(output_dir='/tmp/hwpx'), host='127.0.0.1', port=8001)"
# 브라우저: viewer/index.html 열어서 hwpx 파일 drop
# 4. Cloudflare Pages 배포
cd viewer
wrangler pages deploy . --project-name=oosoo-viewer
# 5. on-prem 환경변수 — viewer 가 on-prem hwpx 가리키도록 base URL 변수화
# (script.js 에 const HWPX_BASE = window.HWPX_BASE_URL ?? '...')
hwpx-intelligence 는 private repo. 별도 PAT 또는 sub-repo 권한 확인 필요. CI 통합은 후순위 (데모일에는 로컬 push + 수동 deploy).