refactor(WEB): claudedocs 재정리 및 AuthContext/Zustand/유틸 코드 개선

- claudedocs 폴더 구조 재정리: archive/sessions, guides/migration·mobile·universal-list, refactoring 분류
- 오래된 세션 컨텍스트/체크리스트 문서 정리 (아카이브 이동 또는 삭제)
- AuthContext → authStore(Zustand) 전환 시작, RootProvider 간소화
- GenericCRUDDialog 공통 다이얼로그 컴포넌트 추가
- PermissionDialog 삭제 → GenericCRUDDialog로 대체
- RankDialog/TitleDialog GenericCRUDDialog 기반으로 리팩토링
- toast-utils.ts 삭제 (미사용)
- fileDownload.ts 개선, excel-download.ts 정리
- menuStore/themeStore Zustand 셀렉터 최적화
- useColumnSettings/useTableColumnStore 기능 보강
- 세금계산서/견적/작업자화면/결재 등 소규모 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-23 17:17:13 +09:00
parent 6c3572e568
commit 07374c826c
75 changed files with 1704 additions and 1376 deletions

View File

@@ -1,78 +0,0 @@
ㅏ# 세션 요약 (2025-12-30)
## 완료된 작업
### 1. fetch-wrapper 목적 확인
- **목적**: 401 에러(세션 만료) 발생 시 로그인 리다이렉트를 **중앙화**
- **장점**: 중복 코드 제거 + 새 작업자도 규칙 준수 가능
### 2. Accounting 도메인 완료 (12/12) ✅
- [x] `SalesManagement/actions.ts`
- [x] `VendorManagement/actions.ts`
- [x] `PurchaseManagement/actions.ts`
- [x] `DepositManagement/actions.ts`
- [x] `WithdrawalManagement/actions.ts`
- [x] `VendorLedger/actions.ts`
- [x] `ReceivablesStatus/actions.ts`
- [x] `ExpectedExpenseManagement/actions.ts`
- [x] `CardTransactionInquiry/actions.ts`
- [x] `DailyReport/actions.ts`
- [x] `BadDebtCollection/actions.ts`
- [x] `BankTransactionInquiry/actions.ts`
### 3. HR 도메인 진행중 (1/6)
- [x] `EmployeeManagement/actions.ts` (이미 마이그레이션되어 있었음)
- [~] `VacationManagement/actions.ts` (import만 변경됨, 함수 마이그레이션 필요)
## 다음 세션 TODO
### HR 도메인 나머지 (5개)
- [ ] `VacationManagement/actions.ts` - 함수 마이그레이션 완료 필요
- [ ] `SalaryManagement/actions.ts`
- [ ] `CardManagement/actions.ts`
- [ ] `DepartmentManagement/actions.ts`
- [ ] `AttendanceManagement/actions.ts`
### 기타 도메인 (Approval, Production, Settings, 기타)
- Approval: 4개
- Production: 4개
- Settings: 11개
- 기타: 12개
- 상세 목록은 체크리스트 문서 참고
### 빌드 검증
- [ ] `npm run build` 실행하여 마이그레이션 검증
## 참고 사항
### 마이그레이션 패턴 (참고용)
```typescript
// Before
import { cookies } from 'next/headers';
async function getApiHeaders() { ... }
const response = await fetch(url, { headers });
// After
import { serverFetch } from '@/lib/api/fetch-wrapper';
const { response, error } = await serverFetch(url, { method: 'GET' });
if (error) return { success: false, error: error.message };
```
### 주요 변경 포인트
1. `getApiHeaders()` 함수 제거
2. `import { cookies } from 'next/headers'` 제거
3. `fetch()``serverFetch()` 변경
4. `{ response, error }` 구조분해 사용
5. 파일 다운로드(Excel/PDF)는 `cookies` import 유지 (custom Accept 헤더 필요)
### 특이사항
- `EmployeeManagement/actions.ts`는 이미 `serverFetch` 사용 중이었음
- `uploadProfileImage` 함수는 FormData 업로드라 `cookies` import 유지
## 체크리스트 문서
`claudedocs/api/[IMPL-2025-12-30] fetch-wrapper-migration.md`
## 진행률
- 전체: 49개 파일
- 완료: 13개 (27%)
- 남음: 36개