# 5130 → SAM 품목 마이그레이션 마스터 플랜 > **프로젝트**: 5130 품목(부품, 자재, BOM) 데이터를 SAM API/MNG DB로 이전 > **시작일**: 2025-12-21 > **목표**: 5130의 item 관련 데이터를 SAM 구조에 맞게 마이그레이션 --- ## 1. 프로젝트 개요 ### 1.1 배경 - 5130(경동기업 레거시)과 SAM(신규 ERP)의 DB 구조가 상이 - 수작업 데이터 입력은 불가능한 데이터 볼륨 - 구조 분석 → 매핑 → 마이그레이션 전략 필요 ### 1.2 핵심 원칙 | 원칙 | 설명 | |------|------| | **분석 우선** | 양쪽 구조를 완벽히 파악 후 작업 | | **문서화 필수** | 모든 매핑/변환 규칙 문서화 | | **반복 검증** | 테스트 마이그레이션 → 수정 → 재시도 | | **롤백 가능** | 실패 시 복구 가능한 전략 | ### 1.3 대상 테이블 (5130) | 테이블 | 설명 | 우선순위 | |--------|------|----------| | `items` | 품목 기본 정보 | 🔴 필수 | | `item_sections` | 품목 섹션 | 🔴 필수 | | `item_pages` | 품목 페이지 | 🟡 중요 | | `item_id_mappings` | ID 매핑 관계 | 🟡 중요 | | `item_fields` | 필드 정의 | 🔴 필수 | | `item_details` | 품목 상세 데이터 | 🔴 필수 | | `item_bom_items` | BOM 구성 | 🔴 필수 | | `entity_relationships` | 엔티티 관계 | 🟡 중요 | --- ## 2. 작업 Phase 정의 ### Phase 1: 소스 분석 (5130) 🔵 진행중 **목표**: 5130 DB 구조 완벽 파악 체크리스트: - [x] 5130/docs 문서 확인 - [ ] Item 관련 테이블 스키마 조회 (DB 직접) - [ ] 테이블 간 관계도 작성 - [ ] 데이터 샘플 확인 - [ ] 데이터 볼륨 파악 **산출물**: `phase-1-source-analysis/` - `5130-item-schema.md` - 테이블 스키마 - `5130-item-relations.md` - 테이블 관계도 - `5130-data-samples.md` - 데이터 샘플 ### Phase 2: 타겟 분석 (SAM) ⚪ 대기 **목표**: SAM API/MNG DB 구조 파악 체크리스트: - [ ] api/docs 문서 확인 - [ ] SAM items 테이블 스키마 확인 - [ ] API 엔드포인트 구조 확인 - [ ] Multi-tenant 구조 파악 **산출물**: `phase-2-target-analysis/` - `sam-item-schema.md` - `sam-api-endpoints.md` ### Phase 3: 매핑 설계 ⚪ 대기 **목표**: 5130 → SAM 변환 규칙 정의 체크리스트: - [ ] 필드 매핑 테이블 작성 - [ ] 타입 변환 규칙 정의 - [ ] 관계 매핑 정의 - [ ] 누락/추가 필드 식별 - [ ] 데이터 변환 함수 설계 **산출물**: `phase-3-mapping/` - `field-mapping.md` - 필드 매핑 테이블 - `transform-rules.md` - 변환 규칙 - `gap-analysis.md` - Gap 분석 ### Phase 4: 마이그레이션 개발 ⚪ 대기 **목표**: 마이그레이션 스크립트 개발 체크리스트: - [ ] 마이그레이션 스크립트 설계 - [ ] 순서 결정 (의존성 기반) - [ ] 검증 쿼리 작성 - [ ] 롤백 스크립트 작성 **산출물**: `phase-4-migration/` - `migration-order.md` - `scripts/` (마이그레이션 스크립트) - `validation/` (검증 쿼리) ### Phase 5: 실행 및 검증 ⚪ 대기 **목표**: 실제 마이그레이션 및 검증 체크리스트: - [ ] 테스트 환경 마이그레이션 - [ ] 데이터 정합성 검증 - [ ] 오류 수정 및 재시도 - [ ] 최종 마이그레이션 - [ ] 완료 리포트 작성 **산출물**: `FINAL_REPORT.md` --- ## 3. 참조 정보 ### 3.1 5130 시스템 ```yaml DB명: chandj 엔진: MySQL 8.0 PHP: 7.3 도메인: 5130.co.kr, 5130.sam.kr (개발) 회사: 경동기업, 주일철강 ``` ### 3.2 SAM 시스템 ```yaml Framework: Laravel 12 PHP: 8.4+ Multi-tenant: tenant_id 기반 DB: items 테이블 (products + materials 통합 완료) ``` ### 3.3 주요 문서 - 5130: `5130/docs/DATABASE.md`, `MODULES.md`, `README.md` - SAM: `api/docs/`, `docs/guides/PROJECT_DEVELOPMENT_POLICY.md` - 워크플로우: `docs/guides/common-workflow-framework.md` --- ## 4. 문서 구조 ``` docs/projects/5130-migration/ ├── MASTER_PLAN.md # 이 문서 ├── PROGRESS.md # 진행 상황 추적 │ ├── phase-1-source-analysis/ # 🔵 진행중 │ ├── README.md │ ├── 5130-item-schema.md │ ├── 5130-item-relations.md │ └── 5130-data-samples.md │ ├── phase-2-target-analysis/ # ⚪ 대기 │ ├── README.md │ ├── sam-item-schema.md │ └── sam-api-endpoints.md │ ├── phase-3-mapping/ # ⚪ 대기 │ ├── README.md │ ├── field-mapping.md │ ├── transform-rules.md │ └── gap-analysis.md │ ├── phase-4-migration/ # ⚪ 대기 │ ├── README.md │ ├── migration-order.md │ ├── scripts/ │ └── validation/ │ └── FINAL_REPORT.md ``` --- ## 5. 세션 영속성 ### 5.1 Serena 메모리 ``` 5130-migration-state → 현재 phase, task, 다음 액션 5130-migration-context → 분석 결과, 결정사항, 참조 ``` ### 5.2 세션 복구 1. `serena.list_memories()` → 상태 확인 2. `PROGRESS.md` → 상세 진행상황 3. "다음 액션"부터 재개 ### 5.3 업데이트 시점 | 시점 | 행동 | |------|------| | 세션 시작 | `read_memory(state)` → 이어서 진행 | | Phase 완료 | `write_memory(state)` + PROGRESS.md | | 중요 발견 | `write_memory(context)` | | 세션 종료 | 양쪽 최종 저장 | --- ## 6. 작업 프로세스 ### 6.1 기본 원칙 (common-workflow-framework 참조) - **분석 작업**: 분석 → 문서화 → 확인 - **마이그레이션**: 설계 → 개발 → 테스트 → 수정 (반복) ### 6.2 단계별 프로세스 | Phase | 유형 | 프로세스 | |-------|------|----------| | 1-2 | 분석 | 조사 → 문서화 → 검토 | | 3 | 설계 | 매핑 → 규칙정의 → 검토 | | 4 | 개발 | 스크립트 → 테스트 → 수정 | | 5 | 실행 | 마이그레이션 → 검증 → 수정 (반복) | --- ## 7. 현재 상태 ### 7.1 Phase 1 진행 현황 - ✅ 5130/docs 문서 확인 완료 - ⚠️ Item 테이블 스키마가 문서에 없음 → DB 직접 조회 필요 - ⏳ 다음 액션: 5130 DB에서 Item 테이블 스키마 조회 ### 7.2 발견 사항 - 5130/docs에는 `output`, `estimate`, `instock`, `eworks` 등 업무 테이블만 문서화 - Item 관련 8개 테이블은 문서 미작성 → 실제 DB에서 직접 분석 필요 --- ## 변경 이력 | 날짜 | 변경 내용 | 작성자 | |------|----------|--------| | 2025-12-21 | 초기 마스터 플랜 작성 | Claude |