# [화면명] > Screen ID: /screens/XXX > 메뉴 경로: [L2 메뉴] > [L3 메뉴] ## 1. 테이블 선택 및 화면 구조 ### 1.1 사용 테이블 | 테이블명 | 용도 | 비고 | |----------|------|------| | `table_name` | 마스터 데이터 | 주 테이블 | | `detail_table` | 디테일 데이터 | FK: master_id | ### 1.2 테이블 관계 ``` ┌─────────────────┐ ┌─────────────────┐ │ master_table │ │ detail_table │ ├─────────────────┤ ├─────────────────┤ │ id (PK) │──1:N──│ master_id (FK) │ │ name │ │ id (PK) │ │ ... │ │ ... │ └─────────────────┘ └─────────────────┘ ``` ### 1.3 화면 구조 개요 - **화면 유형**: [목록형 / 마스터-디테일 / 단일 폼 / 복합] - **주요 기능**: [CRUD / 조회 / 집계 등] --- ## 2. 컴포넌트 배치도 ### 2.1 전체 레이아웃 ``` ┌─────────────────────────────────────────────────────────────┐ │ [검색 영역] v2-table-search-widget │ ├─────────────────────────────────────────────────────────────┤ │ │ │ [메인 테이블] v2-table-list │ │ │ ├─────────────────────────────────────────────────────────────┤ │ [버튼 영역] v2-button-primary (신규, 저장, 삭제) │ └─────────────────────────────────────────────────────────────┘ ``` ### 2.2 컴포넌트 목록 | 컴포넌트 ID | 컴포넌트 타입 | 역할 | |-------------|---------------|------| | `search-widget` | v2-table-search-widget | 검색 필터 | | `main-table` | v2-table-list | 데이터 목록 | | `btn-new` | v2-button-primary | 신규 등록 | | `btn-save` | v2-button-primary | 저장 | | `btn-delete` | v2-button-primary | 삭제 | --- ## 3. 각 컴포넌트별 설정 ### 3.1 v2-table-search-widget ```json { "targetTableId": "main-table", "searchFields": [ { "field": "name", "label": "이름", "type": "text" }, { "field": "status", "label": "상태", "type": "select", "options": [ { "value": "active", "label": "활성" }, { "value": "inactive", "label": "비활성" } ] } ] } ``` ### 3.2 v2-table-list ```json { "tableName": "master_table", "columns": [ { "field": "id", "headerName": "ID", "width": 80, "visible": false }, { "field": "name", "headerName": "이름", "width": 150 }, { "field": "status", "headerName": "상태", "width": 100 } ], "features": { "checkbox": true, "pagination": true, "sorting": true }, "pagination": { "pageSize": 20 } } ``` ### 3.3 v2-button-primary (저장) ```json { "label": "저장", "actionType": "save", "variant": "default", "afterSaveActions": ["refreshTable"] } ``` --- ## 4. 컴포넌트 연동 설정 ### 4.1 이벤트 흐름 ``` [검색 입력] │ ▼ v2-table-search-widget │ onFilterChange ▼ v2-table-list (자동 재조회) │ ▼ [데이터 표시] ``` ### 4.2 연동 설정 | 소스 컴포넌트 | 이벤트/액션 | 대상 컴포넌트 | 동작 | |---------------|-------------|---------------|------| | search-widget | onFilterChange | main-table | 필터 적용 | | btn-save | click | main-table | refreshTable | --- ## 5. 사용자 사용 예시 시나리오 ### 시나리오 1: 데이터 조회 | 단계 | 사용자 동작 | 기대 결과 | |------|-------------|-----------| | 1 | 화면 진입 | 전체 목록 표시 | | 2 | 검색어 입력 | 필터링된 결과 표시 | | 3 | 정렬 클릭 | 정렬 순서 변경 | ### 시나리오 2: 데이터 등록 | 단계 | 사용자 동작 | 기대 결과 | |------|-------------|-----------| | 1 | [신규] 버튼 클릭 | 등록 모달/폼 표시 | | 2 | 데이터 입력 | 입력 필드 채움 | | 3 | [저장] 버튼 클릭 | 저장 완료, 목록 갱신 | ### 시나리오 3: 데이터 수정 | 단계 | 사용자 동작 | 기대 결과 | |------|-------------|-----------| | 1 | 행 더블클릭 | 수정 모달/폼 표시 | | 2 | 데이터 수정 | 필드 값 변경 | | 3 | [저장] 버튼 클릭 | 저장 완료, 목록 갱신 | ### 시나리오 4: 데이터 삭제 | 단계 | 사용자 동작 | 기대 결과 | |------|-------------|-----------| | 1 | 행 체크박스 선택 | 선택 표시 | | 2 | [삭제] 버튼 클릭 | 삭제 확인 다이얼로그 | | 3 | 확인 | 삭제 완료, 목록 갱신 | --- ## 6. 검증 체크리스트 - [ ] 데이터 조회가 정상 동작하는가? - [ ] 검색 필터가 정상 동작하는가? - [ ] 신규 등록이 정상 동작하는가? - [ ] 수정이 정상 동작하는가? - [ ] 삭제가 정상 동작하는가? - [ ] 페이지네이션이 정상 동작하는가? - [ ] 정렬이 정상 동작하는가? --- ## 7. 참고 사항 - 관련 화면: [관련 화면명](./related-screen.md) - 특이 사항: 없음