# MNG 사이트 모바일 반응형 분석 > 작성일: 2025-12-19 > 목적: mng 관리자 패널의 모바일 반응형 개선 계획 수립 ## 1. 현재 상태 요약 ### 1.1 전체 구조 ``` mng/resources/views/ ├── layouts/app.blade.php # 메인 레이아웃 (flex 구조) ├── partials/ │ ├── sidebar.blade.php # 사이드바 (w-64 고정) │ ├── header.blade.php # 헤더 (h-16 고정) │ └── pagination.blade.php # 페이지네이션 (sm 분기 있음) ├── components/sidebar/ # 사이드바 메뉴 컴포넌트 └── [페이지]/partials/table.blade.php # 각 모듈 테이블 ``` ### 1.2 Tailwind 설정 - **현재**: 기본 breakpoint 사용 (sm:640px, md:768px, lg:1024px) - **커스텀 설정 없음**: 추가 breakpoint나 반응형 변수 미정의 - **플러그인**: `@tailwindcss/forms` 사용 중 ### 1.3 문제점 | 구분 | 문제 | 심각도 | |------|------|--------| | 사이드바 | 모바일에서 항상 표시, 콘텐츠 영역 압박 | 🔴 높음 | | 헤더 | 테넌트 셀렉터/사용자 메뉴 공간 부족 | 🔴 높음 | | 테이블 | 수평 스크롤만 있고 사용성 낮음 | 🟡 중간 | | 폼/필터 | flex 고정으로 요소 겹침 가능 | 🟡 중간 | | 버튼 그룹 | 수평 배치로 작은 화면에서 문제 | 🟢 낮음 | --- ## 2. 상세 분석 ### 2.1 레이아웃 (app.blade.php) **현재 구조:** ```html
@include('partials.sidebar')
@include('partials.header')
@yield('content')
``` **문제:** - 사이드바가 모바일에서도 w-64(256px) 차지 - 콘텐츠 영역이 매우 좁아짐 - 모바일/태블릿 분기 없음 **개선 방향:** ```html
...
``` ### 2.2 사이드바 (sidebar.blade.php) **현재 기능:** - 데스크톱 토글 (w-64 ↔ w-16) - localStorage 상태 저장 - 접힌 상태에서 hover 툴팁 - R&D Labs 플라이아웃 메뉴 **모바일 미지원 사항:** - 햄버거 메뉴 버튼 없음 - 오버레이/슬라이드 인 애니메이션 없음 - 외부 클릭으로 닫기 없음 - 스와이프 제스처 없음 **개선 방향:** ``` 데스크톱 (lg+): [사이드바 | 콘텐츠] 또는 [접힌바 | 콘텐츠] 태블릿 (md-lg): [접힌 사이드바 | 콘텐츠] 모바일 (< md): [콘텐츠] + 햄버거 클릭 → 오버레이 사이드바 ``` ### 2.3 헤더 (header.blade.php) **현재 구조:** ```html
현재 테넌트 뱃지
사용자 메뉴
``` **문제:** - 테넌트 셀렉터가 min-w-[200px]로 고정 - 작은 화면에서 요소들이 겹침 - 모바일에서 햄버거 버튼 들어갈 공간 없음 **개선 방향:** ```html
SAM
...
사용자
``` ### 2.4 테이블 현황 | 페이지 | 컬럼 수 | overflow-x-auto | 모바일 대응 | |--------|---------|-----------------|-------------| | users | 8개 | ❌ 없음 | ❌ | | tenants | 13개 | ❌ 없음 | ❌ | | roles | 6개 | ❌ 없음 | ❌ | | departments | 5개 | ❌ 없음 | ❌ | | permissions | 5개 | ❌ 없음 | ❌ | | boards | 7개 | ❌ 없음 | ❌ | | role-permissions | 11개+ | ✅ 있음 | 수평 스크롤만 | | archived-records | 6개 | ❌ 없음 | ❌ | | quote-formulas | 7개 | ❌ 없음 | ❌ | **사용자 요청:** - 카드형 대신 **좌우 스와이프** 형태 유지 - 즉, `overflow-x-auto` + 터치 스크롤이 핵심 **개선 방향:** ```html
← 좌우로 스와이프하여 더 보기 →
``` --- ## 3. 메뉴별 모바일 적합성 분석 ### 3.1 모바일 적합 메뉴 ✅ | 메뉴 | 이유 | |------|------| | 대시보드 | 단순 정보 표시 | | 프로필 | 개인 설정 | | 게시판 목록/상세 | 리스트 + 상세 뷰 | | 일반 CRUD 작업 | 간단한 폼 | ### 3.2 모바일 주의 필요 메뉴 ⚠️ | 메뉴 | 문제점 | 해결책 | |------|--------|--------| | 사용자 관리 | 8컬럼 테이블 | 핵심 컬럼만 표시 + 스와이프 | | 테넌트 관리 | 13컬럼, 다수 모달 | 간소화 필요 | | 역할 관리 | 테이블 + 권한 매트릭스 | 스와이프 적용 | | 부서 관리 | 간단 (5컬럼) | 스와이프만으로 충분 | ### 3.3 모바일 구현 어려운 메뉴 ❌ (추후 검토) | 메뉴 | 문제점 | 권장 | |------|--------|------| | 역할 권한 매트릭스 | 11개+ 컬럼 체크박스 그리드 | 데스크톱 전용 또는 별도 UI | | 부서 권한 매트릭스 | 역할 권한과 동일 | 데스크톱 전용 또는 별도 UI | | 사용자 권한 | 복잡한 매트릭스 | 데스크톱 전용 또는 별도 UI | | 권한 분석 도구 | 트리 구조 + 분석 결과 | 데스크톱 권장 | | Flow Tester | 복잡한 JSON 편집기 | 데스크톱 전용 | | 프로젝트 관리 (Import) | 파일 업로드 + 매핑 | 데스크톱 권장 | | R&D Labs | 실험/테스트 목적 | 데스크톱 권장 | --- ## 4. 기술 스택 확인 ### 4.1 현재 사용 중 - **Tailwind CSS**: 반응형 유틸리티 사용 가능 - **Alpine.js**: 없음 (vanilla JS만 사용) - **HTMX**: 일부 페이지에서 사용 - **localStorage**: 사이드바 상태 저장 ### 4.2 추가 고려 - **Alpine.js**: 모바일 메뉴 토글에 유용 (x-show, x-transition) - **Swiper.js**: 터치 제스처 개선 (선택사항) --- ## 5. 다음 단계 1. **계획 문서 작성** → `02-implementation-plan.md` 2. **우선순위 결정** → 사이드바 > 헤더 > 테이블 3. **프로토타입** → 레이아웃 변경 테스트 4. **단계별 구현** → Phase 1, 2, 3 --- ## 6. 파일 구조 ``` docs/projects/mng-mobile-responsive/ ├── 01-analysis.md # 현재 파일 (분석) ├── 02-implementation-plan.md # 구현 계획 ├── 03-sidebar-mobile.md # 사이드바 개선 상세 ├── 04-header-responsive.md # 헤더 반응형 상세 ├── 05-table-swipe.md # 테이블 스와이프 상세 └── 06-excluded-menus.md # 모바일 제외 메뉴 목록 ```