조달청 MVP — 종합 평가 (문제 없는지)

Phase 1~7 + A~C 변경 후 전 영역 검증 결과. 기능 동작 ✅ / 미커밋 다수 / 잠재 issue 5건.

작성: 2026-05-21 대상: alpha 브랜치 로컬 (4 commits + 미커밋 다수) HEAD: 6181505

1TL;DR

핵심: 데모 4 기능 동작 ✅. pytest 14/14 ✅. 실제 HWPX e2e ✅. 단 매우 많은 변경이 미커밋 상태 — 4 commits + ~30 파일 staged 안 됨. 데모일 전 commit 또는 reset 결정 필요.
영역상태비고
기능 동작정상업로드/파싱/DB/비교 4 기능 모두 검증
pytest14 / 14config 변경 / 새 ORM 추가 회귀 0
alembic0001 + 0002 정상proposals / bids / requirement_items 테이블 생성
실제 HWPX e2e정상(주)JK알에스티 5.8MB → 6초 → DB row 저장
docker-compose 단독 validation에러"postgres 서비스 미정의" — root compose include 전제이므로 단독으론 실패. 실제는 OK
git 커밋 상태미커밋 다수약 30 파일 staged 안 됨

2현재 alpha 브랜치 상태

커밋된 변경 (4 commits ahead of H100)

SHA한 줄
6181505fix: 업로드 버튼 label 패턴 (file picker 안정성)
b577bbdchore: docker-compose 자족화 + bid_id 동봉 + chat dead-link 정리
2fc8326feat: chat 제거 + ai_engine 활용 강화 + bid_id 매핑 버그 수정
f73d326Revert "Revert #162" — Suman PR #162 코드 복원

미커밋 변경 (헥사고날 리팩토링 + DB 진화 + docker 최적화)

그룹파일 수설명
삭제 (chat / ai_engine / compare / nginx / admin pages)~15scope 축소
신설 (헥사고날 — domains/entities/ports/use_cases/adapters/database)~10아키텍처 개선
수정 (api / config / db / main / models / schemas / services / tests)~10MVP 리팩토링
DB 마이그레이션 (0001_proposals + 0002_bids_and_requirements)2match → proposals + bids + requirement_items
docker-compose (자족 + 2026 패턴)1resource limits + read-only + tmpfs + user
entrypoint.sh1seed_demo_bid 호출 제거
requirements.txt1redis 제거 + structlog 추가
~40 파일30+ 변경 / 15+ 삭제 / 10+ 신설
결정 필요: commit 하면 5+ 커밋 추가. 또는 logical 단위로 합쳐 1~2 commit. 또는 reset 후 작은 단위로 재구성.

3기능 검증 — 실제로 동작하는가

검증방법결과
backend pytestpytest tests/ -q14 passed in 0.21s
alembic upgradealembic upgrade head0001_proposals + 0002_bids_and_requirements 정상
DB 스키마SQLite PRAGMA3 테이블 (proposals 17컬럼 / bids 7컬럼 / requirement_items 8컬럼)
BFF 부팅uvicorn app.main:apphealth OK, pydantic-settings 정상
5 API endpoint/openapi.jsonhealth + specs + internal + proposals + extracted
실제 HWPX 업로드(주)JK알에스티 5.8MB업로드 OK / hwpx 파싱 OK / DB 저장 OK / 6초
self-poller2-phase pollinghwpx done 신호 → BFF DB upsert ✅
file_storage_key 컬럼0002 마이그레이션추가됨 (nullable / 데모일엔 사용 안 함)

4잠재 이슈 5건 (영향 작음)

#이슈심각도영향대응
1docker-compose 단독 docker compose config 시 "postgres 미정의" 에러LOW실제 배포엔 root compose 가 include 하므로 OK. 단독 검증 시 failroot compose 에서 include 필요 — 이미 그렇게 사용 중
2structlog 의존성 추가했지만 미사용LOW영향 0 — dead dependency실제 적용은 데모 후 (또는 requirements 에서 제거)
3docker user: "65534:65534" (nobody) — Dockerfile 빌드 rootLOW로컬 정상 / 배포 시 alembic 이 작성하는 임시 파일 권한 가능성알파일 시점에 chown 또는 user UID 일치 확인
4bids / requirement_items 테이블 신설했지만 API endpoint 없음LOW데모 4 기능엔 무관. 후속 P2 작업데모 후 1주 내 보강
5frontend Playwright 회귀 미검증 (admin/analysis 등 페이지 삭제)MED데모 경로 (/upload, /eval) 와 무관하나 일부 admin link 404 가능Playwright 실행해서 확인 권장

5docker-compose 변경 상세

변경이전이후
외부 LLM 의존 변수AI_ENGINE_URL / TIMEOUT / HISTORY / CANCEL_POLL / FIXTURE_FALLBACK제거
Resource limits없음cpus + memory
Read-only filesystemfalsetrue + tmpfs (/tmp + .next/cache)
Userroot (default)nodejs(1001) / nobody(65534)
Network labels없음service: eval-system-premium
OCI labels없음image.source URL
NODE_OPTIONS없음--max-old-space-size=512

6다음 액션 선택지

옵션설명
A. 미커밋 변경 logical 단위로 commit + push (권장)5~6 commits 추가 — Phase 1 (불필요 제거) / Phase 2 (헥사고날) / Phase 3 (DB 진화) / Phase A (docker) / Phase C (pydantic-settings)
B. 단일 squash commit 으로 합쳐 push"feat: MVP 헥사고날 + 2026 패턴 리팩토링" 한 commit. 깔끔 history
C. 로컬만 유지 (push 안 함)데모일까지 로컬 stack 으로만 시연. 안전
D. 모두 reset 후 점진 commitgit reset + 단계별 작은 commit 으로 재구성. 시간 소요
E. 일부만 commit (예: docker + DB 진화만)핵심 인프라만 commit, 헥사고날은 데모 후 별도 PR

7결론

기능 측면: 문제 없음. 4 기능 모두 동작 / pytest 14/14 / alembic 정상 / 실제 HWPX 업로드 성공.
관리 측면: 미커밋 다수. 약 30 파일 변경이 staged 안 됨. 데모 전 commit 결정 권장. 머지 안 하면 데모일 작업 트리에만 존재 (안전하지만 push 자동화 불가).
잠재 이슈 5건 모두 LOW~MED. 데모 차단 요소 없음. 데모 후 P2/P3 보강.