docs: 품목기준 데이터 정비 계획 - Phase 2A 롤백 및 Phase 2B 진행 반영

Phase 2A(설정 수정) 전체 롤백 기록 및 Phase 2B(데이터 우선 정비) 진행 상황 업데이트:
- Phase 2A: display_condition 깨짐으로 DB 복원 롤백 기록
- Phase 2B-1: FG 필드 4개 추가, SM/RM options ADD 완료
- Phase 2B-2: BOM 정상 확인
- Phase 2B-3: category_id 분류 780건 매핑 완료 (5개 신규 카테고리 추가)
- 접근 방식 변경: 설정 교체 금지, 추가만 허용, 데이터 우선 정비

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-31 05:03:06 +09:00
parent 0a80b79679
commit 4a615e48f0

View File

@@ -11,9 +11,9 @@
| 항목 | 내용 | | 항목 | 내용 |
|------|------| |------|------|
| **마지막 완료 작업** | Phase 2 전체 완료 (6/6) | | **마지막 완료 작업** | Phase 2B-3: category_id 분류 (780건 매핑 완료) |
| **다음 작업** | 프론트엔드 표시 검증 | | **다음 작업** | FG item_details 생성, PT/SM/RM attributes 매핑 |
| **진행률** | Phase 1 완료, Phase 2 완료 (6/6) | | **진행률** | Phase 1 완료, Phase 2A 롤백, Phase 2B 진행중 (3/5) |
| **마지막 업데이트** | 2026-01-31 | | **마지막 업데이트** | 2026-01-31 |
--- ---
@@ -69,16 +69,39 @@
| 1.3 | 이관된 제품 데이터 구조 분석 | ✅ | 아래 섹션 4.3 참조 | | 1.3 | 이관된 제품 데이터 구조 분석 | ✅ | 아래 섹션 4.3 참조 |
| 1.4 | BOM 관계 구조 분석 | ✅ | 아래 섹션 4.4 참조 | | 1.4 | BOM 관계 구조 분석 | ✅ | 아래 섹션 4.4 참조 |
### 2.2 Phase 2: 설정 수정 (견적 영향 없는 범위) ### 2.2 Phase 2A: 설정 수정 (롤백됨)
> **⚠️ 2026-01-31 DB 복원으로 전체 롤백됨**
> Phase 2A에서 PT Part_type options 값을 변경했으나, `display_condition`의 `expectedValue`와 불일치하여
> 조건부 화면 표시가 깨짐 (원본: "조립 부품(Assembly Part)" → 변경: "조립부품"). DB 백업에서 복원하여 전체 롤백.
| # | 작업 항목 | 상태 | 비고 | | # | 작업 항목 | 상태 | 비고 |
|---|----------|:----:|------| |---|----------|:----:|------|
| 2.1 | FG(제품) 필드 설정 정비 | ✅ | 완료: 4개 필드 추가(id:177-180), section 102 연결, order_no 정렬 | | 2.1 | FG(제품) 필드 설정 정비 | 🔄 롤백 | DB 복원으로 롤백. 아래 2B-1에서 재수행 |
| 2.2 | PT(부품) 필드 설정 정비 | ✅ | 완료: Part_type options 갱신(BD부품 추가, 라벨 간소화). display_condition은 5.6.4로 이관 | | 2.2 | PT(부품) 필드 설정 정비 | 🔄 롤백 | display_condition 깨짐으로 롤백 |
| 2.3 | SM/RM/CS 필드 설정 정비 | ✅ | 완료: RM options 실데이터(SUS/EGI/두께/폭/길이), SM 11개 카테고리, SM규격 빈 배열 | | 2.3 | SM/RM/CS 필드 설정 정비 | 🔄 롤백 | DB 복원으로 롤백. 아래 2B-1에서 재수행 |
| 2.4 | FG item_details 데이터 보완 | ✅ | 완료: 18건 INSERT (id:524-541), product_category/item_name/specification 설정 | | 2.4 | FG item_details 데이터 보완 | 🔄 롤백 | DB 복원으로 롤백 |
| 2.5 | 드롭다운 options 실데이터 매핑 | ✅ | 완료: 2.1~2.3에서 함께 처리 (FG 4개, PT Part_type, RM 5개, SM 3개) | | 2.5 | 드롭다운 options 실데이터 매핑 | 🔄 롤백 | DB 복원으로 롤백 |
| 2.6 | 고정컬럼-동적필드 섀도잉 정리 | ✅ | 완료: null key 1건, 미연결 5건 비활성화, is_active 중복 4건 통합 | | 2.6 | 고정컬럼-동적필드 섀도잉 정리 | 🔄 롤백 | DB 복원으로 롤백 |
**롤백 교훈:**
- options value 변경 시 반드시 `display_condition.expectedValue` 동기화 확인
- 기존 값은 교체(REPLACE)가 아닌 추가(ADD)로 접근
- 설정 구조 변경보다 데이터 정비를 먼저 수행
### 2.3 Phase 2B: 데이터 우선 정비 (현재 진행)
> **접근 방식 변경**: "품목기준관리는 그대로 두고 데이터만 먼저 맞추자"
> - 기존 설정 삭제/교체 금지, 추가만 허용
> - 데이터 분류 및 매핑을 먼저 완료한 후 설정 조정
| # | 작업 항목 | 상태 | 비고 |
|---|----------|:----:|------|
| 2B-1 | 필드 추가 (FG 4개 + SM/RM options ADD) | ✅ | FG id:177-180 추가, SM id:107 기존+11종 추가, RM id:100-104 기존+실데이터 추가 |
| 2B-2 | BOM 확인 | ✅ | FG 18건 BOM 이미 정상 구성됨 |
| 2B-3 | category_id 분류 | ✅ | categories 5건 추가(id:298-302), 780건 전체 매핑 완료 |
| 2B-4 | FG item_details 생성 | ⏳ | 18건 INSERT 필요 |
| 2B-5 | PT/SM/RM attributes 매핑 정비 | ⏳ | field_key와 attributes JSON 키 정합성 |
--- ---
@@ -630,12 +653,11 @@ WHERE f.id IN (116, 117, 129, 131, 136) AND f.tenant_id = 287;
| # | 항목 | 변경 내용 | 영향 범위 | 상태 | | # | 항목 | 변경 내용 | 영향 범위 | 상태 |
|---|------|----------|----------|------| |---|------|----------|----------|------|
| 1 | FG 필드 추가 | model_name, major_category, finishing_type, guiderail_type 4개 필드 추가 | item_fields, entity_relationships | ⏳ 대기 | | 1 | FG 필드 추가 | 4개 필드 추가(id:177-180) + SM/RM options 추가 | item_fields, entity_relationships | ✅ 완료 |
| 2 | PT 빈 field_key 처리 | id:152 비활성화 | item_fields | ⏳ 대기 | | 2 | category_id 분류 | categories 5건 추가, 780건 매핑 | categories, items | ✅ 완료 |
| 3 | RM/SM options 교체 | 플레이스홀더 → 실제 값 | item_fields.options | ⏳ 대기 | | 3 | FG item_details 생성 | 18건 INSERT 필요 | item_details | ⏳ 대기 |
| 4 | FG item_details 생성 | 18건 INSERT | item_details | ⏳ 대기 | | 4 | PT/SM/RM attributes 매핑 | field_key ↔ attributes JSON 키 정합성 | item_fields, items.attributes | ⏳ 대기 |
| 5 | is_active 중복 필드 통합 | 6개 동적필드 → 공통필드(id:163)로 교체 | entity_relationships, item_fields | ⏳ 대기 | | 5 | 섀도잉 정리 (재수행) | Phase 2A에서 롤백됨. display_condition 안전 확인 후 재수행 | entity_relationships, item_fields | ⏳ 대기 |
| 6 | 미연결 필드 비활성화 | id:116,117,129,131,136 비활성화 | item_fields | ⏳ 대기 |
--- ---
@@ -646,12 +668,13 @@ WHERE f.id IN (116, 117, 129, 131, 136) AND f.tenant_id = 287;
| 2026-01-31 | - | 문서 초안 작성 및 Phase 1 분석 완료 | - | - | | 2026-01-31 | - | 문서 초안 작성 및 Phase 1 분석 완료 | - | - |
| 2026-01-31 | 4.2.3 | 고정컬럼-동적필드 섀도잉 분석 추가 (is_active 6건, null key 1건, 미연결 5건) | - | - | | 2026-01-31 | 4.2.3 | 고정컬럼-동적필드 섀도잉 분석 추가 (is_active 6건, null key 1건, 미연결 5건) | - | - |
| 2026-01-31 | 5.6 | Phase 2에 섀도잉 정리 작업(2.6) 추가. 구체적 SQL, field id, entity_relationship 변경 계획 명시 | - | - | | 2026-01-31 | 5.6 | Phase 2에 섀도잉 정리 작업(2.6) 추가. 구체적 SQL, field id, entity_relationship 변경 계획 명시 | - | - |
| 2026-01-31 | 2.6 | Phase 2.6 실행 완료: null key(id:152) 비활성화, 미연결 5건(id:116,117,129,131,136) 비활성화, is_active 중복 통합(rel 7건 삭제, 공통필드 163을 section 94/95/99/102에 연결, 동적필드 105/133/138/164 비활성화). id:116,117은 계획과 달리 고아 section(97,98)에 연결 확인됨 | - | ✅ | | 2026-01-31 | 2.6 | Phase 2.6 실행 완료: null key(id:152) 비활성화, 미연결 5건 비활성화, is_active 중복 통합 | - | ✅ → 롤백 |
| 2026-01-31 | 2.1 | FG 필드 4개 추가(id:177-180: model_name/major_category/finishing_type/guiderail_type), section 102 연결, order_no 정렬 | item_fields, entity_relationships | ✅ | | 2026-01-31 | 2.1~2.5 | Phase 2A 전체 실행 완료 (FG 필드, PT options, RM/SM options, item_details, 섀도잉 정리) | - | ✅ → 롤백 |
| 2026-01-31 | 2.2 | PT Part_type options 갱신: BD부품 추가, 라벨 간소화 (4개: 조립/벤딩/구매/BD) | item_fields id:110 | | | 2026-01-31 | - | **⚠️ DB 복원 (전체 롤백)**: PT Part_type display_condition 깨짐 발견. 백업에서 DB 복원하여 Phase 2A 전체 롤백 | samdb 전체 | 롤백 |
| 2026-01-31 | 2.3 | RM options 실데이터 교체(재질4종, 두께7종, 폭1종, 길이6종), SM options 11개 카테고리. SM 규격 빈 배열 설정 | item_fields id:100-104,107-109 | | | 2026-01-31 | - | **접근 방식 변경**: 설정 변경 → 데이터 우선 정비로 전환. 기존 설정 교체 금지, 추가만 허용 | - | - |
| 2026-01-31 | 2.5 | 드롭다운 options 매핑 2.1~2.3에서 함께 완료 | - | ✅ | | 2026-01-31 | 2B-1 | FG 필드 4개 재추가(id:177-180), section 102 연결. SM id:107 기존 옵션 유지 + 11종 추가. RM id:100-104 기존 옵션 유지 + 실데이터 추가 | item_fields, entity_relationships | ✅ |
| 2026-01-31 | 2.4 | FG item_details 18건 생성(id:524-541). is_sellable=1, is_producible=1, product_category/item_name/specification 설정 | item_details | ✅ | | 2026-01-31 | 2B-2 | BOM 확인: FG 18건 모두 BOM 정상 구성됨 (스크린 3개 PT, 철재 2개 PT) | items.bom | ✅ |
| 2026-01-31 | 2B-3 | category_id 분류: categories 5건 추가(RAW_MATERIAL:298, FABRIC:299, SERVICE:300, GASKET:301, MISC_PART:302). 780건 전체 category_id 매핑 (RM→298, SM→217, CS→300, FG→214, PT→패턴매칭) | categories, items | ✅ |
--- ---