+ + {엔티티명} 관리 +
+{설명}
+diff --git a/docs/ADMIN_PAGE_STANDARD.md b/docs/ADMIN_PAGE_STANDARD.md new file mode 100644 index 0000000..c44239e --- /dev/null +++ b/docs/ADMIN_PAGE_STANDARD.md @@ -0,0 +1,588 @@ +# 관리 페이지 표준 가이드 (Admin Page Standard) + +> **작성일**: 2026-01-26 +> **버전**: 1.0.0 +> **용도**: 관리자 페이지(Admin Pages) 통합 개발 표준 + +--- + +## 📋 목차 + +1. [용어 정의](#1-용어-정의) +2. [페이지 유형 분류](#2-페이지-유형-분류) +3. [표준 레이아웃 구조](#3-표준-레이아웃-구조) +4. [HTML 구조 템플릿](#4-html-구조-템플릿) +5. [CSS 클래스 규칙](#5-css-클래스-규칙) +6. [JavaScript 규칙](#6-javascript-규칙) +7. [파일 네이밍 규칙](#7-파일-네이밍-규칙) +8. [체크리스트](#8-체크리스트) + +--- + +## 1. 용어 정의 + +### 1.1 관리 페이지 (Admin Page) + +**정의**: 데이터의 CRUD(Create, Read, Update, Delete) 작업을 수행하는 관리자 전용 페이지 + +**특징**: +- 2단 레이아웃 (사이드바 + 메인 콘텐츠) +- 카드/그리드 방식의 데이터 표시 +- 검색, 필터, 통계 기능 포함 +- 모달을 통한 추가/수정 기능 + +**명명 규칙**: `{엔티티}-management` 또는 `{엔티티}s.html` + +**예시**: +- ✅ 프로젝트 관리 (`projects.html`) +- ✅ 작업자 관리 (`workers.html`) +- ✅ 코드 관리 (`codes.html`) + +### 1.2 관리 페이지의 구성 요소 + +| 용어 | 영문 | 설명 | 클래스명 | +|------|------|------|----------| +| 사이드바 | Sidebar | 좌측 네비게이션 메뉴 | `.sidebar` | +| 메인 콘텐츠 | Main Content | 우측 콘텐츠 영역 | `.main-content` | +| 페이지 헤더 | Page Header | 타이틀 + 액션 버튼 | `.page-header` | +| 검색 섹션 | Search Section | 검색바 + 필터 | `.search-section` | +| 통계 카드 | Statistics | 데이터 통계 표시 | `.project-stats`, `.stat-item` | +| 데이터 그리드 | Data Grid | 카드/테이블 그리드 | `.projects-grid` | +| 데이터 카드 | Data Card | 개별 데이터 표시 카드 | `.project-card` | + +--- + +## 2. 페이지 유형 분류 + +### 2.1 Type A: 카드 그리드 관리 페이지 + +**용도**: 시각적으로 정보를 표시하고 관리하는 페이지 + +**레이아웃**: +``` +┌─────────┬────────────────────────────────┐ +│ │ 페이지 헤더 (타이틀 + 버튼) │ +│ ├────────────────────────────────┤ +│ 사이드바 │ 검색 섹션 (검색바 + 필터) │ +│ ├────────────────────────────────┤ +│ │ 통계 (활성/비활성/총) │ +│ ├────────────────────────────────┤ +│ │ [카드1] [카드2] [카드3] │ +│ │ [카드4] [카드5] [카드6] │ +│ │ 데이터 카드 그리드 │ +└─────────┴────────────────────────────────┘ +``` + +**적용 페이지**: +- 프로젝트 관리 (`projects.html`) +- 작업자 관리 (`workers.html`) + +**그리드 설정**: +- 기본: 3열 (`grid-template-columns: repeat(3, 1fr)`) +- 카드 높이: 고정 420px + +### 2.2 Type B: 테이블 관리 페이지 + +**용도**: 텍스트 중심의 데이터를 테이블 형태로 관리 + +**레이아웃**: +``` +┌─────────┬────────────────────────────────┐ +│ │ 페이지 헤더 (타이틀 + 버튼) │ +│ ├────────────────────────────────┤ +│ 사이드바 │ 검색 섹션 (검색바 + 필터) │ +│ ├────────────────────────────────┤ +│ │ ┌──────────────────────────┐ │ +│ │ │ 테이블 헤더 │ │ +│ │ ├──────────────────────────┤ │ +│ │ │ 데이터 행 1 │ │ +│ │ │ 데이터 행 2 │ │ +│ │ │ 데이터 행 3 │ │ +│ │ └──────────────────────────┘ │ +└─────────┴────────────────────────────────┘ +``` + +**적용 가능 페이지**: +- 로그 관리 +- 권한 관리 + +### 2.3 Type C: 탭 기반 관리 페이지 + +**용도**: 여러 카테고리의 데이터를 탭으로 구분하여 관리 + +**레이아웃**: +``` +┌─────────┬────────────────────────────────┐ +│ │ 페이지 헤더 (타이틀 + 버튼) │ +│ ├────────────────────────────────┤ +│ 사이드바 │ [탭1] [탭2] [탭3] [탭4] │ +│ ├────────────────────────────────┤ +│ │ 검색 섹션 │ +│ ├────────────────────────────────┤ +│ │ 현재 탭의 콘텐츠 표시 │ +│ │ (테이블 또는 카드) │ +└─────────┴────────────────────────────────┘ +``` + +**적용 페이지**: +- 코드 관리 (`codes.html`) + +--- + +## 3. 표준 레이아웃 구조 + +### 3.1 2단 레이아웃 (Sidebar + Main) + +**CSS Flexbox 구조**: +```css +.page-container { + display: flex; /* 가로 배치 */ + min-height: calc(100vh - 80px); +} + +.sidebar { + width: 240px; /* 고정 너비 */ + min-width: 240px; + flex-shrink: 0; /* 줄어들지 않음 */ +} + +.main-content { + flex: 1; /* 나머지 공간 차지 */ + padding: 2rem; +} +``` + +### 3.2 반응형 Breakpoints + +| 화면 크기 | 사이드바 | 그리드 열 | 비고 | +|----------|---------|----------|------| +| 1400px+ | 240px | 3열 | 대형 데스크탑 | +| 1200px ~ 1399px | 240px | 3열 | 일반 데스크탑 | +| 1024px ~ 1199px | 240px | 2열 | 중형 화면 | +| 768px ~ 1023px | 200px | 2열 | 태블릿 | +| 767px 이하 | 숨김 | 1열 | 모바일 | + +--- + +## 4. HTML 구조 템플릿 + +### 4.1 기본 HTML 템플릿 + +```html + + +
+ + +{설명}
+프로젝트 등록, 수정, 삭제 및 기본 정보를 관리합니다