관리 그룹(수강료계산/수강료현황/직원관리/수납관리/자료실/역할관리/통계분석/급여관리) 탭의 핵심 기능을 검증합니다. 관리 관련 컴포넌트 수정 후 사용.
components/Staff/, components/Billing/, components/Resources/ 수정 후components/PaymentReport/, components/RoleManagement/ 수정 후hooks/useStaff.ts, hooks/useBilling.ts, hooks/useResources.ts 수정 후hooks/useStaffLeaves.ts 수정 후types/system.ts의 역할/권한 정의를 변경한 후| File | Purpose |
|---|---|
components/PaymentReport/PaymentReport.tsx | 전자 결재 메인 |
components/PaymentReport/TuitionChart.tsx | 수납 차트 |
components/PaymentReport/EntryForm.tsx | 결재 입력 폼 |
components/Staff/StaffManager.tsx | 직원 관리 메인 |
components/Staff/StaffList.tsx | 직원 목록 |
components/Staff/StaffForm.tsx | 직원 등록/수정 폼 |
components/Staff/StaffViewModal.tsx | 직원 상세 모달 |
components/Staff/LeaveManagement.tsx | 휴가 관리 |
components/Billing/BillingManager.tsx | 수납 관리 메인 (lazy loading) |
components/Billing/BillingTable.tsx | 수납 테이블 |
components/Billing/BillingForm.tsx | 수납 입력 폼 |
components/Billing/BillingStats.tsx | 수납 통계 |
components/Billing/BillingImportModal.tsx | 수납 데이터 import |
components/Resources/ResourceDashboard.tsx | 자료실 대시보드 |
components/Resources/ResourceCard.tsx | 자료 카드 |
components/Resources/ResourceAddModal.tsx | 자료 추가 모달 |
components/Resources/ResourcePreviewPanel.tsx | 자료 미리보기 |
components/RoleManagement/RoleManagementPage.tsx | 역할 관리 페이지 |
hooks/useStaff.ts | 직원 데이터 + mutation (4 mutations, cascade 업데이트) |
hooks/useStaffLeaves.ts | 휴가 관리 (5 mutations) |
hooks/useBilling.ts | 수납 데이터 + mutation (5 mutations) |
hooks/useResources.ts | 자료 데이터 + mutation (4 mutations) |
hooks/usePermissions.ts | 권한 검증 훅 |
hooks/useTabPermissions.ts | 탭 접근 권한 훅 |
types/system.ts | 역할별 탭 접근 권한 정의 |
components/Analytics/AnalyticsTab.tsx | 통계 분석 메인 |
components/Payroll/PayrollTab.tsx | 급여 관리 메인 |
hooks/usePayroll.ts | 급여 데이터 + mutation (4 mutations) |
components/TuitionCalculator/TuitionCalculatorTab.tsx | 수강료 계산기 메인 (3모드: 계산기/설정/목록) |
hooks/useTuitionInvoices.ts | 수강료 청구서 CRUD |
hooks/useTuitionSessions.ts | 수강료 시수기간 관리 |
검사: 8개 탭 컴포넌트가 TabContent에서 lazy import되는지 확인합니다.
grep -n "TuitionCalculatorTab\|PaymentReport\|StaffManager\|BillingManager\|ResourceDashboard\|RoleManagementPage\|AnalyticsTab\|PayrollTab" components/Layout/TabContent.tsx
PASS 기준: 8개 컴포넌트가 모두 React.lazy로 import됨 FAIL 기준: 하나 이상의 탭 컴포넌트 누락
검사: useStaff의 직원명 변경 시 연관 데이터(수업, 학생)를 함께 업데이트하는 cascade 로직이 존재하는지 확인합니다.
grep -n "cascade\|teacher.*newName\|updateDoc.*teacher" hooks/useStaff.ts | head -10
PASS 기준: cascade 업데이트 또는 연관 데이터 일괄 업데이트 로직 존재 FAIL 기준: 직원명 변경 시 연관 데이터 미갱신
검사: BillingManager에서 Table, Form, Stats, ImportModal이 모두 연결되어 있는지 확인합니다.
grep -n "BillingTable\|BillingForm\|BillingStats\|BillingImportModal" components/Billing/BillingManager.tsx | head -10
PASS 기준: 4개 하위 컴포넌트 모두 참조됨 FAIL 기준: 핵심 컴포넌트 연결 누락
검사: ResourceDashboard에서 자료 추가 모달과 카드 컴포넌트가 연결되어 있는지 확인합니다.
grep -n "ResourceAddModal\|ResourceCard" components/Resources/ResourceDashboard.tsx | head -10
PASS 기준: ResourceAddModal과 ResourceCard가 참조됨 FAIL 기준: 추가 모달 또는 카드 컴포넌트 연결 누락
검사: types/system.ts에 정의된 역할별 허용 탭이 useTabPermissions에서 올바르게 참조되는지 확인합니다.
grep -n "DEFAULT_TAB_PERMISSIONS\|master\|admin\|manager\|math_lead\|english_lead\|math_teacher\|english_teacher\|user" types/system.ts | head -20
PASS 기준: 8개 역할(master, admin, manager, math_lead, english_lead, math_teacher, english_teacher, user)의 권한이 모두 정의됨 FAIL 기준: 역할 정의 누락 또는 불일치
검사: StaffManager에서 LeaveManagement 컴포넌트가 연결되어 있는지 확인합니다.
grep -n "LeaveManagement\|StaffSchedule" components/Staff/StaffManager.tsx | head -5
PASS 기준: 휴가 관리 또는 스케줄 컴포넌트 참조 존재 FAIL 기준: 휴가 관리 기능이 분리됨
검사: PaymentReport에서 TuitionChart와 EntryForm이 연결되어 있는지 확인합니다.
grep -n "TuitionChart\|EntryForm" components/PaymentReport/PaymentReport.tsx | head -5
PASS 기준: 차트와 폼 컴포넌트 모두 참조됨 FAIL 기준: 구성요소 연결 누락
검사: TuitionCalculatorTab에서 3개 모드(calculator/manage/invoiceList)가 모두 구현되어 있는지 확인합니다.
grep -n "calculator\|manage\|invoiceList" components/TuitionCalculator/TuitionCalculatorTab.tsx | head -10
PASS 기준: 3개 모드 분기가 모두 존재 FAIL 기준: 모드 전환 로직 누락
| # | 검사 항목 | 범위 | 결과 | 상세 |
|---|---|---|---|---|
| 1 | 8개 탭 lazy import | TabContent.tsx | PASS/FAIL | |
| 2 | 직원 cascade 업데이트 | useStaff.ts | PASS/FAIL | |
| 3 | 수납 4대 컴포넌트 | BillingManager | PASS/FAIL | |
| 4 | 자료실 CRUD 모달 | ResourceDashboard | PASS/FAIL | |
| 5 | 역할별 탭 권한 | types/system.ts | PASS/FAIL | N개 역할 |
| 6 | 직원 휴가 연결 | StaffManager | PASS/FAIL | |
| 7 | 결재 보고 구성 | PaymentReport | PASS/FAIL | |
| 8 | 수강료 3모드 전환 | TuitionCalculatorTab | PASS/FAIL |
다음은 위반이 아닙니다:
teacher: newName은 항상 한국어 이름을 사용하며, English name은 별도 필드로 관리