chore(WEB): claudedocs 디렉토리 도메인별 재구조화

- 루트 문서 30개를 도메인별 하위 폴더로 이동
- accounting/, architecture/, dev/, guides/, security/ 등 카테고리 분류
- archive/ 폴더에 QA 스크린샷 이동
- _index.md 문서 맵 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-09 09:34:27 +09:00
parent 61bf95b58e
commit f3b07ac875
34 changed files with 327 additions and 131 deletions

View File

@@ -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/`로 이동

View File

Before

Width:  |  Height:  |  Size: 734 KiB

After

Width:  |  Height:  |  Size: 734 KiB

View File

Before

Width:  |  Height:  |  Size: 712 KiB

After

Width:  |  Height:  |  Size: 712 KiB

View File

@@ -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<T extends { id: string }>(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<YourType>('your/base/path');
```
### router도 필요한 경우
```typescript
const { handleRowClick, handleEdit, router } = useListHandlers<YourType>('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 필요