From f3b07ac875014b522e6d0fd5b236f5f8823b6222 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EB=B3=91=EC=B2=A0?= Date: Mon, 9 Feb 2026 09:34:27 +0900 Subject: [PATCH] =?UTF-8?q?chore(WEB):=20claudedocs=20=EB=94=94=EB=A0=89?= =?UTF-8?q?=ED=86=A0=EB=A6=AC=20=EB=8F=84=EB=A9=94=EC=9D=B8=EB=B3=84=20?= =?UTF-8?q?=EC=9E=AC=EA=B5=AC=EC=A1=B0=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 루트 문서 30개를 도메인별 하위 폴더로 이동 - accounting/, architecture/, dev/, guides/, security/ 등 카테고리 분류 - archive/ 폴더에 QA 스크린샷 이동 - _index.md 문서 맵 업데이트 Co-Authored-By: Claude Opus 4.6 --- claudedocs/_index.md | 361 +++++++++++------- ...026-01-23] vendor-credit-analysis-modal.md | 0 .../[ANALYSIS-2026-01-20] 공통화-현황-분석.md | 0 ...SIS-2026-02-05] SAM-ERP-MES-정체성-분석.md | 0 ...6-02-05] list-page-commonization-status.md | 0 ...2026-01-21] input-form-componentization.md | 0 ...6-01-21] phase4-input-migration-rollout.md | 0 ...2026-02-05] detail-hooks-migration-plan.md | 0 ...026-02-05] formatter-commonization-plan.md | 0 ...MPL] IntegratedDetailTemplate-checklist.md | 0 ...AN-2026-01-22] ui-component-abstraction.md | 0 .../[REF] template-migration-status.md | 0 .../{ => archive}/qa-inbox-modal-test.png | Bin .../{ => archive}/qa-reference-modal-test.png | Bin ...-2026-01-29] typecheck-errors-checklist.md | 0 ...OTFIX-2026-01-27] E2E-테스트-수정계획서.md | 0 .../[IMPL-2026-01-23] full-page-inspection.md | 0 ...-2026-02-03] claude-config-optimization.md | 0 .../[ANALYSIS] common-component-patterns.md | 0 .../[FIX-2026-02-04] mobile-zoom-panning.md | 0 ... list-page-ui-standardization-checklist.md | 0 ...2026-01-23] button-navigation-checklist.md | 0 ...PL-2026-01-23] mode-migration-checklist.md | 0 ...6-01-23] mode-navigation-full-checklist.md | 0 ...6-02-06] datepicker-migration-checklist.md | 0 ...2025-01-21] document-system-integration.md | 0 ...-2025-01-21] document-system-inspection.md | 0 .../[REF] items-route-consolidation.md | 0 .../[DESIGN-2026-01-29] worker-screen-spec.md | 0 ...2-04] quality-audit-document-management.md | 0 ...25-02-06] useListHandlers-commonization.md | 97 +++++ ...-04] price-distribution-session-context.md | 0 ...01-20] permission-system-implementation.md | 0 ...2-03] permission-verification-checklist.md | 0 34 files changed, 327 insertions(+), 131 deletions(-) rename claudedocs/{ => accounting}/[PLAN-2026-01-23] vendor-credit-analysis-modal.md (100%) rename claudedocs/{ => architecture}/[ANALYSIS-2026-01-20] 공통화-현황-분석.md (100%) rename claudedocs/{ => architecture}/[ANALYSIS-2026-02-05] SAM-ERP-MES-정체성-분석.md (100%) rename claudedocs/{ => architecture}/[ANALYSIS-2026-02-05] list-page-commonization-status.md (100%) rename claudedocs/{ => architecture}/[IMPL-2026-01-21] input-form-componentization.md (100%) rename claudedocs/{ => architecture}/[IMPL-2026-01-21] phase4-input-migration-rollout.md (100%) rename claudedocs/{ => architecture}/[IMPL-2026-02-05] detail-hooks-migration-plan.md (100%) rename claudedocs/{ => architecture}/[IMPL-2026-02-05] formatter-commonization-plan.md (100%) rename claudedocs/{ => architecture}/[IMPL] IntegratedDetailTemplate-checklist.md (100%) rename claudedocs/{ => architecture}/[PLAN-2026-01-22] ui-component-abstraction.md (100%) rename claudedocs/{ => architecture}/[REF] template-migration-status.md (100%) rename claudedocs/{ => archive}/qa-inbox-modal-test.png (100%) rename claudedocs/{ => archive}/qa-reference-modal-test.png (100%) rename claudedocs/{ => dev}/[FIX-2026-01-29] typecheck-errors-checklist.md (100%) rename claudedocs/{ => dev}/[HOTFIX-2026-01-27] E2E-테스트-수정계획서.md (100%) rename claudedocs/{ => dev}/[IMPL-2026-01-23] full-page-inspection.md (100%) rename claudedocs/{ => dev}/[PLAN-2026-02-03] claude-config-optimization.md (100%) rename claudedocs/{ => guides}/[ANALYSIS] common-component-patterns.md (100%) rename claudedocs/{ => guides}/[FIX-2026-02-04] mobile-zoom-panning.md (100%) rename claudedocs/{ => guides}/[IMPL-2025-01-26] list-page-ui-standardization-checklist.md (100%) rename claudedocs/{ => guides}/[IMPL-2026-01-23] button-navigation-checklist.md (100%) rename claudedocs/{ => guides}/[IMPL-2026-01-23] mode-migration-checklist.md (100%) rename claudedocs/{ => guides}/[IMPL-2026-01-23] mode-navigation-full-checklist.md (100%) rename claudedocs/{ => guides}/[IMPL-2026-02-06] datepicker-migration-checklist.md (100%) rename claudedocs/{ => guides}/[PLAN-2025-01-21] document-system-integration.md (100%) rename claudedocs/{ => guides}/[QA-2025-01-21] document-system-inspection.md (100%) rename claudedocs/{ => item-master}/[REF] items-route-consolidation.md (100%) rename claudedocs/{ => production}/[DESIGN-2026-01-29] worker-screen-spec.md (100%) rename claudedocs/{ => quality}/[PLAN-2026-02-04] quality-audit-document-management.md (100%) create mode 100644 claudedocs/refactoring/[REF-2025-02-06] useListHandlers-commonization.md rename claudedocs/{ => sales}/[NEXT-2026-02-04] price-distribution-session-context.md (100%) rename claudedocs/{ => security}/[PLAN-2025-01-20] permission-system-implementation.md (100%) rename claudedocs/{ => security}/[QA-2026-02-03] permission-verification-checklist.md (100%) diff --git a/claudedocs/_index.md b/claudedocs/_index.md index e73069c7..24b283a7 100644 --- a/claudedocs/_index.md +++ b/claudedocs/_index.md @@ -1,12 +1,12 @@ # claudedocs 문서 맵 -> 프로젝트 기술 문서 인덱스 (Last Updated: 2026-01-29) +> 프로젝트 기술 문서 인덱스 (Last Updated: 2026-02-06) -## ⭐ 빠른 참조 +## 빠른 참조 | 문서 | 설명 | |------|------| -| **[`[REF] all-pages-test-urls.md`](./[REF]%20all-pages-test-urls.md)** | 🔗 **전체 페이지 테스트 URL 목록** - 모든 페이지 직접 접근 주소 | +| **[`[REF] all-pages-test-urls.md`](./dev/[REF]%20all-pages-test-urls.md)** | 전체 페이지 테스트 URL 목록 | --- @@ -14,33 +14,40 @@ ``` claudedocs/ -├── _index.md # 이 파일 - 문서 맵 -├── auth/ # 🔐 인증 & 토큰 관리 -├── hr/ # 👥 인사관리 (부서/사원) -├── item-master/ # 📦 품목기준관리 -├── production/ # 🏭 생산관리 (생산현황판/작업지시) -├── quality/ # 🔬 품질관리 (검사관리) -├── sales/ # 💰 판매관리 (견적/거래처) -├── accounting/ # 💳 회계관리 (매입/매출/출금) -├── board/ # 📝 게시판 관리 -├── settings/ # ⚙️ 설정 관리 -├── dashboard/ # 📊 대시보드 & 사이드바 -├── api/ # 🔌 API 통합 -├── guides/ # 📚 범용 가이드 -├── architecture/ # 🏗️ 아키텍처 & 시스템 -├── juil/ # 🏗️ 주일 공사 MES (NEW) -└── archive/ # 📁 레거시/완료된 문서 +├── _index.md # 이 파일 - 문서 맵 +├── auth/ # 인증 & 토큰 관리 +├── hr/ # 인사관리 (부서/사원) +├── item-master/ # 품목기준관리 +├── production/ # 생산관리 (생산현황판/작업자화면) +├── quality/ # 품질관리 (검사관리) +├── sales/ # 판매관리 (견적/거래처/단가) +├── accounting/ # 회계관리 (매입/매출/출금) +├── construction/ # 주일 공사 MES +├── board/ # 게시판 관리 +├── settings/ # 설정 관리 +├── dashboard/ # 대시보드 & 사이드바 +├── security/ # 보안 & 권한 +├── api/ # API 통합 +├── dev/ # 개발도구 & 테스트 +├── guides/ # 범용 가이드 +├── architecture/ # 아키텍처 & 시스템 +├── changes/ # 변경이력 +├── vehicle/ # 차량관리 +├── material/ # 자재관리 +├── approval/ # 결재관리 +├── customer-center/ # 고객센터 +└── archive/ # 레거시/완료된 문서 ``` --- -## 🔐 auth/ - 인증 & 토큰 관리 +## 인증 & 토큰 관리 — `auth/` | 파일 | 설명 | |------|------| -| `[IMPL-2025-12-30] token-refresh-caching.md` | 🔴 **NEW** - 토큰 갱신 캐싱 구현 (동시 요청 충돌 해결, Request Coalescing 패턴) | -| `[IMPL-2025-12-04] signup-page-blocking.md` | ✅ **완료** - MVP 회원가입 페이지 차단 (운영 페이지 이동 예정) | -| `token-management-guide.md` | ⭐ **핵심** - Access/Refresh Token 완전 가이드 | +| `[IMPL-2025-12-30] token-refresh-caching.md` | 토큰 갱신 캐싱 구현 (Request Coalescing 패턴) | +| `[IMPL-2025-12-04] signup-page-blocking.md` | MVP 회원가입 페이지 차단 | +| `token-management-guide.md` | Access/Refresh Token 가이드 | | `jwt-cookie-authentication-final.md` | JWT + HttpOnly Cookie 구현 | | `auth-guard-usage.md` | AuthGuard 훅 사용법 | | `route-protection-architecture.md` | 라우트 보호 아키텍처 | @@ -53,85 +60,124 @@ claudedocs/ --- -## 👥 hr/ - 인사관리 (부서/사원/근태/휴가) +## 인사관리 — `hr/` | 파일 | 설명 | |------|------| -| `[IMPL-2025-12-16] mobile-attendance.md` | 🔴 **NEW** - 모바일 출퇴근 시스템 (카카오맵 GPS 기반, MVP) | -| `[IMPL-2025-12-05] department-management-checklist.md` | ✅ **완료** - 부서관리 구현 체크리스트 (무제한 트리구조) | -| `[IMPL-2025-12-05] employee-management-checklist.md` | ✅ **완료** - 사원관리 구현 체크리스트 | -| `[IMPL-2025-12-06] vacation-management-checklist.md` | ✅ **완료** - 휴가관리 구현 체크리스트 | +| `[IMPL-2025-12-16] mobile-attendance.md` | 모바일 출퇴근 시스템 (카카오맵 GPS) | +| `[IMPL-2025-12-05] department-management-checklist.md` | 부서관리 구현 체크리스트 | +| `[IMPL-2025-12-05] employee-management-checklist.md` | 사원관리 구현 체크리스트 | +| `[IMPL-2025-12-06] vacation-management-checklist.md` | 휴가관리 구현 체크리스트 | --- -## 📦 item-master/ - 품목기준관리 +## 품목기준관리 — `item-master/` | 파일 | 설명 | |------|------| -| `[PLAN-2025-12-16] dynamicitemform-hook-extraction.md` | 🔴 **NEW** - DynamicItemForm 훅 분리 계획서 (2161줄 → 900줄 목표, 6 Phase) | -| `[FIX-2025-12-16] options-details-duplicate-bug.md` | options vs item_details 중복 저장 버그 (bending_details 값 덮어쓰기 문제 해결) | -| `[IMPL-2025-12-15] backend-item-api-migration.md` | 백엔드 품목 API 통합 (product/material → items), group_id 파라미터, **향후 동적 변경 예정** | -| `[NEXT-2025-12-13] item-file-upload-session-context.md` | ⭐ **세션 체크포인트** - 파일 업로드 UI 개선 완료, 백엔드 대기 중, DynamicItemForm 분리 예정 | -| `[NEXT-2025-12-12] item-crud-session-context.md` | 📁 이전 세션 - BOM/파일 연동 완료, 파일 업로드 동적화 작업 추가 | -| `[DESIGN-2025-12-12] item-master-form-builder-roadmap.md` | 🆕 **로드맵** - Low-Code Form Builder 확장 설계 (노션 스타일 블록 시스템) | -| `[PLAN-2025-12-08] dynamic-form-separation-plan.md` | 📋 DynamicItemForm 품목별 분리 계획 (Phase 2: 컴포넌트 구조 설계) | -| `[REF] item-code-hardcoding.md` | ⭐ **핵심** - 품목관리 하드코딩 내역 종합 (품목유형/코드자동생성/전개도/BOM) | -| `[IMPL-2025-12-02] item-code-auto-generation.md` | 품목코드 자동생성 구현 상세 | -| `[PLAN-2025-12-01] service-layer-refactoring.md` | ✅ **완료** - 서비스 레이어 리팩토링 계획 (도메인 로직 중앙화) | -| `[REF-2025-12-01] state-sync-solutions.md` | 📋 **참조** - 상태 동기화 문제 및 해결 방안 (정규화, React Query 등) | -| `[PLAN-2025-11-28] dynamic-item-form-implementation.md` | ⚠️ **롤백됨** - 이전 구현 계획 (참조용) | -| `[IMPL-2025-12-02] dynamic-item-form-rebuild.md` | 🔄 **진행중** - 품목관리 동적 페이지 재구현 (디자인 100% 동일 유지) | -| `[API-REQUEST-2025-11-28] dynamic-page-rendering-api.md` | ⭐ **v3.1** - 동적 페이지 렌더링 API 요청서 (ID 기반 통일) | -| `[PLAN-2025-11-27] item-form-component-separation.md` | ✅ **완료** - ItemForm 컴포넌트 분리 (1607→415줄, 74% 감소) | -| `[IMPL-2025-11-27] realtime-sync-fixes.md` | 실시간 동기화 수정 (BOM, 섹션 복제, 항목 수정, **페이지 삭제 시 섹션 동기화** 2025-11-28) | -| `item-master-api-pending-tasks.md` | 진행중인 API 연동 작업 | -| `item-master-pending-integration.md` | 대기중인 통합 작업 | -| `item-master-specification.md` | API 명세 | -| `item-master-backend-requirements.md` | 백엔드 요구사항 | -| `item-management-dynamic-api-spec.md` | 동적 필드 API 스펙 | -| `item-management-dynamic-frontend.md` | 동적 필드 프론트엔드 설계 | -| `item-master-data-management.md` | 데이터 관리 분석 | -| `item-master-hooks-refactoring.md` | Hooks 리팩토링 | -| `ITEM-MANAGEMENT-MIGRATION.md` | 마이그레이션 가이드 | +| `[PLAN-2025-12-16] dynamicitemform-hook-extraction.md` | DynamicItemForm 훅 분리 계획서 | +| `[FIX-2025-12-16] options-details-duplicate-bug.md` | options vs item_details 중복 저장 버그 | +| `[IMPL-2025-12-15] backend-item-api-migration.md` | 백엔드 품목 API 통합 | +| `[DESIGN-2025-12-12] item-master-form-builder-roadmap.md` | Low-Code Form Builder 로드맵 | +| `[PLAN-2025-12-08] dynamic-form-separation-plan.md` | DynamicItemForm 품목별 분리 계획 | +| `[REF] item-code-hardcoding.md` | 품목관리 하드코딩 내역 종합 | +| `[REF] items-route-consolidation.md` | 품목 라우트 통합 | +| `[IMPL-2025-12-02] item-code-auto-generation.md` | 품목코드 자동생성 구현 | +| `[PLAN-2025-12-01] service-layer-refactoring.md` | 서비스 레이어 리팩토링 계획 | +| `[REF-2025-12-01] state-sync-solutions.md` | 상태 동기화 문제 및 해결 방안 | +| `[IMPL-2025-12-02] dynamic-item-form-rebuild.md` | 동적 페이지 재구현 | +| `[API-REQUEST-2025-11-28] dynamic-page-rendering-api.md` | 동적 페이지 렌더링 API 요청서 | +| `[PLAN-2025-11-27] item-form-component-separation.md` | ItemForm 컴포넌트 분리 | +| `[IMPL-2025-11-27] realtime-sync-fixes.md` | 실시간 동기화 수정 | +| `[IMPL-2026-01-09] item-management-api-integration.md` | 품목관리 API 연동 | +| `NEXT-*.md` | 세션 체크포인트 (다수) | +| `API-*.md` | API 명세/요청 (다수) | +| `ANALYSIS-*.md` | 분석 노트 (다수) | --- -## 🏭 production/ - 생산관리 (생산현황판/작업지시) +## 생산관리 — `production/` | 파일 | 설명 | |------|------| -| `[IMPL-2025-12-22] production-dashboard-checklist.md` | 🔴 **NEW** - 생산 현황판 구현 체크리스트 (메인/작업자화면, 8 Phase) | +| `[IMPL-2025-12-22] production-dashboard-checklist.md` | 생산 현황판 구현 체크리스트 (8 Phase) | +| `[DESIGN-2026-01-29] worker-screen-spec.md` | 작업자 화면 설계 스펙 | +| `[NEXT-2025-12-22] production-session-context.md` | 세션 체크포인트 | --- -## 🔬 quality/ - 품질관리 (검사관리) +## 품질관리 — `quality/` | 파일 | 설명 | |------|------| -| `[IMPL-2025-12-23] inspection-management-checklist.md` | 🔴 **NEW** - 검사관리 구현 체크리스트 (리스트/등록/상세/수정, 7 Phase) | +| `[IMPL-2025-12-23] inspection-management-checklist.md` | 검사관리 구현 체크리스트 (7 Phase) | +| `[PLAN-2026-02-02] document-viewer-architecture.md` | 문서 뷰어 아키텍처 | +| `[PLAN-2026-02-04] quality-audit-document-management.md` | 품질심사 문서관리 | --- -## 💰 sales/ - 판매관리 (견적/거래처/단가) +## 판매관리 — `sales/` | 파일 | 설명 | |------|------| -| `[API-2025-12-08] pricing-api-enhancement-request.md` | 🔴 **NEW** - 단가관리 백엔드 API 개선 요청서 (스키마 변경, 신규 엔드포인트) | -| `[IMPL-2025-12-05] pricing-management-migration.md` | 🔄 **진행중** - 단가관리 마이그레이션 계획 (7 Phase, 체크리스트, 원가/마진 계산 로직) | -| `[API-2025-12-04] quote-api-request.md` | ⭐ **NEW** - 견적관리 API 요청서 (데이터 모델, 엔드포인트, 수식 계산) | -| `[PLAN-2025-12-04] quote-management-implementation.md` | 📋 **NEW** - 견적관리 작업계획서 (6 Phase, 체크리스트) | -| `[NEXT-2025-12-09] client-session-context.md` | ⭐ **세션 체크포인트** - 다음 세션 이어하기용 (완료/숨긴 섹션/다음 작업) | -| `[IMPL-2025-12-04] client-management-api-integration.md` | ✅ **완료** - 거래처관리 API 연동 체크리스트 (CRUD, 그룹 훅) | -| `[API-2025-12-04] client-api-analysis.md` | ✅ **완료** - 거래처 API 분석 (2차 필드 완료, is_active Boolean) | -| `[PLAN-2025-12-02] sales-pages-migration.md` | 📋 견적관리/거래처관리 마이그레이션 계획 | +| `[API-2025-12-08] pricing-api-enhancement-request.md` | 단가관리 API 개선 요청서 | +| `[IMPL-2025-12-05] pricing-management-migration.md` | 단가관리 마이그레이션 | +| `[API-2025-12-04] quote-api-request.md` | 견적관리 API 요청서 | +| `[PLAN-2025-12-04] quote-management-implementation.md` | 견적관리 작업계획서 | +| `[IMPL-2025-12-04] client-management-api-integration.md` | 거래처관리 API 연동 | +| `[API-2025-12-04] client-api-analysis.md` | 거래처 API 분석 | +| `[PLAN-2025-12-02] sales-pages-migration.md` | 판매 페이지 마이그레이션 | +| `[IMPL-2025-12-22] order-management-sales.md` | 수주관리 | +| `[IMPL-2026-01-12] quote-v2-test-pages-checklist.md` | 견적 v2 테스트 페이지 | +| `[IMPL-2025-12-09] pricing-api-integration-checklist.md` | 단가 API 연동 체크리스트 | +| `[NEXT-2026-02-04] price-distribution-session-context.md` | 단가배포 세션 체크포인트 | +| `[NEXT-2025-12-09] client-session-context.md` | 거래처 세션 체크포인트 | --- -## 📊 dashboard/ - 대시보드 & 사이드바 +## 회계관리 — `accounting/` | 파일 | 설명 | |------|------| -| `[IMPL-2026-01-07] ceo-dashboard-checklist.md` | 🔴 **NEW** - 대표님 전용 대시보드 구현 체크리스트 (11개 섹션, 달력 포함) | +| `[IMPL-2025-12-18] vendor-management-checklist.md` | 거래처관리 구현 체크리스트 | +| `[IMPL-2025-12-18] purchase-management.md` | 매입관리 페이지 구현 | +| `[IMPL-2025-12-18] bill-management.md` | 어음관리 | +| `[IMPL-2025-12-18] expected-expense-checklist.md` | 지출예정 체크리스트 | +| `[IMPL-2025-12-18] receivables-status.md` | 미수금 현황 | +| `[IMPL-2025-12-18] vendor-ledger.md` | 거래처원장 | +| `[IMPL-2025-12-18] withdrawal-management-checklist.md` | 출금관리 체크리스트 | +| `[IMPL-2025-12-19] bad-debt-collection-management.md` | 부실채권 관리 | +| `[IMPL-2025-12-19] card-transaction-inquiry.md` | 카드거래 조회 | +| `[PLAN-2025-12-18] sales-management.md` | 매출관리 계획 | +| `[PLAN-2025-12-19] bank-account-transaction-inquiry.md` | 은행거래 조회 계획 | +| `[PLAN-2026-01-23] vendor-credit-analysis-modal.md` | 거래처 여신분석 모달 | + +--- + +## 주일 공사 MES — `construction/` + +| 파일 | 설명 | +|------|------| +| `[IMPL-2026-01-05] item-management-checklist.md` | 품목관리 구현 체크리스트 | +| `[IMPL-2026-01-05] category-management-checklist.md` | 카테고리관리 구현 체크리스트 | +| `[IMPL-2026-01-05] pricing-management-checklist.md` | 단가관리 구현 체크리스트 | +| `[IMPL-2026-01-09] partner-management-api-integration.md` | 거래처관리 API 연동 | +| `[IMPL-2026-01-09] site-management-api-integration.md` | 현장관리 API 연동 | +| `[IMPL-2026-01-12] project-detail-checklist.md` | 프로젝트 상세 체크리스트 | +| `[PLAN-2026-01-05] order-management-implementation.md` | 발주관리 구현 계획 | +| `[PLAN-2026-01-02] estimate-detail-form-refactoring.md` | 견적상세 폼 리팩토링 | +| `[PLAN-2026-01-05] order-detail-form-separation.md` | 발주상세 폼 분리 | +| `[REF] construction-project-flow.md` | 프로젝트 플로우 | +| `[REF] juil-project-structure.md` | 프로젝트 구조 가이드 | +| `[NEXT-2025-12-30] partner-management-session-context.md` | 세션 체크포인트 | + +--- + +## 대시보드 & 사이드바 — `dashboard/` + +| 파일 | 설명 | +|------|------| +| `[IMPL-2026-01-07] ceo-dashboard-checklist.md` | 대표님 전용 대시보드 (11개 섹션) | | `dashboard-integration-complete.md` | 대시보드 통합 완료 | | `dashboard-cleanup-summary.md` | 정리 요약 | | `dashboard-migration-summary.md` | 마이그레이션 요약 | @@ -140,7 +186,18 @@ claudedocs/ --- -## 🔌 api/ - API 통합 +## 보안 & 권한 — `security/` + +| 파일 | 설명 | +|------|------| +| `[PLAN-2025-01-20] permission-system-implementation.md` | 권한 시스템 구현 계획 | +| `[QA-2026-02-03] permission-verification-checklist.md` | 권한 검증 체크리스트 | +| `[PLAN-2025-12-12] tenant-data-isolation-implementation.md` | 테넌트 데이터 격리 구현 | +| `[SECURITY-2025-12-12] tenant-data-isolation-audit.md` | 테넌트 데이터 격리 감사 | + +--- + +## API 통합 — `api/` | 파일 | 설명 | |------|------| @@ -151,93 +208,136 @@ claudedocs/ --- -## 📚 guides/ - 범용 가이드 +## 개발도구 & 테스트 — `dev/` | 파일 | 설명 | |------|------| -| `[REF-2026-01-07] nextjs-security-update-and-migration-plan.md` | 🔴 **NEW** - Next.js 보안 업데이트 (15.5.9) 및 16 마이그레이션 계획 | -| `[DESIGN-2026-01-02] document-modal-common-component.md` | 문서 모달 공통 컴포넌트 설계 요구사항 (6개 모달 분석, 헤더/결재라인/테이블 조합형) | -| `[GUIDE] print-area-utility.md` | 인쇄 모달 printArea 유틸리티 가이드 (8개 모달 적용, print-utils.ts) | -| `[GUIDE-2025-12-29] vercel-deployment.md` | Vercel 배포 가이드 (환경변수, CORS, 테스트 체크리스트) | -| `[PLAN-2025-12-23] common-component-extraction-plan.md` | 공통 컴포넌트 추출 계획서 (Phase 1-4, 체크리스트 포함, ~1,900줄 절감) | -| `[ANALYSIS-2025-12-23] common-component-extraction-candidates.md` | 📋 공통 컴포넌트 추출 후보 분석 (다이얼로그 102개 중복, ~2,370줄 절감 예상) | -| `[PLAN-2025-12-19] project-health-improvement.md` | ✅ **Phase 1 완료** - 프로젝트 헬스 개선 계획서 (타입에러 0개, API키 보안, SSR 수정) | -| `[PLAN-2025-12-19] page-layout-standardization.md` | 🔴 **NEW** - 페이지 레이아웃 표준화 계획 | -| `[GUIDE-2025-12-16] options-vs-flattened-data.md` | options vs 평탄화 데이터 패턴 (API 응답 매핑 시 options 직접 파싱 금지) | -| `[GUIDE] large-file-handling-strategy.md` | 대용량 파일 처리 전략 (100MB+ CAD 도면, 청크 업로드, 스트리밍 다운로드) | -| `[FIX-2025-12-05] radix-ui-select-controlled-mode-bug.md` | ⭐ **핵심** - Radix UI Select 버그 해결 (Edit 모드 값 표시 안됨 → key prop 강제 리마운트) | -| `i18n-usage-guide.md` | 다국어 사용 가이드 | -| `form-validation-guide.md` | 폼 유효성 검사 | -| `CSS-MIGRATION-WORKFLOW.md` | CSS 마이그레이션 워크플로우 | -| `LARGE-FILE-WORKFLOW.md` | 대용량 파일 작업 워크플로우 | -| `ZOD-VALIDATION-TROUBLESHOOTING.md` | Zod 유효성 검사 트러블슈팅 | -| `nextjs-error-handling-guide.md` | Next.js 에러 처리 | +| `[REF] all-pages-test-urls.md` | 전체 페이지 테스트 URL 목록 | +| `[REF] construction-pages-test-urls.md` | 주일 페이지 테스트 URL | +| `[REF] page-builder-implementation.md` | 페이지 빌더 구현 참조 | +| `[REF] chrome-devtools-mcp-emoji-issue.md` | Chrome DevTools MCP 이모지 이슈 | +| `[PLAN] detail-page-pattern-classification.md` | 상세페이지 패턴 분류 | +| `[PLAN-2026-02-03] claude-config-optimization.md` | Claude 설정 최적화 | +| `[IMPL-2025-12-29] quality-inspection-checklist.md` | 품질검사 체크리스트 | +| `[IMPL-2026-01-23] full-page-inspection.md` | 전체 페이지 검사 | +| `[FIX-2026-01-29] typecheck-errors-checklist.md` | 타입체크 에러 체크리스트 | +| `[HOTFIX-2026-01-27] E2E-테스트-수정계획서.md` | E2E 테스트 수정 계획서 | --- -## 🏗️ architecture/ - 아키텍처 & 시스템 +## 범용 가이드 — `guides/` | 파일 | 설명 | |------|------| -| `[PLAN-2026-02-06] refactoring-roadmap.md` | 🔴 **NEW** - 리팩토링 종합 로드맵 (5 Phase, 공통훅~성능최적화, **전부 프론트 단독**) | -| `[PLAN-2026-02-06] multi-tenancy-optimization-roadmap.md` | 🔴 **NEW** - 멀티테넌시 공통화/최적화 종합 로드맵 (8 Phase, API 테넌트 주입~라우팅) | -| `[FIX-2026-01-29] masterdata-cache-tenant-isolation.md` | masterDataStore 캐시 테넌트 격리 수정 (page_config 키에 tenantId 추가, dead code 해소) | -| `[PLAN-2025-12-29] dynamic-menu-refresh.md` | 동적 메뉴 갱신 시스템 (1단계: 폴링, 2단계: SSE) | -| `multi-tenancy-implementation.md` | ✅ **Phase 1-2 완료** - 초기 멀티테넌시 구현 (AuthContext, TenantAwareCache) | -| `multi-tenancy-test-guide.md` | 멀티테넌시 캐시 격리 테스트 가이드 | -| `architecture-integration-risks.md` | 통합 리스크 | -| `browser-support-policy.md` | 브라우저 지원 정책 | -| `ssr-hydration-fix.md` | SSR 하이드레이션 수정 | +| **UI 컴포넌트** | | +| `[DESIGN-2026-01-14] universal-list-component.md` | UniversalListPage 설계 | +| `[IMPL-2026-01-14] universal-list-component-checklist.md` | UniversalListPage 구현 체크리스트 | +| `[PLAN] universal-detail-component.md` | UniversalDetail 컴포넌트 계획 | +| `[REF] UniversalListPage-QA-patterns.md` | UniversalListPage QA 패턴 | +| `UniversalListPage-검색기능-수정내역.md` | 검색 기능 수정 내역 | +| `UniversalListPage-검색리렌더링-해결가이드.md` | 검색 리렌더링 해결 | +| `[DESIGN-2026-01-02] document-modal-common-component.md` | 문서 모달 공통 컴포넌트 | +| `badge-commonization-guide.md` | 배지 공통화 가이드 | +| **공통화 & 마이그레이션** | | +| `[ANALYSIS-2025-12-23] common-component-extraction-candidates.md` | 공통 컴포넌트 추출 후보 분석 | +| `[ANALYSIS] common-component-patterns.md` | 공통 컴포넌트 패턴 | +| `[PLAN-2025-12-23] common-component-extraction-plan.md` | 공통 컴포넌트 추출 계획 | +| `[IMPL-2025-01-26] list-page-ui-standardization-checklist.md` | 리스트 페이지 UI 표준화 | +| `[IMPL-2026-01-23] button-navigation-checklist.md` | 버튼 네비게이션 체크리스트 | +| `[IMPL-2026-01-23] mode-migration-checklist.md` | 모드 마이그레이션 체크리스트 | +| `[IMPL-2026-01-23] mode-navigation-full-checklist.md` | 모드 네비게이션 전체 체크리스트 | +| `[IMPL-2026-01-21] utility-input-migration-checklist.md` | 유틸리티 입력 마이그레이션 | +| `[IMPL-2026-02-06] datepicker-migration-checklist.md` | DatePicker 마이그레이션 | +| `[REF-2026-01-09] server-to-client-component-migration-checklist.md` | Server→Client 마이그레이션 | +| **모바일** | | +| `[GUIDE] mobile-responsive-patterns.md` | 모바일 반응형 패턴 | +| `[IMPL-2026-01-13] mobile-filter-migration-checklist.md` | 모바일 필터 마이그레이션 | +| `[PLAN-2026-01-20] mobile-card-infinity-scroll.md` | 모바일 카드 무한스크롤 | +| `[PLAN] mobile-overflow-testing.md` | 모바일 오버플로우 테스트 | +| `[QA-2026-01-21] mobile-infinity-scroll-inspection.md` | 모바일 무한스크롤 검사 | +| `[REF] mobile-zoom-fix-guide.md` | 모바일 줌 수정 가이드 | +| `[REF] mobile-zoom-prevention-guide.md` | 모바일 줌 방지 가이드 | +| `[FIX-2026-02-04] mobile-zoom-panning.md` | 모바일 줌 패닝 수정 | +| `[GUIDE] foldable-device-layout-fix.md` | 폴더블 기기 레이아웃 | +| **프로젝트 헬스 & 문서 시스템** | | +| `[PLAN-2025-12-19] project-health-improvement.md` | 프로젝트 헬스 개선 계획 | +| `[PLAN-2025-12-19] page-layout-standardization.md` | 페이지 레이아웃 표준화 | +| `[PLAN-2025-01-21] document-system-integration.md` | 문서 시스템 통합 | +| `[QA-2025-01-21] document-system-inspection.md` | 문서 시스템 검사 | +| `[QA-2026-01-15] universal-list-page-inspection.md` | UniversalListPage 검사 | +| **기술 가이드** | | +| `[GUIDE] print-area-utility.md` | 인쇄 printArea 유틸리티 | +| `[GUIDE-2025-12-29] vercel-deployment.md` | Vercel 배포 가이드 | +| `[GUIDE-2025-12-16] options-vs-flattened-data.md` | options vs 평탄화 데이터 패턴 | +| `[GUIDE] large-file-handling-strategy.md` | 대용량 파일 처리 전략 | +| `[FIX-2025-12-05] radix-ui-select-controlled-mode-bug.md` | Radix UI Select 버그 해결 | +| `[GUIDE] CSS-MIGRATION-WORKFLOW.md` | CSS 마이그레이션 워크플로우 | +| `[GUIDE] LARGE-FILE-WORKFLOW.md` | 대용량 파일 작업 워크플로우 | +| `[GUIDE] ZOD-VALIDATION-TROUBLESHOOTING.md` | Zod 유효성 검사 트러블슈팅 | +| `[REF] nextjs-error-handling-guide.md` | Next.js 에러 처리 | +| `[REF-2026-01-07] nextjs-security-update-and-migration-plan.md` | Next.js 보안 업데이트 계획 | +| `[GUIDE] collaboration-with-claude.md` | Claude 협업 가이드 | +| `[IMPL-2025-11-06] i18n-usage-guide.md` | 다국어 사용 가이드 | +| `[IMPL-2025-11-07] form-validation-guide.md` | 폼 유효성 검사 | +| `[IMPL-2026-01-05] stat-cards-grid-layout.md` | 스탯 카드 그리드 레이아웃 | +| `[NEXT-2026-01-14] UniversalListPage-pilot-session-context.md` | 세션 체크포인트 | --- -## 💳 accounting/ - 회계관리 (거래처/매입/매출/출금) +## 아키텍처 & 시스템 — `architecture/` | 파일 | 설명 | |------|------| -| `[IMPL-2025-12-18] vendor-management-checklist.md` | 🔴 **NEW** - 거래처관리 구현 체크리스트 (리스트 + 상세 페이지) | -| `[IMPL-2025-12-18] purchase-management.md` | 매입관리 페이지 구현 (리스트 + 상세 모달) | +| **리팩토링 로드맵** | | +| `[PLAN-2026-02-06] refactoring-roadmap.md` | 리팩토링 종합 로드맵 (5 Phase) | +| `[PLAN-2026-02-06] multi-tenancy-optimization-roadmap.md` | 멀티테넌시 최적화 로드맵 (8 Phase) | +| **공통화 & 마이그레이션 분석** | | +| `[ANALYSIS-2026-01-20] 공통화-현황-분석.md` | 공통화 현황 분석 | +| `[ANALYSIS-2026-02-05] SAM-ERP-MES-정체성-분석.md` | SAM ERP/MES 정체성 분석 | +| `[ANALYSIS-2026-02-05] list-page-commonization-status.md` | 리스트 페이지 공통화 현황 | +| **컴포넌트 아키텍처** | | +| `[PLAN-2026-01-22] ui-component-abstraction.md` | UI 컴포넌트 추상화 | +| `[IMPL-2026-01-21] input-form-componentization.md` | 입력폼 컴포넌트화 | +| `[IMPL-2026-01-21] phase4-input-migration-rollout.md` | Phase 4 입력 마이그레이션 | +| `[IMPL-2026-02-05] detail-hooks-migration-plan.md` | 상세 훅 마이그레이션 | +| `[IMPL-2026-02-05] formatter-commonization-plan.md` | formatter 공통화 계획 | +| `[IMPL] IntegratedDetailTemplate-checklist.md` | 통합 상세 템플릿 체크리스트 | +| `[REF] template-migration-status.md` | 템플릿 마이그레이션 현황 | +| **시스템 설계** | | +| `[PLAN-2026-01-16] layout-restructure.md` | 레이아웃 구조 변경 | +| `[PLAN-2025-12-29] dynamic-menu-refresh.md` | 동적 메뉴 갱신 시스템 | +| `[FIX-2026-01-29] masterdata-cache-tenant-isolation.md` | masterData 캐시 테넌트 격리 | +| `[DESIGN-2025-12-20] item-master-zustand-refactoring.md` | Zustand 리팩토링 설계 | +| `[REF-2025-11-19] multi-tenancy-implementation.md` | 멀티테넌시 구현 | +| `[TEST-2025-11-19] multi-tenancy-test-guide.md` | 멀티테넌시 테스트 가이드 | +| `[IMPL-2025-11-13] browser-support-policy.md` | 브라우저 지원 정책 | +| `[IMPL-2025-11-18] ssr-hydration-fix.md` | SSR 하이드레이션 수정 | +| `[REF] architecture-integration-risks.md` | 통합 리스크 | +| `[NEXT-2025-12-20] zustand-refactoring-session-context.md` | 세션 체크포인트 | --- -## 📝 board/ - 게시판 관리 +## 게시판 관리 — `board/` | 파일 | 설명 | |------|------| -| `[PLAN-2025-12-19] board-management-implementation.md` | 🔴 **NEW** - 게시판 구현 계획서 (리스트/등록/상세/댓글, TipTap 에디터) | +| `[PLAN-2025-12-19] board-management-implementation.md` | 게시판 구현 계획서 | --- -## ⚙️ settings/ - 설정 관리 +## 설정 관리 — `settings/` | 파일 | 설명 | |------|------| -| `[IMPL-2025-12-19] company-info.md` | 🔴 **NEW** - 회사정보 구현 (폼 기반, 회사 추가 팝업) | -| `[IMPL-2025-12-19] popup-management.md` | 팝업관리 구현 (리스트/등록/상세/수정, RichTextEditor) | +| `[IMPL-2025-12-19] company-info.md` | 회사정보 구현 | +| `[IMPL-2025-12-19] popup-management.md` | 팝업관리 구현 | --- -## 🏗️ juil/ - 주일 공사 MES (NEW) - -| 파일 | 설명 | -|------|------| -| `[IMPL-2026-01-05] item-management-checklist.md` | 🔴 **NEW** - 품목관리 구현 체크리스트 (발주관리 > 기준정보 > 품목관리) | -| `[IMPL-2026-01-05] category-management-checklist.md` | 🔴 **NEW** - 카테고리관리 구현 체크리스트 (발주관리 > 기준정보) | -| `[PLAN-2026-01-05] order-management-implementation.md` | 발주관리 페이지 구현 계획서 (달력+리스트, ScheduleCalendar 공통 컴포넌트) | -| `[NEXT-2025-12-30] partner-management-session-context.md` | ⭐ **세션 체크포인트** - 거래처 관리 리스트 완료, 등록/상세/수정 예정 | -| `[REF] juil-project-structure.md` | 주일 프로젝트 구조 가이드 (경로, 컴포넌트, 테스트 URL) | - -**프로젝트 정보**: -- 업체: 주일 (공사/건설) -- 페이지 경로: `src/app/[locale]/(protected)/juil/` -- 컴포넌트: `src/components/business/juil/` -- 테스트 URL: http://localhost:3000/dev/juil-test-urls - ---- - -## 📁 archive/ - 레거시/완료된 문서 +## archive/ - 레거시/완료된 문서 완료되거나 더 이상 활성화되지 않은 문서들. 참조용으로 보관. +테스트 스크린샷(`qa-*.png`)도 여기에 보관. --- @@ -259,13 +359,12 @@ claudedocs/ - `TEST` - 테스트 가이드 - `NEXT` - 다음 작업 목록 - `FIX` - 버그 해결 문서 +- `QA` - 품질 검사 문서 +- `HOTFIX` - 긴급 수정 문서 ### 폴더 배치 기준 1. **기능/도메인 우선**: 문서 주제에 맞는 폴더에 배치 2. **범용 가이드**: 여러 기능에 적용되면 `guides/`에 배치 -3. **완료된 작업**: 더 이상 활성화되지 않으면 `archive/`로 이동 -4. **신규 도메인**: 3개 이상 문서가 생기면 새 폴더 생성 고려 - -### 문서 업데이트 -- 중요 변경 시 문서 상단에 날짜와 함께 변경사항 기록 -- `_index.md`에 새 문서 추가 시 테이블 업데이트 +3. **시스템 전체**: 아키텍처/리팩토링은 `architecture/`에 배치 +4. **개발도구**: 테스트 URL, 빌드, 설정은 `dev/`에 배치 +5. **완료된 작업**: 더 이상 활성화되지 않으면 `archive/`로 이동 diff --git a/claudedocs/[PLAN-2026-01-23] vendor-credit-analysis-modal.md b/claudedocs/accounting/[PLAN-2026-01-23] vendor-credit-analysis-modal.md similarity index 100% rename from claudedocs/[PLAN-2026-01-23] vendor-credit-analysis-modal.md rename to claudedocs/accounting/[PLAN-2026-01-23] vendor-credit-analysis-modal.md diff --git a/claudedocs/[ANALYSIS-2026-01-20] 공통화-현황-분석.md b/claudedocs/architecture/[ANALYSIS-2026-01-20] 공통화-현황-분석.md similarity index 100% rename from claudedocs/[ANALYSIS-2026-01-20] 공통화-현황-분석.md rename to claudedocs/architecture/[ANALYSIS-2026-01-20] 공통화-현황-분석.md diff --git a/claudedocs/[ANALYSIS-2026-02-05] SAM-ERP-MES-정체성-분석.md b/claudedocs/architecture/[ANALYSIS-2026-02-05] SAM-ERP-MES-정체성-분석.md similarity index 100% rename from claudedocs/[ANALYSIS-2026-02-05] SAM-ERP-MES-정체성-분석.md rename to claudedocs/architecture/[ANALYSIS-2026-02-05] SAM-ERP-MES-정체성-분석.md diff --git a/claudedocs/[ANALYSIS-2026-02-05] list-page-commonization-status.md b/claudedocs/architecture/[ANALYSIS-2026-02-05] list-page-commonization-status.md similarity index 100% rename from claudedocs/[ANALYSIS-2026-02-05] list-page-commonization-status.md rename to claudedocs/architecture/[ANALYSIS-2026-02-05] list-page-commonization-status.md diff --git a/claudedocs/[IMPL-2026-01-21] input-form-componentization.md b/claudedocs/architecture/[IMPL-2026-01-21] input-form-componentization.md similarity index 100% rename from claudedocs/[IMPL-2026-01-21] input-form-componentization.md rename to claudedocs/architecture/[IMPL-2026-01-21] input-form-componentization.md diff --git a/claudedocs/[IMPL-2026-01-21] phase4-input-migration-rollout.md b/claudedocs/architecture/[IMPL-2026-01-21] phase4-input-migration-rollout.md similarity index 100% rename from claudedocs/[IMPL-2026-01-21] phase4-input-migration-rollout.md rename to claudedocs/architecture/[IMPL-2026-01-21] phase4-input-migration-rollout.md diff --git a/claudedocs/[IMPL-2026-02-05] detail-hooks-migration-plan.md b/claudedocs/architecture/[IMPL-2026-02-05] detail-hooks-migration-plan.md similarity index 100% rename from claudedocs/[IMPL-2026-02-05] detail-hooks-migration-plan.md rename to claudedocs/architecture/[IMPL-2026-02-05] detail-hooks-migration-plan.md diff --git a/claudedocs/[IMPL-2026-02-05] formatter-commonization-plan.md b/claudedocs/architecture/[IMPL-2026-02-05] formatter-commonization-plan.md similarity index 100% rename from claudedocs/[IMPL-2026-02-05] formatter-commonization-plan.md rename to claudedocs/architecture/[IMPL-2026-02-05] formatter-commonization-plan.md diff --git a/claudedocs/[IMPL] IntegratedDetailTemplate-checklist.md b/claudedocs/architecture/[IMPL] IntegratedDetailTemplate-checklist.md similarity index 100% rename from claudedocs/[IMPL] IntegratedDetailTemplate-checklist.md rename to claudedocs/architecture/[IMPL] IntegratedDetailTemplate-checklist.md diff --git a/claudedocs/[PLAN-2026-01-22] ui-component-abstraction.md b/claudedocs/architecture/[PLAN-2026-01-22] ui-component-abstraction.md similarity index 100% rename from claudedocs/[PLAN-2026-01-22] ui-component-abstraction.md rename to claudedocs/architecture/[PLAN-2026-01-22] ui-component-abstraction.md diff --git a/claudedocs/[REF] template-migration-status.md b/claudedocs/architecture/[REF] template-migration-status.md similarity index 100% rename from claudedocs/[REF] template-migration-status.md rename to claudedocs/architecture/[REF] template-migration-status.md diff --git a/claudedocs/qa-inbox-modal-test.png b/claudedocs/archive/qa-inbox-modal-test.png similarity index 100% rename from claudedocs/qa-inbox-modal-test.png rename to claudedocs/archive/qa-inbox-modal-test.png diff --git a/claudedocs/qa-reference-modal-test.png b/claudedocs/archive/qa-reference-modal-test.png similarity index 100% rename from claudedocs/qa-reference-modal-test.png rename to claudedocs/archive/qa-reference-modal-test.png diff --git a/claudedocs/[FIX-2026-01-29] typecheck-errors-checklist.md b/claudedocs/dev/[FIX-2026-01-29] typecheck-errors-checklist.md similarity index 100% rename from claudedocs/[FIX-2026-01-29] typecheck-errors-checklist.md rename to claudedocs/dev/[FIX-2026-01-29] typecheck-errors-checklist.md diff --git a/claudedocs/[HOTFIX-2026-01-27] E2E-테스트-수정계획서.md b/claudedocs/dev/[HOTFIX-2026-01-27] E2E-테스트-수정계획서.md similarity index 100% rename from claudedocs/[HOTFIX-2026-01-27] E2E-테스트-수정계획서.md rename to claudedocs/dev/[HOTFIX-2026-01-27] E2E-테스트-수정계획서.md diff --git a/claudedocs/[IMPL-2026-01-23] full-page-inspection.md b/claudedocs/dev/[IMPL-2026-01-23] full-page-inspection.md similarity index 100% rename from claudedocs/[IMPL-2026-01-23] full-page-inspection.md rename to claudedocs/dev/[IMPL-2026-01-23] full-page-inspection.md diff --git a/claudedocs/[PLAN-2026-02-03] claude-config-optimization.md b/claudedocs/dev/[PLAN-2026-02-03] claude-config-optimization.md similarity index 100% rename from claudedocs/[PLAN-2026-02-03] claude-config-optimization.md rename to claudedocs/dev/[PLAN-2026-02-03] claude-config-optimization.md diff --git a/claudedocs/[ANALYSIS] common-component-patterns.md b/claudedocs/guides/[ANALYSIS] common-component-patterns.md similarity index 100% rename from claudedocs/[ANALYSIS] common-component-patterns.md rename to claudedocs/guides/[ANALYSIS] common-component-patterns.md diff --git a/claudedocs/[FIX-2026-02-04] mobile-zoom-panning.md b/claudedocs/guides/[FIX-2026-02-04] mobile-zoom-panning.md similarity index 100% rename from claudedocs/[FIX-2026-02-04] mobile-zoom-panning.md rename to claudedocs/guides/[FIX-2026-02-04] mobile-zoom-panning.md diff --git a/claudedocs/[IMPL-2025-01-26] list-page-ui-standardization-checklist.md b/claudedocs/guides/[IMPL-2025-01-26] list-page-ui-standardization-checklist.md similarity index 100% rename from claudedocs/[IMPL-2025-01-26] list-page-ui-standardization-checklist.md rename to claudedocs/guides/[IMPL-2025-01-26] list-page-ui-standardization-checklist.md diff --git a/claudedocs/[IMPL-2026-01-23] button-navigation-checklist.md b/claudedocs/guides/[IMPL-2026-01-23] button-navigation-checklist.md similarity index 100% rename from claudedocs/[IMPL-2026-01-23] button-navigation-checklist.md rename to claudedocs/guides/[IMPL-2026-01-23] button-navigation-checklist.md diff --git a/claudedocs/[IMPL-2026-01-23] mode-migration-checklist.md b/claudedocs/guides/[IMPL-2026-01-23] mode-migration-checklist.md similarity index 100% rename from claudedocs/[IMPL-2026-01-23] mode-migration-checklist.md rename to claudedocs/guides/[IMPL-2026-01-23] mode-migration-checklist.md diff --git a/claudedocs/[IMPL-2026-01-23] mode-navigation-full-checklist.md b/claudedocs/guides/[IMPL-2026-01-23] mode-navigation-full-checklist.md similarity index 100% rename from claudedocs/[IMPL-2026-01-23] mode-navigation-full-checklist.md rename to claudedocs/guides/[IMPL-2026-01-23] mode-navigation-full-checklist.md diff --git a/claudedocs/[IMPL-2026-02-06] datepicker-migration-checklist.md b/claudedocs/guides/[IMPL-2026-02-06] datepicker-migration-checklist.md similarity index 100% rename from claudedocs/[IMPL-2026-02-06] datepicker-migration-checklist.md rename to claudedocs/guides/[IMPL-2026-02-06] datepicker-migration-checklist.md diff --git a/claudedocs/[PLAN-2025-01-21] document-system-integration.md b/claudedocs/guides/[PLAN-2025-01-21] document-system-integration.md similarity index 100% rename from claudedocs/[PLAN-2025-01-21] document-system-integration.md rename to claudedocs/guides/[PLAN-2025-01-21] document-system-integration.md diff --git a/claudedocs/[QA-2025-01-21] document-system-inspection.md b/claudedocs/guides/[QA-2025-01-21] document-system-inspection.md similarity index 100% rename from claudedocs/[QA-2025-01-21] document-system-inspection.md rename to claudedocs/guides/[QA-2025-01-21] document-system-inspection.md diff --git a/claudedocs/[REF] items-route-consolidation.md b/claudedocs/item-master/[REF] items-route-consolidation.md similarity index 100% rename from claudedocs/[REF] items-route-consolidation.md rename to claudedocs/item-master/[REF] items-route-consolidation.md diff --git a/claudedocs/[DESIGN-2026-01-29] worker-screen-spec.md b/claudedocs/production/[DESIGN-2026-01-29] worker-screen-spec.md similarity index 100% rename from claudedocs/[DESIGN-2026-01-29] worker-screen-spec.md rename to claudedocs/production/[DESIGN-2026-01-29] worker-screen-spec.md diff --git a/claudedocs/[PLAN-2026-02-04] quality-audit-document-management.md b/claudedocs/quality/[PLAN-2026-02-04] quality-audit-document-management.md similarity index 100% rename from claudedocs/[PLAN-2026-02-04] quality-audit-document-management.md rename to claudedocs/quality/[PLAN-2026-02-04] quality-audit-document-management.md diff --git a/claudedocs/refactoring/[REF-2025-02-06] useListHandlers-commonization.md b/claudedocs/refactoring/[REF-2025-02-06] useListHandlers-commonization.md new file mode 100644 index 00000000..2490f2bf --- /dev/null +++ b/claudedocs/refactoring/[REF-2025-02-06] useListHandlers-commonization.md @@ -0,0 +1,97 @@ +# Handler Hook 공통화 완료 보고서 + +**작성일**: 2025-02-06 +**상태**: ✅ 완료 + +## 개요 + +리스트 페이지에서 중복 사용되던 `handleRowClick`, `handleEdit` 핸들러를 공통 Hook으로 추출하여 17개 파일에 적용 완료. + +## 생성된 Hook + +### `/src/hooks/useListHandlers.ts` + +```typescript +'use client'; + +import { useCallback } from 'react'; +import { useRouter } from 'next/navigation'; + +export function useListHandlers(basePath: string) { + const router = useRouter(); + + const handleRowClick = useCallback( + (item: T) => { + router.push(`/ko/${basePath}/${item.id}?mode=view`); + }, + [router, basePath] + ); + + const handleEdit = useCallback( + (item: T) => { + router.push(`/ko/${basePath}/${item.id}?mode=edit`); + }, + [router, basePath] + ); + + return { handleRowClick, handleEdit, router }; +} +``` + +## 마이그레이션 완료 파일 (17개) + +| # | 파일 | basePath | 비고 | +|---|------|----------|------| +| 1 | ContractListClient.tsx | `construction/project/contract` | | +| 2 | BiddingListClient.tsx | `construction/project/bidding` | | +| 3 | EstimateListClient.tsx | `construction/project/bidding/estimates` | | +| 4 | HandoverReportListClient.tsx | `construction/project/contract/handover-report` | | +| 5 | PartnerListClient.tsx | `construction/project/bidding/partners` | router 사용 (handleCreate) | +| 6 | OrderManagementListClient.tsx | `construction/order/order-management` | router 사용 (handleCreate, handleCalendarEventClick) | +| 7 | ProgressBillingManagementListClient.tsx | `construction/billing/progress-billing-management` | | +| 8 | SiteManagementListClient.tsx | `construction/order/site-management` | | +| 9 | WorkerStatusListClient.tsx | `construction/project/worker-status` | handleRowClick만 사용 (handleEdit 없음) | +| 10 | StructureReviewListClient.tsx | `construction/order/structure-review` | router 사용 (handleCreate) | +| 11 | IssueManagementListClient.tsx | `construction/project/issue-management` | router 사용 (handleCreate) | +| 12 | SiteBriefingListClient.tsx | `construction/project/bidding/site-briefings` | router 사용 (handleCreate) | +| 13 | ItemManagementClient.tsx | `construction/order/base-info/items` | handleRowClick만 (handleEdit 시그니처 다름) | +| 14 | LaborManagementClient.tsx | `construction/order/base-info/labor` | router 사용 (handleCreate) | +| 15 | PricingListClient.tsx | `construction/order/base-info/pricing` | router 사용 (handleCreate) | +| 16 | ConstructionManagementListClient.tsx | `construction/project/construction-management` | router 사용 (handleCalendarEventClick) | +| 17 | ProjectListClient.tsx | `construction/project/execution-management` | handleGanttProjectClick → handleRowClick로 대체 | + +## 사용 패턴 + +### 기본 사용 +```typescript +const { handleRowClick, handleEdit } = useListHandlers('your/base/path'); +``` + +### router도 필요한 경우 +```typescript +const { handleRowClick, handleEdit, router } = useListHandlers('your/base/path'); + +// 추가 핸들러에서 router 사용 +const handleCreate = useCallback(() => { + router.push('/ko/your/base/path?mode=new'); +}, [router]); +``` + +## 효과 + +- **~100줄 이상** 중복 코드 제거 +- 네비게이션 로직 중앙화 +- 유지보수 용이성 향상 +- 일관된 핸들러 패턴 적용 + +## 다음 작업 (우선순위) + +1. ~~Handler Hook 공통화~~ ✅ 완료 +2. **MOCK 데이터 공통화** - 중복되는 MOCK 옵션 데이터 통합 +3. **customSortFn 공통화** - 정렬 로직 공통 유틸 함수 추출 + +## 주의사항 + +- `ItemManagementClient.tsx`의 `handleEdit`는 시그니처가 다름 (`(e: React.MouseEvent, itemId: string)`) +- 일부 파일은 `handleEdit` 없이 `handleRowClick`만 사용 +- 추가 핸들러(handleCreate, handleCalendarEventClick 등)에서 router가 필요한 경우 hook에서 router도 destructuring 필요 diff --git a/claudedocs/[NEXT-2026-02-04] price-distribution-session-context.md b/claudedocs/sales/[NEXT-2026-02-04] price-distribution-session-context.md similarity index 100% rename from claudedocs/[NEXT-2026-02-04] price-distribution-session-context.md rename to claudedocs/sales/[NEXT-2026-02-04] price-distribution-session-context.md diff --git a/claudedocs/[PLAN-2025-01-20] permission-system-implementation.md b/claudedocs/security/[PLAN-2025-01-20] permission-system-implementation.md similarity index 100% rename from claudedocs/[PLAN-2025-01-20] permission-system-implementation.md rename to claudedocs/security/[PLAN-2025-01-20] permission-system-implementation.md diff --git a/claudedocs/[QA-2026-02-03] permission-verification-checklist.md b/claudedocs/security/[QA-2026-02-03] permission-verification-checklist.md similarity index 100% rename from claudedocs/[QA-2026-02-03] permission-verification-checklist.md rename to claudedocs/security/[QA-2026-02-03] permission-verification-checklist.md