- bom-v2-meeting-summary.md: 핵심 요약 (V1 한계, V2 변경점, 테이블, 로드맵, 논의사항) - bom-v2-architecture-presentation.pptx: 9장 슬라이드
4.3 KiB
4.3 KiB
BOM V2 아키텍처 — 개발팀 회의 요약
일자: 2026-03-22 | 상세 문서:
plans/bom-v2-universal-architecture-plan.md
1. 왜 V2가 필요한가 (V1 한계)
| 문제 | 현재 (V1) | 영향 |
|---|---|---|
| 3중 BOM 병렬 | Product BOM + Design BOM + Item BOM (JSON) | 데이터 불일치, 유지보수 3배 |
| 버전 관리 없음 | items.bom JSON 덮어쓰기 |
변경 이력 추적 불가 |
| 업종 종속 | 경동기업 수식 하드코딩 | 다른 회사 적용 불가 |
| 기능 부재 | 대체품목, 유효기간, 팬텀, 승인 없음 | 확장 불가 |
V2 목표: 3중 병렬 → 단일 BOM 엔진, 모든 업종 대응
2. V2 핵심 변경점
2.1 새 테이블 4개
items (기존 유지)
└── bom 컬럼 → 제거 (관계형으로 이관)
bom_headers (신규) ← BOM 버전/상태/유효기간
└── bom_lines (신규) ← 구성품 목록 (수량, 수식, 로스율, 공정 연결)
└── bom_substitutes (신규) ← 대체품목
operations (신규) ← 공정 라우팅 (BOM-공정 연동)
tenant_bom_settings (신규) ← 테넌트별 BOM 설정
2.2 BOM 유형 4→7종
| 유형 | 용도 | 대표 업종 |
|---|---|---|
| STANDARD | 고정 자재 구성 | 제조, 유통 세트 |
| FORMULA | 수식/배합비 | 블라인드, 식품, 화장품 |
| CONFIGURABLE | 옵션 선택형 | 보험 특약, 호텔, 가구 |
| ENGINEERING | 설계용 (승인 후 STANDARD 전환) | 전자, 자동차 |
| PROJECT | 수주형 1회성 | 건설 BOQ, SI, 광고 |
| SERVICE | 인력공수 + 실비 | 컨설팅, 물류, 정비 |
| SUBSCRIPTION | 정기 과금/반복 | SaaS, 렌탈, 교육 |
2.3 품목유형 5→15종
기존 유지: FG(완제품), PT(부품), SM(부자재), RM(원자재), CS(소모품)
물리적 추가: SA(반조립), WIP(재공품), PH(팬텀), BP(부산물)
비물리적 추가: SV(서비스), LB(노동), EQ(장비), LC(라이선스), TB(시간제), PK(패키지)
2.4 BOM 버전 워크플로우
DRAFT → PENDING → APPROVED → ACTIVE → OBSOLETE
↓ (설계 변경)
새 REVISION (REV.02)
3. 핵심 테이블 구조
bom_headers
| 컬럼 | 타입 | 설명 |
|---|---|---|
| item_id | FK→items | 부모 품목 |
| revision | VARCHAR(20) | REV.01, REV.02... |
| bom_type | VARCHAR(20) | 7종 중 하나 |
| status | VARCHAR(20) | DRAFT~OBSOLETE |
| effective_from/to | DATE | 유효기간 |
| base_qty | DECIMAL | 기준 수량 |
| source_template_id | FK→bom_templates | 수식 BOM 연결 |
bom_lines
| 컬럼 | 타입 | 설명 |
|---|---|---|
| child_item_id | FK→items | 자식 품목 |
| quantity | DECIMAL | 소요량 |
| quantity_formula | VARCHAR | 수식 ("W1*H1/1e6") |
| waste_rate | DECIMAL | 로스율 (5%=0.05) |
| category | VARCHAR | 카테고리 그룹명 |
| operation_id | FK→operations | 공정 연결 |
| is_optional | BOOLEAN | 옵션 여부 |
| option_group | VARCHAR | 옵션 그룹 (택1) |
| duration_value/unit | DECIMAL/VARCHAR | 기간 (구독/렌탈) |
| billing_cycle | VARCHAR | 과금 주기 |
| grade_level | VARCHAR | 인력 등급 |
4. V1 → V2 마이그레이션
Phase 1: V2 테이블 생성 (V1 유지)
Phase 2: items.bom JSON → bom_headers + bom_lines 이관
Phase 3: V2 API 추가 (V1 래퍼로 하위호환)
Phase 4: MNG/React UI 전환
Phase 5: V1 items.bom 컬럼 제거
핵심: V1 데이터 100% 무손실 이관, V1 API는 래퍼로 유지하여 점진적 전환
5. 구현 로드맵
| Phase | 기간 | 핵심 작업 |
|---|---|---|
| 1 | 2~3주 | DB 테이블 + 모델 + 기본 CRUD API + 데이터 이관 |
| 2 | 2~3주 | BOM 트리/전개/역전개 + 버전관리 + Diff |
| 3 | 3~4주 | 수식BOM + 대체품목 + 유효기간 + 공정연동 + 승인 |
| 4 | 2~3주 | MNG/React UI 전환 + 테넌트 설정 화면 |
6. 논의 사항
- Phase 1 시작 시점 (현재 진행 중인 작업과 우선순위)
- V1 API 래퍼 유지 기간 (프론트엔드 전환 완료까지?)
- 업종 프리셋 12개 중 Phase 1에서 구현할 범위
- 비물리적 품목유형 (LB, EQ, LC, TB, PK) 도입 시점
- Design BOM (bom_templates) 통합 vs. 병존 결정