{"id":"cmq4ppzde0009ml01rny5vv6p","docId":"cmq4p3x720069pl01dah3ew3t","version":1,"title":"마일스톤 v5 — 현재 상태 (2026-06-08)","content":"## 관련 페이지\n- 📐 요구사항 / 디자인 v5: https://shred.wellsa.ai/v5/\n- 🛠 운영 문서 허브(docsify): https://dev-shred.irosafe.com/docs/\n- 📝 QA 접수 (현재 페이지): https://miniqa.wellsa.ai/qa/board/irosafe-shred\n\n# 마일스톤 v5 · 현재 상태 (2026-06-08 KST)\n\n> 신규 구축 — Spring Boot 3.3 + Java 21 + React 18. MVP 2026-06-30 (D-22).\n> 외부 dev: **https://dev-shred.irosafe.com** · (로그인 필요)\n\n## 1. 한눈에\n\n| Phase | 상태 | 진행 | 핵심 |\n|---|---|---|---|\n| 0 분석/설계 | 완료 | 100% | baseline (유지) |\n| A 설계 재정의 | 완료 | 100% | ERD v0.5.1 / RBAC / 와이어프레임 W01~W08 React 변환 |\n| B 신규 스택 | 완료 | 100% | SB 3.3.5 · Java 21 · Flyway V1~V8 · Security 6 · JWT · SpringDoc |\n| C 핵심 도메인 | 완료 | 100% | RBAC · 계약(트랙 이원화) · 캘린더 · 협력사 · 콘솔/QR · 증명서 · 일일업무 · 코드마스터 |\n| D 자동화 | 완료 | 100% | 정기 25일 배치 · Excel ↑↓ · QR · 담당자 변경 · 주소검색 · ContractExpiryJob |\n| E 데이터 마이그 | 진행 | 90% | LegacyMigrationRunner + 운영 컬럼/C-code 매핑 완료. **dry-run 성공** (협력사 10/12, 계약 2849/2849, 지점 6867/6927). apply 결정 대기. |\n| F 안드로이드 | 보류 | 0% | 백엔드 안정화 후 |\n| G QA/릴리즈 | 진행 | 75% | Swagger 32 path ✓ · 단위 71 + 로컬 e2e 35 + 외부 e2e 35 = **141 PASS** · G3 운영자 수용/G4 컷오버/G5 안정화 잔여 |\n\n## 2. 산출물 (현재 시점)\n\n- **백엔드** `apps/backend` (Spring Boot 3.3.5 · Java 21 · Flyway V1~V8 · JPA + Envers)\n  - GitLab: gitlab.itsam.co.kr/irosafe/shred-backend (latest `f9e7249`)\n  - 라이브 jar: irosafe 노드 `/opt/shred/shred-backend.jar` (systemd `shred-backend.service`)\n- **프론트** `apps/frontend` (Vite 5 · React 18 · Tailwind 3 · Pretendard)\n  - GitLab: gitlab.itsam.co.kr/irosafe/shred-frontend (latest `51b12b2`)\n  - 라이브: nginx static `/var/www/shred/`\n- **데이터베이스** MariaDB 10.11 (`irosafe_shred`) · 노드 로컬\n- **외부 라이브** [https://dev-shred.irosafe.com](https://dev-shred.irosafe.com) · Cloudflare Tunnel · HTTPS\n- **API 문서** [/swagger-ui/index.html](https://dev-shred.irosafe.com/swagger-ui/index.html) · 32 path\n- **문서 허브** [/docs/](https://dev-shred.irosafe.com/docs/) · docsify\n\n## 3. 테스트 (141 PASS / 0 FAIL)\n\n| 종류 | 수 | 위치 |\n|---|---|---|\n| 단위 (Mockito) | 71 | `apps/backend/src/test/...` 9 클래스 |\n| Playwright (로컬) | 35 | `apps/frontend/e2e/` |\n| Playwright (외부 dev-shred) | 35 | 동일 spec, `PLAYWRIGHT_BASE_URL` env |\n| 통합 (Testcontainers) | 9 작성 | Docker 필요, 내부 호스트 runner 등록 후 자동 |\n| 수용 (Phase G3) | 4 시나리오 | 운영자 시연 대기 |\n\n상세: [02_테스트_체크리스트](02_테스트_체크리스트.md) · 결과서 `docs/09_테스트/테스트결과서_irosafe_shred.{xlsx,pptx}`\n\n## 4. 다음 액션 (P0 → P2)\n\n### P0 (운영자/사용자 결정 대기)\n- **Phase E apply** — dry-run 결과 검토 후 1회 실행. V4 데모 seed 정리 필요 여부 결정.\n- **G3 운영자 수용** — 시나리오 A-001 ~ A-004 시연.\n\n### P1 (코드/인프라)\n- Schedule reassign/bulk-cancel UI mutation 연결 (백엔드 endpoint 이미 존재)\n- DailyWork 사진 첨부 (S3 또는 로컬)\n- WORKER/OFFICE 권한별 메뉴 분기 (현재 ADMIN 전용 UI)\n- 사내 GitLab Runner 등록 → 통합테스트/e2e CI 자동\n- 갭분석 워커 결과 반영 (AI 어시스턴트 / antigravity)\n\n### P2 (마지막)\n- Phase F 안드로이드 (백엔드 컷오버 후)\n- G4 컷오버 (1472shred.co.kr 폐기 시점)\n- G5 안정화 1~2개월 모니터링\n\n## 5. 운영 인프라\n\n- 노드: irosafe (내부 호스트) · Ubuntu · 30Gi RAM · 566G free\n- Cloudflare Tunnel: `irocheck` → ingress `dev-shred.irosafe.com`\n- DNS zone: `irosafe.com` (Cloudflare 계정 등록)\n- 운영 ILSA DB: `system1472.sldb.iwinv.net:3306` · RO 계정 `shred_migrate_ro` 발급 완료 · 화이트리스트 등록 완료\n\n## 6. 변경 이력\n\n- 2026-06-08: Phase E dry-run 성공. 운영 컬럼 정정 push. 문서 재정리 (옛 계획 부분 제거).\n- 2026-06-07: 외부 dev-shred.irosafe.com 배포 + Cloudflare Tunnel.\n- 2026-06-06: Phase C8/D6 완료. 단위테스트 71 + e2e 35 PASS. 결과서 xlsx/pptx 산출.\n- 2026-06-05: v5 인풋 반영 (개발 요청 문서 + UI 명세 + Notion SOP). 마이그 → 신규 구축으로 큰 그림 재설정.\n","sourceHash":null,"archivedAt":"2026-06-08T13:30:18+09:00","archivedBy":"sync"}