# 그리드 컬럼 수 옵션 통합 ## 개요 "그리드 컬럼 수" 옵션과 "컴포넌트 너비" 옵션이 중복된 기능을 제공하여 혼란을 야기했습니다. 사용자 편의성을 위해 **"컴포넌트 너비" 옵션만 사용**하도록 통합하고, 내부적으로 `gridColumns` 값을 자동 계산하도록 변경했습니다. ## 문제점 ### 기존 상황 1. **그리드 컬럼 수 옵션**: 1-12 숫자 입력 2. **컴포넌트 너비 옵션**: 1/12 ~ 12/12 선택 (퍼센트로 변환) → 같은 기능을 두 가지 방식으로 제공하여 사용자 혼란 발생 ### 예시 - 사용자가 "그리드 컬럼 수"를 6으로 설정 - 하지만 "컴포넌트 너비"가 1/4 (3컬럼)로 설정되어 있음 - 두 설정이 충돌하여 예상과 다른 결과 발생 ## 해결 방법 ### 1. UI 단순화 **제거된 옵션**: - ❌ PropertiesPanel의 "그리드 컬럼 수 (1-12)" 입력 필드 - ❌ DataTableConfigPanel의 "그리드 컬럼 수" 선택 상자 **유지된 옵션**: - ✅ PropertiesPanel의 "컴포넌트 너비" 선택 상자 (1/12 ~ 12/12) ### 2. 자동 계산 로직 컴포넌트 너비 선택 시 `gridColumns` 자동 계산: ```typescript // PropertiesPanel.tsx (764-788줄) const columnsMap: Record = { twelfth: 1, // 1/12 small: 2, // 2/12 quarter: 3, // 3/12 (1/4) third: 4, // 4/12 (1/3) "five-twelfths": 5, // 5/12 half: 6, // 6/12 (절반) "seven-twelfths": 7, // 7/12 twoThirds: 8, // 8/12 (2/3) threeQuarters: 9, // 9/12 (3/4) "five-sixths": 10, // 10/12 "eleven-twelfths": 11, // 11/12 full: 12, // 12/12 (전체) }; // 컴포넌트 너비 변경 시 onUpdateProperty("style.width", newWidth); // 퍼센트 값 저장 const gridColumns = columnsMap[value] || 6; onUpdateProperty("gridColumns", gridColumns); // 컬럼 수 자동 계산 ``` ### 3. 컴포넌트 생성 시 동작 ```typescript // ScreenDesigner.tsx (1756-1772줄) // 일반 컴포넌트: defaultSize.width를 기준으로 그리드 컬럼 수 계산 if (layout.gridSettings?.snapToGrid && gridInfo) { const columnWidth = gridInfo.columnWidth + gridInfo.gap; const estimatedColumns = Math.round( component.defaultSize.width / columnWidth ); gridColumns = Math.max(1, Math.min(12, estimatedColumns)); // 1-12 범위 } ``` ## 변경 사항 ### 파일 수정 #### 1. PropertiesPanel.tsx - ❌ 삭제: "그리드 컬럼 수" 입력 필드 (916-940줄) - ❌ 삭제: `localInputs.gridColumns` 상태 (206-213줄) - ✅ 추가: 컴포넌트 너비 변경 시 `gridColumns` 자동 계산 (764-788줄) #### 2. DataTableConfigPanel.tsx - ❌ 삭제: "그리드 컬럼 수" 선택 상자 (1437-1456줄) - ❌ 삭제: `localValues.gridColumns` 초기화 (72줄, 182줄) #### 3. ScreenDesigner.tsx - ✅ 개선: 컴포넌트 드롭 시 `defaultSize.width` 기반으로 `gridColumns` 자동 계산 (1756-1772줄) ## 사용 방법 ### 컴포넌트 너비 조정 #### 방법 1: 드롭다운 선택 1. 컴포넌트 선택 2. 속성 패널 > "컴포넌트 너비" 드롭다운 3. 원하는 너비 선택 (예: "절반 (6/12)") 4. 자동으로 `style.width`와 `gridColumns` 모두 업데이트됨 #### 방법 2: 컴포넌트 생성 시 1. 컴포넌트 팔레트에서 드래그 2. 캔버스에 드롭 3. `defaultSize.width`를 기준으로 적절한 `gridColumns` 자동 설정 ### 너비 옵션 설명 | 옵션 | 컬럼 수 | 퍼센트 | 설명 | | ------------ | ------- | ------ | ----------- | | 1/12 | 1 | 8.33% | 최소 | | 작게 (2/12) | 2 | 16.67% | 매우 작음 | | 1/4 (3/12) | 3 | 25% | 4등분의 1 | | 1/3 (4/12) | 4 | 33.33% | 3등분의 1 | | 5/12 | 5 | 41.67% | | | 절반 (6/12) | 6 | 50% | 정확히 절반 | | 7/12 | 7 | 58.33% | | | 2/3 (8/12) | 8 | 66.67% | 3등분의 2 | | 3/4 (9/12) | 9 | 75% | 4등분의 3 | | 10/12 | 10 | 83.33% | | | 11/12 | 11 | 91.67% | | | 전체 (12/12) | 12 | 100% | 최대 | ## 적용 효과 ### 1. 사용자 경험 개선 - ✅ 단일 옵션으로 간소화 - ✅ 직관적인 분수 표현 (1/4, 절반, 2/3 등) - ✅ 설정 충돌 제거 ### 2. 일관성 보장 - ✅ 컴포넌트 너비와 gridColumns 항상 동기화 - ✅ 그리드 시스템과 자연스러운 통합 ### 3. 개발자 편의 - ✅ 내부적으로 gridColumns는 여전히 사용 가능 - ✅ 기존 데이터 호환성 유지 (gridColumns 필드 존재) ## 내부 동작 ### gridColumns 사용처 `gridColumns` 값은 사용자에게 직접 노출되지 않지만, 내부적으로 여전히 중요한 역할을 합니다: 1. **그리드 레이아웃 계산**: 컴포넌트가 차지할 그리드 셀 수 결정 2. **자동 배치**: 컴포넌트 자동 정렬 시 참조 3. **반응형 조정**: 화면 크기 변경 시 비율 유지 ### 값 동기화 흐름 ``` 사용자 선택: "절반 (6/12)" ↓ 1. style.width = "50%" 저장 ↓ 2. gridColumns = 6 자동 계산 ↓ 3. 그리드 시스템에서 6컬럼 너비로 렌더링 ↓ 4. 실제 픽셀 너비 계산 및 적용 ``` ## 마이그레이션 가이드 ### 기존 화면 데이터 - **영향 없음**: 기존에 저장된 `gridColumns` 값은 그대로 유지 - **자동 변환**: 컴포넌트 편집 시 `style.width`로부터 재계산 ### 사용자 교육 1. "그리드 컬럼 수" 설정이 제거되었음을 안내 2. "컴포넌트 너비"로 동일한 기능 사용 가능 3. 더 직관적인 분수 표현 (1/4, 1/2 등) 강조 ## 테스트 체크리스트 ### UI 확인 - [ ] PropertiesPanel에 "그리드 컬럼 수" 입력 필드가 없는지 확인 - [ ] DataTableConfigPanel에 "그리드 컬럼 수" 선택 상자가 없는지 확인 - [ ] "컴포넌트 너비" 드롭다운이 정상 작동하는지 확인 ### 기능 확인 - [ ] 컴포넌트 너비 변경 시 시각적으로 제대로 반영되는지 확인 - [ ] 새 컴포넌트 생성 시 적절한 초기 너비로 생성되는지 확인 - [ ] 그리드 ON/OFF 시 너비가 올바르게 적용되는지 확인 ### 데이터 확인 - [ ] 컴포넌트 너비 변경 후 저장/불러오기 테스트 - [ ] 기존 화면 데이터가 정상적으로 로드되는지 확인 - [ ] `gridColumns` 값이 자동으로 계산되는지 확인 ## 관련 파일 ### 수정된 파일 - `/frontend/components/screen/panels/PropertiesPanel.tsx` - `/frontend/components/screen/panels/DataTableConfigPanel.tsx` - `/frontend/components/screen/ScreenDesigner.tsx` ### 관련 문서 - [컴포넌트*기본*너비*설정*가이드.md](./컴포넌트_기본_너비_설정_가이드.md) ## 버전 히스토리 ### v1.0.0 (2025-10-14) - "그리드 컬럼 수" 옵션 제거 - "컴포넌트 너비" 옵션으로 통합 - `gridColumns` 자동 계산 로직 추가