# 관리자 페이지 테스트 결과

> 테스트 일시: 2026-03-30
> 테스트 환경: localhost:9771 (Next.js) → localhost:8081 (Spring Boot)
> 테스트 계정: wace (최고 관리자)
> 테스트 도구: Puppeteer MCP (브라우저 자동화) + API 직접 호출

## 제외 메뉴
- 제어관리 (= 워크플로우) - API 미구현
- 연쇄관계관리 - 제외 요청
- 리포트 - 제외 요청

---

## 최종 CRUD 테스트 결과

| 메뉴 | Read | Create | Update | Delete | 브라우저 확인 |
|------|:----:|:------:|:------:|:------:|:----------:|
| 메뉴관리 | OK | OK | OK | OK | OK |
| 사용자관리 | OK | OK | OK | OK | OK |
| 회사관리 | OK | OK | OK | OK | OK |
| 권한관리 | OK | - | OK | - | OK |
| 권한 그룹관리 | OK | OK | OK | OK | OK |
| 다국어관리 | OK | OK | OK | OK | OK |
| 테이블 타입관리 | OK | - | - | - | OK |
| 공통코드관리 | OK | OK | OK | OK | OK (브라우저 저장 확인) |
| 화면관리 | OK | OK | OK | OK | OK (958개 화면) |
| POP화면관리 | OK | - | - | - | OK |
| 대시보드관리 | OK | OK | OK | OK | OK (날짜/생성자 정상) |
| 배치관리 | OK | OK | OK | OK | OK (10개 배치) |
| 메일관리 | OK(UI) | - | - | - | API 미구현 |
| 외부 커넥션 관리 | OK | OK | OK | OK | OK |

---

## 수정 완료 목록

### 프론트엔드 수정 (7건)

| # | 버그 | 수정 파일 |
|---|------|-----------|
| 1 | 다국어관리 카테고리 이름 안 나옴 | multilang.ts, CategoryTree.tsx, KeyGenerateModal.tsx, i18nList/page.tsx |
| 2 | 대시보드관리 에러 (pagination.total undefined) | dashboard.ts, dashboardList/page.tsx |
| 3 | 대시보드관리 생성자 "-", 날짜 Invalid Date | dashboard.ts, dashboardList/page.tsx |
| 4 | 권한관리 데이터 전부 "-" | UserAuthTable.tsx |
| 5 | 공통코드 저장 400 에러 (camelCase→snake_case) | commonCode.ts (toSnakeCase 헬퍼 추가) |
| 6 | 화면관리 0개 표시 (응답 구조 불일치) | screen.ts (Spring 이중 래핑 처리) |
| 7 | 배치관리 목록 안 뜸 (API 경로 + 응답 형식) | batch.ts (endpoint + 응답 정규화) |

### 백엔드 수정 (8건)

| # | 버그 | 수정 파일 |
|---|------|-----------|
| 1 | 메뉴 Create - objid null | AdminService.java, mapper/admin.xml |
| 2 | 메뉴 Create - menu_name null | AdminService.java (menu_name→menu_name_kor 매핑) |
| 3 | 화면 Create - screen_name null | ScreenManagementService.java (bp() 헬퍼 - snake/camel 호환) |
| 4 | 사용자 Delete 미구현 | AdminController.java (deleteUser 엔드포인트 추가) |
| 5 | 권한그룹 Create - objid null | RoleController.java, mapper/role.xml |
| 6 | 권한그룹 Update - MODDATE 컬럼 미존재 | mapper/role.xml (MODDATE→WRITER) |
| 7 | 권한그룹 Delete - 트랜잭션 abort | RoleService.java (존재하지 않는 테이블 삭제 제거) |
| 8 | 배치 Create - execution_type 컬럼 미존재 | mapper/batch.xml, BatchController.java |
| 9 | 다국어 Create - key_id=0 반환 | mapper/multilang.xml (keyProperty 수정) |

### 공통 수정

| # | 내용 | 수정 파일 |
|---|------|-----------|
| 1 | ResponsiveDataView key undefined 방어코드 | ResponsiveDataView.tsx (fallback key 추가) |

---

## 미수정 이슈

| # | 이슈 | 상태 |
|---|------|------|
| 1 | 메일관리 API 미구현 | `/api/mail/sent`, `/api/mail/accounts` 404 |
| 2 | 콘솔 로그 과다 | TabPageRenderer/AdminPageRenderer 반복 로그 |
| 3 | 11 Issues 표시 (하단) | 기존 TypeScript 에러 (이번 작업과 무관) |
