# [체크리스트] 렉 구조 위치코드/위치명 포맷 사용자 설정 > 관련 문서: [계획서](./LFC[계획]-위치포맷-사용자설정.md) | [맥락노트](./LFC[맥락]-위치포맷-사용자설정.md) --- ## 공정 상태 - 전체 진행률: **100%** (완료) - 현재 단계: 완료 --- ## 구현 체크리스트 ### 1단계: 타입 및 기본값 정의 - [x] `types.ts`에 `FormatSegment` 인터페이스 추가 - [x] `types.ts`에 `LocationFormatConfig` 인터페이스 추가 - [x] `types.ts`의 `RackStructureComponentConfig`에 `formatConfig?: LocationFormatConfig` 필드 추가 - [x] `config.ts`에 `defaultCodeSegments` 상수 정의 (현재 하드코딩과 동일한 결과) - [x] `config.ts`에 `defaultNameSegments` 상수 정의 (현재 하드코딩과 동일한 결과) - [x] `config.ts`에 `defaultFormatConfig` 상수 정의 - [x] `config.ts`에 `buildFormattedString()` 함수 구현 (stripKnownSuffix 방식) ### 2단계: FormatSegmentEditor 서브컴포넌트 생성 - [x] `FormatSegmentEditor.tsx` 신규 파일 생성 - [x] `@dnd-kit/sortable` 기반 드래그 순서변경 구현 - [x] 세그먼트별 체크박스로 한글 라벨 표시/숨김 토글 (showLabel) - [x] 라벨/구분/자릿수 3개 필드 항상 고정 표시 (빈 값이어도 입력 필드 유지) - [x] 최상단 컬럼 헤더 추가 (라벨 / 구분 / 자릿수), 각 행에서 텍스트 라벨 제거 - [x] grid 레이아웃으로 정렬 (`grid-cols-[16px_56px_18px_1fr_1fr_1fr]`) - [x] 자릿수 필드: 숫자 타입(열, 단)만 활성화, 비숫자 타입은 disabled + 회색 배경 - [x] `buildFormattedString`으로 실시간 미리보기 표시 ### 3단계: ConfigPanel에 포맷 설정 섹션 추가 - [x] `RackStructureConfigPanel.tsx`에 FormatSegmentEditor import - [x] UI 설정 섹션 아래에 "포맷 설정" 섹션 추가 - [x] 위치코드 포맷용 FormatSegmentEditor 배치 - [x] 위치명 포맷용 FormatSegmentEditor 배치 - [x] `onChange`로 `formatConfig` 업데이트 연결 ### 4단계: 컴포넌트에서 세그먼트 기반 코드 생성 - [x] `RackStructureComponent.tsx`에서 `defaultFormatConfig` import - [x] `generateLocationCode` 함수를 세그먼트 기반으로 교체 - [x] `config.formatConfig || defaultFormatConfig` 폴백 적용 ### 5단계: 검증 - [x] formatConfig 미설정 시: 기존과 동일한 위치코드/위치명 생성 확인 - [x] ConfigPanel에서 구분자 변경: 미리보기에 즉시 반영 확인 - [x] ConfigPanel에서 라벨 체크 해제: 한글만 사라지고 값은 유지 확인 (예: "A구역" → "A") - [x] ConfigPanel에서 순서 드래그 변경: 미리보기에 반영 확인 - [x] ConfigPanel에서 라벨 텍스트 변경: 미리보기에 반영 확인 - [x] 설정 저장 후 화면 재로드: 설정 유지 확인 - [x] 렉 구조 모달에서 미리보기 생성: 설정된 포맷으로 생성 확인 - [x] 렉 구조 저장: DB에 설정된 포맷의 코드/이름 저장 확인 ### 6단계: 정리 - [x] 린트 에러 없음 확인 - [x] 미사용 import 제거 (FormatSegmentEditor.tsx: useState) - [x] 파일 끝 불필요한 빈 줄 제거 (types.ts, config.ts) - [x] 계획서/맥락노트/체크리스트 최종 반영 - [x] 이 체크리스트 완료 표시 업데이트 --- ## 변경 이력 | 날짜 | 내용 | |------|------| | 2026-03-10 | 계획서, 맥락노트, 체크리스트 작성 완료 | | 2026-03-10 | 1~4단계 구현 완료 (types, config, FormatSegmentEditor, ConfigPanel, Component) | | 2026-03-10 | showLabel 로직 수정: 체크박스가 세그먼트 제거가 아닌 한글 라벨만 표시/숨김 처리 | | 2026-03-10 | 계획서, 맥락노트, 체크리스트에 showLabel 변경사항 반영 | | 2026-03-10 | UI 개선: 3필드 고정표시 + 컬럼 헤더 + grid 레이아웃 + 자릿수 비숫자 비활성화 | | 2026-03-10 | 계획서, 맥락노트, 체크리스트에 UI 개선사항 반영 | | 2026-03-10 | 라벨 필드 비움 시 한글 미제거 버그 수정 (stripKnownSuffix 도입) | | 2026-03-10 | 코드 정리 (미사용 import, 빈 줄) + 문서 최종 반영 | | 2026-03-10 | 5단계 검증 완료, 전체 작업 완료 |