{"id":"cmq7c8t3200jrpb01kdjgizxa","docId":"cmq5z6lmr002hpb01ieap6dzh","version":1,"title":"재매칭 보고서 (AI 어시스턴트) — 누락 7건 + 부분/과대 6건 + 충돌 4건","content":"# 요구사항 재매칭 보고서 (AI 어시스턴트 검토본)\n\n작성: 2026-06-09 KST  \n대상 task: `peer-1780966272943-c4t9ai`  \n범위: Notion SOP 인풋, `docs/01_요구사항/` 전체, `2026-06-12` 회의 안건, `docs/09_테스트/06_갭분석.md`, 현재 `apps/backend` / `apps/frontend` 구현 대조\n\n## 1. 결론\n\n`docs/09_테스트/06_갭분석.md`의 \"누락 0건\" 결론은 현재 기준으로 유지하면 위험하다. 큰 기능 축은 대부분 반영됐지만, 회의록과 SOP 원문에 있던 현장 처리, 정산, 내비 연동, 일정 확정 workflow, 관리자 UI 인수조건 일부가 매트릭스 밖에 있거나 `충족`으로 과대 판정됐다.\n\nAI 어시스턴트 재매칭 결과:\n\n| 구분 | 건수 | 요약 |\n|---|---:|---|\n| 신규 누락 | 7 | 결제/입금, 내비 링크, 콘솔 수량/물량, 증명서 단가 노출, 정산, 캘린더 클릭 라우팅, 사용자 관리 UI |\n| 부분/과대 판정 | 6 | 25일 배치 후 날짜 조정, reassign UI, bulk action UI, 지점명 변경 절차, worker day-only 정책, OBS 협력사 차용 범위 |\n| 정책 충돌/확인 필요 | 4 | worker 월간표 vs 1일 뷰, 월 N회 hint 사용 여부, QR 프린트 책임, Notion live freshness |\n| 유지 가능 | 다수 | 트랙 분리, RBAC 스키마, schedule DATE 필터, 자동 연장, Excel 업로드 골격, QR/barcode 골격 |\n\n## 2. 소스 확인 상태\n\n| 소스 | 확인 상태 | 비고 |\n|---|---|---|\n| Notion DB `3599fc1c92b780b19e96e4af58550dae` | 부분 | 이 AI 어시스턴트 세션에는 Notion MCP live fetch 도구가 노출되지 않아 직접 fetch는 불가. 로컬 mirror `docs/01_요구사항/SOP_운영_현황_및_개선방향.md`를 기준으로 대조했다. mirror에는 원본 Notion id가 명시돼 있다. |\n| `docs/01_요구사항/` 전체 | 완료 | `00_전체방향_v5.md`, SOP mirror, `SOP_diff_to_migration_plan.md`, `20260612_회의_안건.md`, `20260605/MEETING_요약_20260527.md`, 회의 원문, PDF, Excel UI 명세 확인. |\n| 개발 요청 PDF | 완료 | `pdftotext`로 3쪽 내용 확인. Architecture Overhaul, in/out scope, acceptance criteria 재확인. |\n| Excel UI 명세 | 완료 | `openpyxl`로 6개 sheet 확인. 메뉴/계약/일정 캘린더 세부 UI 조건 반영. |\n| 현재 구현 | 완료 | `apps/backend/src/main/java`, `apps/backend/src/main/resources/db/migration`, `apps/frontend/src/pages` 중심 대조. |\n| 기존 갭분석 | 완료 | `06_갭분석.md`, `06_갭분석_antigravity.md`, `07_재매칭_antigravity.md` 비교. |\n\n## 3. 기존 `06_갭분석.md` 보정 필요 항목\n\n| 기존 ID | 기존 판정 | AI 어시스턴트 재판정 | 근거 |\n|---|---|---|---|\n| R-04 매월 25일 배치 | 충족 | 부분 | `RecurringBatchService`는 `month_count`만큼 다음 달 1일 placeholder를 만든다. 회의 결정의 핵심은 \"자동 생성 후 사람이 날짜 선택\"인데, 날짜 선택/확정 전용 queue, status, 화면 동선이 없다. |\n| R-13 플랫 바 클릭 | 충족 | 부분 | `CalendarPage`의 schedule bar는 현재 `div` 표시만 있고 `/schedules`로 날짜/협력사 filter param을 넘기는 클릭 라우팅이 없다. |\n| R-14 날짜 클릭 | 충족 | 부분 | 날짜 숫자도 클릭 handler가 없다. Excel UI 명세의 \"날짜 클릭 -> 해당 일자 전체 리스트\" 인수조건 미충족. |\n| R-15 bulk 일정 변경/수거/삭제 | 충족 | 부분 | backend API는 있으나 `ScheduleListPage` 버튼이 mutation 없이 표시만 한다. 특히 \"수거완료 일정 변경 금지\" validation UI도 없다. |\n| R-16 동선 정렬 | 충족 | 부분 | `DailyWorkController sort=route`는 region/address 정렬이다. 회의록은 Google/Tmap 등 외부 내비 링크/전송을 요구한다. 자체 알고리즘은 낮은 우선순위여도 내비 handoff는 빠져 있다. |\n| R-20 작업자 1일 캘린더 | 부분 | 부분/정책충돌 | `DailyWorkPage`는 일/월 toggle을 제공한다. SOP 개선 요구에는 작업자 월간표가 있지만 PDF/회의 결정은 worker 1일 중심이다. role별 노출 정책 재확정 필요. |\n| R-21 작업자 1달 viewer | 충족 | 정책충돌 | SOP pain은 해결하지만, worker에게 월간 뷰를 노출하지 말라는 RBAC 방향과 충돌한다. \"작업자 본인 월간표\"를 Office/Admin 전용으로 둘지 결정 필요. |\n| R-22 5주차 보정 | 부분 | P0 부분 | 회의 결정상 자동 알고리즘보다 \"전 달 25일 생성 + 사람이 날짜 선택\"이 정답이다. 현재는 날짜 선택 workflow가 빠져 있어 5주차 문제를 운영 화면에서 닫을 수 없다. |\n| R-40 콘솔 매칭 + QR | 충족 | 부분 | 콘솔 1:N/QR 발행은 있으나 현장 스캔 시 기본 수량/물량 표시와 추가 수거 수량 입력이 누락됐다. |\n| R-50/R-51 증명서 | 충족/보류 | 부분/누락 | 5종 type과 `fee` 컬럼은 있으나 \"단가 노출 여부\" 제어 옵션이 없다. PDF 출력은 보류가 맞다. |\n| R-61 지점명 변경 잠금 | 초과 | 부분 | `BRANCH_RENAME` 권한과 `/branches/{id}/rename`은 있다. 단, 사업자등록증 첨부/요청/승인/OP 보고 같은 회의 맥락 절차는 없다. |\n| R-62 사용자 관리 | 부분 | P0 부분 | `App.tsx`의 `/admin`은 placeholder이고 user/member 관리 UI가 없다. Excel 메뉴의 \"사용자 상세에서 권한 관리\"도 미충족. |\n| R-70 담당자 변경 | 부분 | P0 부분 | `ScheduleService.reassign` 및 audit은 있으나 frontend mutation이 없다. 기존 gap의 \"백엔드 OK, UI 미연결\" 판단이 맞다. |\n| R-72 Excel 다운로드 | 충족 | 부분 | backend 다운로드는 있으나 Excel UI 명세의 필터 조건 유지, 일정 리스트 페이징, 이름/방문담당자/협력사 누락 방지에 대한 e2e evidence는 별도 필요. |\n\n## 4. 추가 누락/부분 요구사항 매트릭스\n\n| ID | 출처 | 요구사항 | 현재 매칭 | 판정 | 권고 |\n|---|---|---|---|---|---|\n| RC-01 | SOP 단계 11, 회의 원문 475~496 | 원콜 현장 카드결제/입금 결과 등록 및 미수 확인 | `contract`, `operation`, `schedule`에 결제/입금 상태 없음 | 누락 | MVP에서 최소 `payment_status`, `payment_method`, `paid_amount`, `paid_at`, `receivable_note`를 원콜 계약/작업 중 한 곳에 둔다. ERP 연동은 out이어도 SOP 내 기록은 필요하다. |\n| RC-02 | 회의 원문 2146 | 정기 계약/지점별 입금 등록과 비용 정산 | 외주 협력사, 계약, 증명서 fee만 존재 | 누락 | 6/30 MVP에서는 별도 정산 모듈 대신 `payment_record` 단순 테이블 또는 \"7월 scope\" 명시 필요. |\n| RC-03 | 회의 원문 1945~2005 | 파쇄증명서 단가 노출/숨김 제어 | `certificate.fee`만 있고 expose flag 없음 | 누락 | `certificate.show_fee` 또는 발급 요청 DTO 옵션 추가. 출력 layer 보류여도 스키마는 지금 잡는 편이 안전하다. |\n| RC-04 | 회의 원문 706, 요약 6 | 외부 내비게이션 링크 생성/전송 | region/address 정렬만 있음 | 누락 | 주소 기반 `navigation_url` 또는 좌표/URL 생성 utility를 DailyWork DTO에 추가. Google/Tmap/Kakao 중 기본값 결정 필요. |\n| RC-05 | 회의 원문 1291~1372, Excel 정기 상세 | 콘솔/물량 기본 수량 표시 및 현장 수량 조정 | `console_event.quantity_kg`만 존재 | 누락/확인필요 | \"콘솔 수량\"인지 \"추가 물량\"인지 용어 확정 후 `console_event`에 `quantity`, `unit`, `default_quantity_source` 추가 검토. |\n| RC-06 | Excel 일정 캘린더 rows 18~27, 61~67 | 캘린더 bar/date click -> 일정 리스트에 날짜/협력사/track 자동필터 | UI handler 없음 | 누락 | `CalendarPage`에서 `useNavigate('/schedules?...')`, `ScheduleListPage`에서 query param 초기화 구현. |\n| RC-07 | Excel 일정 캘린더 rows 54~56 | 일정 변경/일괄 수거/삭제 버튼 실제 mutation + 완료 일정 변경 금지 | 버튼만 존재 | 부분 | `bulk-status`, `bulk-cancel`, `bulk-reassign` 연결. 완료 일정 선택 시 in-app modal/inline validation. |\n| RC-08 | PDF acceptance, 회의 8 | 담당자 변경 명시 UI + 이력 로그 | backend/audit만 구현 | 부분 | 일정 리스트 및 DailyWork 카드에 reassign modal 연결. `changed_by`가 null이 되지 않도록 auth details 확인 테스트 추가. |\n| RC-09 | PDF acceptance, Excel 메뉴 | 사용자 관리/권한 관리 UI | `/admin` placeholder | 부분 | 6/30 MVP P0. 최소 member list, role assignment, status change. |\n| RC-10 | PDF/회의 9, 20260612 안건 | 지점명 변경 OP 전용 절차 | 권한 endpoint만 있음 | 부분/확인필요 | 사업자등록증 첨부 의무 여부가 6/12 안건. MVP default는 OP 직접 변경 + audit_log/notification 권고. |\n| RC-11 | SOP pain 2 vs PDF RBAC | 작업자 월간표를 어디에 둘지 | Worker `DailyWorkPage`에 월 toggle | 정책충돌 | \"작업자 앱은 일일만, Office/Admin은 작업자별 월간표\"가 가장 일관적. 현재 구현은 demo 편의라면 권한 gate 필요. |\n| RC-12 | 회의 요약 3~4 | 전 달 25일 batch 후 사람이 날짜 선택/확정 | placeholder만 생성 | 부분 | `schedule.status=DRAFT/PLANNED` 구분 또는 `needs_date_confirm` flag 필요. 날짜 미확정 placeholder가 운영 캘린더에 섞이지 않게 해야 한다. |\n| RC-13 | 회의 요약 10~11 | CRM은 유지, 쉬레드는 SOP 단일 운영, CRM-SOP 자동 이관 out | Out of Scope 표에만 있음 | 문서/운영 gap | 자동 개발 범위에서는 제외하되, 수동 이관 runbook과 누가 언제 입력하는지 운영 SOP 문서 필요. |\n| RC-14 | 20260612 안건 2-3, R-30 | OBS 협력사 차용 범위 | 단순 협력사 CRUD/색상 수준 | 부분/결정필요 | 6/30 MVP는 \"인터페이스만 차용\"으로 고정하고, 정산/배차/한계 관리는 7월 backlog로 분리. |\n\n## 5. 수용 테스트 재매칭\n\n| Acceptance | 요구 | 현재 evidence | 판정 | 보강 필요 |\n|---|---|---|---|---|\n| A-01 | Excel 정기 대량 업로드 시 상위 그룹 코드 + 지점 코드 정상 매핑 | `RecurringExcelImporter`, upload endpoint, 테스트 일부 | 부분 | 실제 Excel sample 기반 e2e와 duplicate/update 정책 검증 필요. |\n| A-02 | 매월 25일 배치로 다음 달 1달치 스케줄 누락 없이 생성 | `RecurringBatchService`, 수동 trigger | 부분 | 생성 수량은 가능. 하지만 날짜 확정 workflow 부재, placeholder가 모두 1일로 몰리는 UX 리스크. |\n| A-03 | 관리자 일/주/月 캘린더 + 지점명 변경 관리자 전용 | Calendar view switch, `BRANCH_RENAME` endpoint | 부분 | Calendar는 실제 day/week 렌더가 month query 중심이다. 지점명 변경 UI/절차/e2e 필요. |\n| A-04 | 작업자 일일 캘린더만 노출 + 담당자 변경 이력 로그 | DailyWork day view, audit service | 부분 | worker 월 toggle 정책 충돌, reassign UI 미연결, audit actor null 방지 테스트 필요. |\n\n## 6. P0/P1/P2 권고\n\n### P0: 6/30 MVP 전에 닫아야 할 항목\n\n1. `ScheduleListPage` bulk/reassign mutation 연결: 기존 backend가 있으므로 비용 대비 효과가 가장 크다.\n2. Calendar click routing: Excel UI 명세의 핵심 동선이다. 빠르게 닫을 수 있다.\n3. User management 최소 UI: `/admin` placeholder 제거. member list + role update만 있어도 충분하다.\n4. Recurring batch review workflow: 다음 달 1일 placeholder를 운영 캘린더와 구분하고 날짜 확정 화면을 둔다.\n5. Worker view policy 확정: worker는 day-only, Office/Admin은 worker monthly schedule viewer로 분리 권고.\n6. 원콜 payment record 최소 스키마: ERP 연동은 out이지만 현장 결제/입금 기록은 SOP flow 안에 필요하다.\n\n### P1: MVP 직후 7월 초\n\n1. Navigation URL generation: Google/Tmap/Kakao 중 1개 default + 주소 fallback.\n2. Certificate fee exposure option: PDF 출력 전 schema/DTO만 선반영.\n3. Console quantity/물량 용어 확정 및 event schema 보강.\n4. Branch rename audit/notification/request process.\n5. Acceptance A-01~A-04 Playwright/API evidence를 `docs/09_테스트`에 고정.\n\n### P2: 보류 명시로 충분\n\n1. QR 프린트 하드웨어 품질/코팅: 운영/영우님 협업 runbook만 필요.\n2. 정기 세발: 기존 결정대로 holding.\n3. CRM-SOP 자동 이관: out of scope. 수동 이관 SOP만 문서화.\n4. OBS 정산/배차 고도화: 6/30 MVP에서는 인터페이스 차용으로 한정.\n\n## 7. `06_갭분석.md` 수정 제안\n\n`06_갭분석.md`는 다음 한 줄 요약을 바꾸는 것이 맞다.\n\n기존:\n\n```text\n핵심: 누락 0건.\n```\n\n권고:\n\n```text\n핵심: 큰 도메인 축은 구축됐지만, 회의록/SOP 세부 요구 재매칭 결과 P0 부분 6건, 추가 누락 7건이 남아 있다. 6/30 MVP 전에는 Calendar routing, reassign/bulk UI, 사용자 관리 UI, recurring date-confirm workflow, 원콜 결제 기록 범위를 우선 닫는다.\n```\n\n## 8. 다음 액션\n\n1. 본 문서를 `06_갭분석.md`의 부속 재매칭 근거로 연결한다.\n2. `07_재매칭_antigravity.md`의 RE-01~RE-06은 유지하되, AI 어시스턴트 RC-01~RC-14와 중복되는 항목을 하나의 P0 backlog로 병합한다.\n3. 6/12 회의 안건에 다음 5개 질문을 추가한다.\n   - 작업자 월간표를 worker에게 노출할지, Office/Admin 전용으로 둘지\n   - 원콜 현장 결제/입금 기록을 MVP에 포함할지\n   - 외부 내비 기본 provider를 무엇으로 할지\n   - 증명서 단가 노출 옵션을 고객/계약별로 둘지\n   - 콘솔 수량 UI가 콘솔 개수인지, 추가 수거 물량인지\n4. MVP 작업 순서는 `Calendar routing -> reassign/bulk UI -> user management -> recurring review queue -> payment record`를 권고한다.\n","sourceHash":null,"archivedAt":"2026-06-10T09:36:20+09:00","archivedBy":"sync"}