DOCS/journey/troubleshooting/251225_admin_dashboard_navigation_structure_refactoring.md

3.0 KiB

Admin Dashboard 네비게이션 구조 리팩토링 (부분 구현)

날짜: 2025-12-25 작성자: Auto 관련 파일: admin-dashboard/frontend/index.html, admin-dashboard/frontend/app.js, admin-dashboard/frontend/styles.css


구현 내용 (프론트엔드)

1. 네비게이션 구조 변경

  • 파일: index.html:65-96
  • 시스템 메뉴 하위 구조 도입 (드롭다운)
  • 하위 메뉴 4개: 51123 서버, 51124 서버, 전체 컨테이너, 전체 서비스
  • 기존 컨테이너/51124 모니터 메뉴 제거

2. 섹션 추가

  • 파일: index.html:297-352
  • system-51123Section: 컨테이너 목록, 시스템 서비스, 포트 사용 현황
  • system-51124Section: 서비스 상태, 포트 사용 현황
  • system-containersSection: 전체 컨테이너 목록, 재시작 기능
  • system-servicesSection: 전체 서비스 상태, Nginx 설정

3. JavaScript 로직 구현

  • 파일: app.js:37-125
  • 하위 메뉴 토글 로직 (클릭 시 서브메뉴 유지)
  • 섹션 전환 로직 확장 (system-51123, system-51124, system-containers, system-services)
  • 데이터 로딩 함수: loadSystem51123(), loadSystem51124(), loadContainers(), loadServices()

4. 포트 사용 현황 기능

  • 파일: app.js:1080-1150
  • loadSystem51123Ports(): 51123 서버 포트 수집 및 표시
  • loadSystem51124Ports(): 51124 서버 포트 표시

5. 컨테이너 재시작 기능

  • 파일: app.js:1040-1055
  • restartContainer(): 컨테이너 재시작 API 호출
  • refreshContainers(): 컨테이너 목록 새로고침

6. 기존 섹션 제거

  • 파일: index.html:354-363, index.html:432-441
  • containersSection, monitorSection HTML 제거

부분 구현 완료

  • 커밋: 9cd44a0 (2025-12-25)
  • 프론트엔드 UI만 구현, 백엔드 API 서버 구분 미구현
  • 결과: 서버 구분 UI는 있으나 기능 동작하지 않음

교훈

서브메뉴 유지 로직

  • 하위 메뉴 항목 클릭 시 서브메뉴가 닫히지 않도록 section.startsWith('system-') 조건 추가
  • 사용자 경험 개선: 서버별 정보 탐색 시 메뉴 구조 유지

HTML 섹션 누락 문제

  • JavaScript에서 섹션을 찾지 못해 에러 발생 (Cannot set properties of null)
  • 원인: HTML에 섹션 추가 후 배포되지 않음
  • 교훈: 코드 변경 후 실제 배포 파일 확인 및 브라우저 직접 테스트 필수

메뉴 이름 명확화

  • "통합 컨테이너" → "전체 컨테이너" (의미 명확화)
  • 서버 역할 표시: "51123 서버 (인프라/게이트웨이)", "51124 서버 (로빙/스킬)"
  • 사용자 혼란 방지: 메뉴 이름이 기능을 명확히 표현해야 함

미구현 항목

백엔드 API 서버 구분 지원

  • get_services_status()에 서버 필터 파라미터 추가 필요
  • 51123/51124 서버 서비스 목록 분리 필요
  • 프론트엔드가 서버별 API 호출하도록 수정 필요

참고

  • 계획 문서: journey/plans/251225_admin_dashboard_navigation_structure_refactoring.md