12 KiB
12 KiB
절곡품(Bending Parts) 관리 현황 분석
작성일: 2026-03-16 분류: 갭 분석 / 기능 비교 대상: 경동기업(5130) 가이드레일 시스템 vs SAM 시스템
배경 및 질문
경동기업(5130)에는 절곡품(가이드레일) 관리 리스트가 있다.
(5130.codebridge-x.com/guiderail/list.php)
견적/수주를 하면 해당 제품의 가이드레일을 불러와 이미지들을 보여주는 역할을 하며, 개별 절곡품들을 조합하여 가이드레일을 구성하는 구조이다.
SAM 시스템에서도 견적(dev.sam.kr/sales/quote-management/new)에서 가이드레일이 나오는데,
경동기업과 같이 절곡품 이미지를 보여주고 조합할 수 있어야 한다.
구체적 질문
- SAM의
items테이블에BD-XX-XXX코드 품목들이 있는데, 경동기업 절곡품처럼 이미지 표현과 조합 구성이 가능한 상태인가? - 초기 개발 시 절곡품을 고려하지 않고 개발 후 추후 items에 밀어넣었는데, 경동기업 수준의 관리가 되고 있는가?
- 경동기업 절곡품 시스템과 SAM 시스템 간 갭은 무엇인가?
1. 경동기업(5130) 절곡품 관리 체계
1.1 시스템 구조
bending 테이블 (개별 절곡품)
├─ 품명, 대분류(스크린/철재), 중분류(가이드레일/케이스/하단마감재)
├─ 규격(120*70), 재질(SUS 1.2T), 모델명(KSS01)
├─ 인정/비인정 구분
├─ 치수 JSON (inputList), 연신율 JSON (bendingrateList)
├─ 합계 JSON (sumList), 색상 마킹 (colorList)
└─ 검색 키워드 (130x75한빛, 주일-130x70 등)
guiderail 테이블 (조합 전개도)
├─ 모델별 부품 조합 정의 (proditem1~8)
├─ 전개도 이미지 저장
└─ 견적에서 호출되어 이미지 표시
1.2 주요 기능
| 기능 | 구현 파일 | 설명 |
|---|---|---|
| 절곡품 마스터 리스트 | guiderail/list.php |
22개 모델 정의, CRUD 관리 |
| 절곡품 이미지 관리 | put_guiderail_image.php |
이미지 업로드 + Canvas 드로잉 (drawingTool.js) |
| 모델별 부품 조합 | fun_guiderail.php |
KSS01 등 모델마다 1~8개 부품 조합 (getProductData()) |
| 절곡품 검색 | search_bending.php |
대분류/규격/재질/인정여부 복합 필터 |
| 견적에서 호출 | fetch_guiderail_detail.php |
견적 시 해당 모델의 이미지 + 부품 표시 |
| 메타데이터 | guiderail.json |
22개 모델 정의 (이미지 경로, 분류, 마감 유형) |
1.3 모델별 부품 조합 예시 (KSS01 벽면형)
proditem1: ①②마감재 (SUS 1.2T, 수량2)
proditem2: ③본체 (EGI 1.55T, 수량1)
proditem3: ④벽면형-C (EGI 1.55T, 수량1)
proditem4: ⑤벽면형-D (EGI 1.55T, 수량1)
1.4 이미지 관리
- 저장 경로:
/5130/guiderail/images/,/5130/bending/img/ - 파일명 규칙:
YYYY_MM_DD_HH_MM_SS_[모델명].png - 드로잉 도구: Canvas 기반
drawingTool.js로 실시간 전개도 생성
1.5 bending 테이블 주요 컬럼
| 컬럼 | 설명 | 예시 |
|---|---|---|
itemName |
품명 | 가이드레일 |
item_sep |
대분류 | 스크린, 철재 |
item_bending |
중분류 | 가이드레일, 케이스, 하단마감재 |
item_spec |
규격 | 12070, 120120 |
material |
재질 | SUS 1.2T, EGI 1.55T |
model_UA |
인정여부 | 인정, 비인정 |
model_name |
모델명 | KSS01, KWE01, KQTS01 |
search_keyword |
검색어 | 130x75한빛 |
inputList |
치수 JSON | [...] |
bendingrateList |
연신율 JSON | [...] |
sumList |
합계 JSON | [...] |
colorList |
색상 마킹 JSON | [...] |
rail_width |
레일 폭 | 70, 120 |
2. SAM 시스템 현재 상태
2.1 BD-XX-XXX 코드 체계
BendingItemSeeder로 ~40개 품목이 items 테이블에 등록되어 있다.
코드 구조: BD-{PREFIX}-{LENGTH_CODE}
| PREFIX | 용도 | 예시 |
|---|---|---|
| RS/RE | 가이드레일 마감재 (벽면) | BD-RS-30 |
| SS/SE | 가이드레일 마감재 (측면) | BD-SS-35 |
| RM | 가이드레일 본체 (벽면) | BD-RM-42 |
| SM | 가이드레일 본체 (측면) | BD-SM-24 |
| RC/RD | 가이드레일 C형/D형 (벽면) | BD-RC-30 |
| BS/TS | 하단마감재 (SUS/철재) | BD-BS-40 |
| LA | L-Bar | BD-LA-40 |
| HH | 보강평철 | BD-HH-30 |
| CF/CL/CP/CB | 셔터박스 부품 | BD-CF-35 |
| GI | 연기차단재 | BD-GI-54 |
| XX | 하부BASE/상부덮개/마구리 (공용) | BD-XX-35 |
| YY | 별도마감 | BD-YY-30 |
길이코드 매핑:
| 코드 | mm | 코드 | mm |
|---|---|---|---|
| 12 | 1219 | 40 | 4000 |
| 24 | 2438 | 41 | 4150 |
| 30 | 3000 | 42 | 4200 |
| 35 | 3500 | 43 | 4300 |
2.2 items 테이블 저장 구조
{
"item_type": "PT",
"item_category": "BENDING",
"code": "BD-RS-30",
"name": "가이드레일 마감재 3000mm",
"options": {
"source": "bending_item_seeder",
"lot_managed": true,
"consumption_method": "auto",
"production_source": "self_produced",
"input_tracking": true,
"prefix": "RS",
"length_code": "30",
"length_mm": 3000
}
}
2.3 SAM에서 구현된 기능
| 기능 | 파일 | 설명 |
|---|---|---|
| 동적 BOM 생성 | BendingInfoBuilder.php (1172줄) |
제품코드별 자동 부품 조합 |
| Prefix 자동 결정 | PrefixResolver.php (300줄) |
BD-코드 자동 매핑 |
| 작업지시서 절곡 표시 | GuideRailSection 등 (React) |
가이드레일/하단마감재/셔터박스/연기차단재 테이블 |
| 절곡 검사 (Phase 3) | inspection-config API |
공정 자동 판별, BOM 기반 구성품 로딩 |
| 정적 이미지 | api/public/images/bending/ |
22개 이미지 (6개 모델 × 벽면/측면) |
| 재질 매핑 | BendingInfoBuilder |
제품코드별, 마감재질별 자동 결정 |
2.4 데이터 흐름
Quote (견적)
└─ calculation_inputs: { items[], bomResults[] }
↓ OrderService::store()
OrderNode (개소별)
└─ options: { product_code, bom_result }
↓ OrderService::createWorkOrders()
WorkOrder (작업지시)
└─ work_order_items[].options: {
bending_info: {
productCode, finishMaterial,
guideRail: { wall, side },
bottomBar, shutterBox, smokeBarrier
},
slat_info: { joint_bar, glass_qty }
}
↓ 프론트 렌더링
작업일지
├─ 가이드레일 (이미지 + 테이블)
├─ 하단마감재
├─ 셔터박스
└─ 연기차단재
3. 갭 분석
3.1 핵심 갭 (경동기업에 있고 SAM에 없는 것)
🔴 ① 절곡품 마스터 관리 화면
| 항목 | 경동기업(5130) | SAM |
|---|---|---|
| 관리 화면 | guiderail/list.php — CRUD |
❌ 없음 |
| 필터링 | 대분류/규격/재질/인정여부 복합 필터 | ❌ 없음 |
| 검색 | 키워드 기반 통합 검색 | ❌ 없음 |
BD-XX-XXX 품목이 items 테이블에 등록만 되어 있고, 절곡품 전용 관리 화면이 없다.
🔴 ② 견적 시 가이드레일 이미지 표시
| 항목 | 경동기업(5130) | SAM |
|---|---|---|
| 견적 화면 | 모델 선택 → 전개도 이미지 + 부품 조합 표시 | ❌ 이미지 미표시 |
| 호출 방식 | fetch_guiderail_detail.php |
해당 기능 없음 |
견적 페이지(/sales/quote-management/new)에서 가이드레일 선택은 되지만 이미지가 표시되지 않는다.
🔴 ③ 절곡품 개별 전개도 데이터
| 항목 | 경동기업(5130) | SAM |
|---|---|---|
| 치수 데이터 | inputList JSON |
❌ 없음 |
| 연신율 데이터 | bendingrateList JSON |
❌ 없음 |
| 합계 계산 | sumList JSON |
❌ 없음 |
| 색상 마킹 | colorList JSON |
❌ 없음 |
| 전개도 드로잉 | Canvas 기반 실시간 생성 | ❌ 없음 |
BendingInfoBuilder는 조합 로직만 있고, 개별 절곡품의 전개도 상세 데이터는 저장되지 않는다.
3.2 보조 갭
🟡 ④ 절곡품 속성 풍부도
| 속성 | 경동기업 bending 테이블 |
SAM items.options |
|---|---|---|
| 품명 | ✅ itemName |
✅ name |
| 대분류 | ✅ item_sep (스크린/철재) |
❌ 없음 |
| 중분류 | ✅ item_bending (가이드레일/케이스) |
❌ 없음 |
| 규격 | ✅ item_spec (120*70) |
❌ 없음 |
| 재질 | ✅ material (SUS 1.2T) |
❌ 없음 |
| 모델명 | ✅ model_name (KSS01) |
❌ 없음 |
| 인정여부 | ✅ model_UA |
❌ 없음 |
| 검색키워드 | ✅ search_keyword |
❌ 없음 |
| 레일 폭 | ✅ rail_width |
❌ 없음 |
| prefix | ❌ | ✅ options.prefix |
| 길이코드 | ❌ | ✅ options.length_code |
| 길이(mm) | ❌ | ✅ options.length_mm |
🟡 ⑤ 이미지 업로드/드로잉 기능
| 항목 | 경동기업(5130) | SAM |
|---|---|---|
| 이미지 업로드 | ✅ put_guiderail_image.php |
❌ 없음 |
| Canvas 드로잉 | ✅ drawingTool.js |
❌ 없음 |
| 이미지 저장 | 동적 생성 + 파일 저장 | 정적 파일 22개만 |
3.3 SAM이 우위인 부분
| 영역 | 설명 |
|---|---|
| 동적 BOM | BendingInfoBuilder가 제품코드별 자동 조합 (5130은 하드코딩) |
| Prefix 체계 | PrefixResolver로 BD-코드 자동 결정 (5130은 수동) |
| 작업지시 연동 | work_order_items.options.bending_info로 구조화된 데이터 전달 |
| 검사 동적 구현 | Phase 3에서 API 기반 검사 완료 (5130보다 진보적) |
| 멀티테넌시 | 테넌트별 독립 관리 가능 (5130은 단일) |
4. 종합 비교
경동기업(5130) SAM 시스템
───────────────────────────── ─────────────────────────────
[절곡품 마스터 관리] ─────────────→ ❌ 없음 (items에 등록만)
├─ 이미지/전개도 관리 ├─ 정적 이미지 22개만
├─ 치수/연신율 데이터 ├─ ❌ 없음
├─ 검색/필터 └─ ❌ 없음
└─ CRUD 화면
[가이드레일 조합] ───────────────→ ✅ BendingInfoBuilder (더 체계적)
├─ 모델별 부품 정의 ├─ ✅ 동적 BOM 생성
├─ 재질 자동 매핑 ├─ ✅ PrefixResolver
└─ 견적에서 이미지 표시 └─ ❌ 이미지 미표시
[절곡 검사] ─────────────────────→ ✅ Phase 3 완료 (더 진보적)
├─ 중간검사 ├─ ✅ inspection-config API
└─ 하드코딩 검사 └─ ✅ 동적 검사
5. 결론
SAM은 절곡품의 "계산과 조합"은 잘 되어 있지만, "관리와 시각화"가 빠져 있다.
경동기업처럼 절곡품을 독립적으로 관리하고 견적에서 이미지를 보여주려면, 절곡품 마스터 관리 기능을 새로 구현해야 한다.
필요 작업 (예상)
- 절곡품 마스터 관리 화면 — mng 또는 react에 CRUD + 필터링
- items.options 속성 확장 — 대분류, 중분류, 규격, 재질, 모델명 등
- 견적 화면 이미지 연동 — 모델 선택 시 가이드레일 전개도 이미지 표시
- 전개도 데이터 구조 — 치수/연신율/합계 JSON 저장 방안 설계
- 이미지 업로드 기능 — 절곡품별 전개도 이미지 관리
관련 문서
- 통합 마스터 플랜:
docs/dev/dev_plans/integrated-master-plan.md - Phase 2 (절곡 분석/설계):
docs/dev/dev_plans/integrated-phase-2.md - Phase 3 (절곡 검사, 완료):
docs/dev/dev_plans/integrated-phase-3.md - 품목 정책:
docs/rules/item-policy.md