선박 전기 케이블
관리 시스템
Shipboard Electrical
Cable Management
Heap-Dijkstra 라우팅 · IEC 60092 / 8선급 자동 검증 · 실시간 3D 노드맵 · AI 분석. 35,000개 케이블을 단일 플랫폼에서 설계·라우팅·검증·조달합니다.
Heap-Dijkstra routing · IEC 60092 / 8-class verification · Real-time 3D node map · AI 엔진 analytics. Design, route, verify, and procure 35,000 cables on a single platform.
SEcMS 소개
About SEcMS
1.1 핵심 차별화 3가지1.1 Three Key Differentiators
① 0.1% 오차 라우팅① 0.1% Accuracy Routing
Heap-Dijkstra + 4-Worker Pool. 35,000 케이블을 수 분 내 경로 계산. 조선소·선급 검수 기준 정밀도.
Heap-Dijkstra with 4-worker pool. 35k cables routed within minutes at shipyard-grade precision.
② 3D 노드맵② 3D Node Map UNIQUE
@react-three/fiber 기반 실시간 3D. DXF 임포트, 공간 근접 자동 연결, 크로스섹션, 경로 재생.
Real-time 3D via @react-three/fiber. DXF import, auto-connect by proximity, cross-section, path playback.
③ 8선급 × 13규칙 자동검증③ 8-Class × 13-Rule Auto-Check
KR / DNV / LR / BV / ABS / NK / RINA / CCS 8개 선급 규칙 + IEC 60092 / IEC 61537 내장.
KR / DNV / LR / BV / ABS / NK / RINA / CCS class rules + IEC 60092 / IEC 61537 built-in.
1.2 대상 사용자1.2 Target Users
로그인 · 초대코드 · 프로젝트
Login · Invite Code · Project
2.1 로그인2.1 Login
SEcMS는 Firebase Google OAuth로 로그인합니다. secms.tech 랜딩에서 Sign In을 누르면 Google 계정 팝업이 뜹니다.
SEcMS uses Firebase Google OAuth. Click Sign In on the landing page and a Google account popup appears.
Google 승인자Pre-approved Google user
초대 이메일로 사전 등록된 계정은 로그인 즉시 Projects 화면으로 이동합니다. 별도 초대코드 불필요.
Pre-registered accounts land on Projects immediately. No invite code needed.
Google 미승인자Un-approved Google user
초대코드 입력 화면이 뜹니다. 관리자에게 발급받은 코드를 입력하면 해당 tenant에 참여합니다.
An invite-code prompt appears. Enter the code issued by the admin to join a tenant.
프로젝트 선택Choose a project
tenant에 소속된 뒤 Projects 목록에서 프로젝트를 선택하거나 신규 생성합니다.
After joining a tenant, select an existing project or create a new one.
2.2 초대코드 입력2.2 Enter Invite Code
초대코드는 tier × 역할을 조합한 14자리 문자열입니다. 관리자 패널에서 발급 · 회수 · 잠금 가능.
Invite codes are 14-char strings encoding tier × role. Admins can issue / revoke / lock codes.
| Tier | 기간Duration | 최대 프로젝트Max projects | AI 분석AI analytics | 주요 제한Limits |
|---|---|---|---|---|
| trial | 30 일days | 1 | 50/월mo | 3D 읽기 전용3D read-only |
| beta | 90 일days | 3 | 500/월mo | DXF 내보내기 제한DXF export limited |
| pro | ∞ | ∞ | ∞ | 전 기능All features |
invalid_code / code_locked(429) / code_expired / code_exhausted / email_mismatch 등 에러는 22장 트러블슈팅 참고.
Errors like invalid_code / code_locked(429) / code_expired / code_exhausted / email_mismatch — see ch. 22 Troubleshooting.
2.3 프로젝트 선택2.3 Select Project
SEcMS는 멀티테넌시(v10) 구조입니다. tenant 하나에 여러 프로젝트, 프로젝트마다 별도 케이블·노드·BOM·히스토리를 보관합니다.
SEcMS is multi-tenant (v10). One tenant holds many projects, each with isolated cables / nodes / BOM / history.
대시보드
Dashboard
프로젝트 진입 시 기본으로 열리는 홈 화면. 오늘의 KPI · 경고 · 빠른 액션을 한눈에 확인합니다.
The default home screen after entering a project — KPIs, alerts, and quick actions at a glance.
3.1 주요 위젯3.1 Key Widgets
케이블 카운터Cable Counter
전체 / 라우팅 완료 / 실패 / 검증 통과 수
Total / routed / failed / verified
트레이 충전율Tray Fill %
최상위 5개 트레이, 90% 초과 경고
Top 5 trays, >90% alerts
BOM 미확정BOM Pending
타입 미지정·길이 미확정 건수
Unspecified type / length counts
AI 리포트AI Report
최근 AI 분석 요약 3줄
Latest AI summary (3 lines)
3.2 입출력3.2 I/O
케이블 목록
Cable List
프로젝트의 모든 케이블을 SAP 스타일 그리드로 표시. Excel/PDF 업로드, 컬럼 자동 매핑, 3D 경로 팝업, 필터·검색·인라인 편집을 지원합니다.
All cables shown in a SAP-style grid. Excel/PDF import, auto column mapping, 3D route popup, filter/search/inline edit.
4.1 업로드 흐름4.1 Upload Flow
파일 드롭Drop file
.xlsx / .xls / .csv / .pdf 드래그앤드롭. 여러 시트는 자동으로 첫 시트부터 스캔.
Drag & drop .xlsx/.xls/.csv/.pdf. Multiple sheets auto-scanned.
컬럼 매퍼Column Mapper
파서가 헤더를 자동 인식 (Tag / From / To / Type / Length 등). 수동 수정 가능.
Parser auto-detects headers (Tag/From/To/Type/Length). Manually correctable.
미리보기Preview
상위 20행 미리보기 + 오류 하이라이트. 확인 후 Import.
Top 20 rows preview with error highlight. Confirm Import.
4.2 주요 버튼4.2 Main Buttons
cables.write 없으면 그리드는 읽기 전용입니다.Without cables.write permission the grid is read-only.노드 정보
Node Info
케이블의 시작·종료점과 경유 노드를 관리. 노드표준(자체 표준) POINT 컬럼을 자동 파싱하고, DXF 좌표와 공간 근접 자동 연결합니다.
Manage cable endpoints and intermediate nodes. Auto-parses POINT columns and connects by spatial proximity to DXF coords.
5.1 POINT 컬럼 파싱5.1 POINT Column Parsing
S: 12.345, 6.780, 2.100 // Start x, y, z (m) E: 12.345, 18.200, 2.100 // End x, y, z (m)
S: / E: 접두사 자동 인식. 밀리미터 단위는 mm 접미사로 지정 가능.
S:/E: prefixes auto-detected. Append mm for millimeter unit.
5.2 공간 근접 자동 연결5.2 Auto-Connect by Proximity
5.3 주요 버튼5.3 Main Buttons
BOM (Bill of Materials)
BOM (Bill of Materials)
라우팅이 완료된 케이블로부터 물량을 자동 집계. 타입별·덱별·시스템별 합계, 여유율 적용, Excel / PDF 내보내기 지원.
Auto-aggregates BOM from routed cables. Totals by type/deck/system, slack factor, Excel/PDF export.
6.1 집계 규칙6.1 Aggregation Rules
6.2 주요 버튼6.2 Main Buttons
라우팅
Routing
services/routing.ts, smartRouter.ts, solver.ts, *.worker.ts)은 정확성 보존을 위해 수정 금지.
Routing engine files are immutable to preserve accuracy.
Heap-Dijkstra 기반 최단경로 탐색. 트레이 점유·전압강하·선급 규칙을 가중치로 반영. 4-worker pool로 35k 케이블을 분산 처리합니다.
Heap-Dijkstra shortest path. Weights encode tray usage, voltage drop, class rules. 4-worker pool parallelizes 35k cables.
7.1 실행 흐름7.1 Execution Flow
사전 검사Pre-check
From/To 노드 존재, 좌표 유효성 점검 (Node Check 탭과 동일 규칙).
Verify From/To exist and coords valid (same rules as Node Check).
Worker 분배Worker dispatch
케이블을 4-worker에 균등 분배. 진행률 실시간 표시.
Cables split across 4 workers with live progress.
결과 집계Aggregation
성공 경로 + 실패 케이블 + Failed Routes 탭으로 자동 링크.
Success paths + failed list auto-linked to Failed Routes tab.
7.2 주요 에러7.2 Main Errors
| Code | 의미Meaning | 조치Action |
|---|---|---|
ERR_NODE_NOT_SET | From/To 미지정From/To missing | Cable List에서 노드 지정Assign nodes in Cable List |
ERR_NODE_NOT_FOUND | 노드 ID 불일치Node ID mismatch | Nodes 탭에서 ID 확인Verify ID in Nodes tab |
ERR_CHECKPOINT_NOT_FOUND | 경유점 누락Checkpoint missing | 체크포인트 재지정 또는 해제Re-pick or remove |
ERR_NO_PATH | 연결 불가No path | 노드 연결성 또는 차단 규칙 확인Check connectivity or block rules |
WORKER_CRASH | worker 비정상 종료Worker died | 새로고침 후 재실행Reload and retry |
트레이
Tray
트레이 단면을 9×8 그리드로 나누어 케이블 배치를 물리 시뮬레이션. IEC 61537 표준 사이즈 자동 추천 + 충전율 시각화.
Tray cross-section simulated on a 9×8 grid. IEC 61537 size auto-recommendation with fill-rate visualization.
8.1 셀 배치 규칙8.1 Cell Packing Rules
8.2 IEC 61537 추천8.2 IEC 61537 Recommendation
충전율이 40%를 초과하면 다음 표준 사이즈(100 / 150 / 200 / 300 / 400 / 600 mm)를 자동 추천합니다.
Auto-suggests next standard size (100 / 150 / 200 / 300 / 400 / 600 mm) when fill-rate exceeds 40%.
3D 뷰
3D View
@react-three/fiber 기반 실시간 3D 뷰어. 선체·트레이·케이블 경로를 동시 렌더링. 크로스섹션, 경로 재생, 시스템별 색상 범례 제공.
Real-time 3D viewer via @react-three/fiber. Renders hull / trays / cable paths. Cross-section, playback, system colour legend.
9.1 뷰 모드9.1 View Modes
Overview
전체 선체 + 트레이 네트워크
Whole hull + tray network
Cross Section
덱별 / 프레임별 슬라이스
Slice by deck / frame
Path Playback
선택 케이블 경로를 애니메이션
Animate selected cable route
9.2 색상 범례9.2 Colour Legend
분석 (AI 엔진)
Analysis (AI 엔진)
AI API (4-key 라운드로빈)로 프로젝트 전반을 자연어 분석. BOM 이상치, 라우팅 병목, 선급 규칙 위반을 요약 리포트로 출력.
Natural-language project analysis via AI (멀티-키 라운드로빈). Summarizes BOM anomalies, routing bottlenecks, class violations.
10.1 4-Key 라운드로빈10.1 4-Key Round-Robin
AI_API_KEY를 순차 사용, 소진된 키는 자동 스킵. 전부 고갈되면 503 NO_API_KEY.
Uses AI_API_KEY in turn, skipping exhausted keys. All exhausted → 503 NO_API_KEY.
10.2 예시 프롬프트10.2 Example Prompts
BOM 이상치BOM anomalies
"이번 프로젝트에서 평균 대비 10% 이상 길이가 튀는 케이블을 알려줘"
"List cables over 10% above average length"
라우팅 병목Routing bottleneck
"충전율 90% 넘는 트레이 구간 요약"
"Summarize tray sections over 90% fill"
선급 위반Class violations
"DNV 규칙 위반 케이블 top 5"
"Top 5 cables violating DNV rules"
히스토리
History
프로젝트 전 기간의 변경 이벤트를 시계열로 기록. 케이블·노드·BOM·라우팅 결과 변경까지 포함. 스냅샷으로 언제든지 롤백 가능합니다.
Time-series of all project events incl. cable / node / BOM / routing changes. Snapshots allow rollback anytime.
11.1 주요 버튼11.1 Main Buttons
프로젝트
Projects
tenant 내 프로젝트를 생성·수정·삭제·전송. 멤버 초대, 역할 지정, 프로젝트별 설정(여유율·단위계) 관리.
Create / modify / delete / transfer projects within a tenant. Invite members, assign roles, configure per-project settings (slack, units).
12.1 주요 버튼12.1 Main Buttons
케이블 타입 DB (349종)
Cable Type DB (349)
349종의 기본 케이블 타입 DB (IEC 60092-353, BS 6883, Mil-DTL 등). 외경·심수·무게·허용전류·선급 승인 정보 포함. 사용자 정의 타입 추가 가능.
349 preset cable types (IEC 60092-353, BS 6883, Mil-DTL, etc.) with OD, cores, weight, ampacity, class approvals. User types addable.
13.1 주요 컬럼13.1 Main Columns
LKSM-FA-2x1.513.2 사용자 추가 타입13.2 User-Added Types
+ New Type 버튼으로 커스텀 타입 추가. tenant 스코프로 저장되어 같은 tenant 내 모든 프로젝트에서 공유.
Click + New Type for custom entries. Saved at tenant scope and shared across tenant projects.
검증 (4개)
Validation (4)
총 5개 검증 탭. 산업 규칙 13종 · 선급 규칙 8종을 자동 체크하고 위반 케이블을 목록화합니다.
Five validation tabs. Auto-check 13 industry rules and 8 class rules, listing violations.
Interference validation.read
동일 트레이 내 전력 × 신호 간섭 규칙 검사
Power × signal interference within shared tray
Voltage Drop validation.read
케이블 사이즈 대비 전압강하 % 계산 (IEC 60092)
% drop vs cable size (IEC 60092)
Class Rule validation.read
KR / DNV / LR / BV / ABS / NK / RINA / CCS 8선급 규칙
8-class rule engine
Failed Routes routing.read
라우팅 실패 케이블 + 원인 코드 리포트
Failed cables with error codes
Node Check nodes.read
고아 노드 · 좌표 누락 · 중복 ID 검사
Orphan nodes, missing coords, dup IDs
물량 (3개)
Quantity (3)
BOM Advanced bom.read
타입 · 덱 · 시스템 교차 pivot. 비용 · 납기 컬럼 추가.
Cross-pivot by type / deck / system. Cost / lead-time columns.
Drum bom.read
드럼(릴) 단위 최적 절단. 자투리 최소화 알고리즘.
Optimal drum cuts to minimize offcuts.
Deck Qty bom.read
덱별 물량 수동 지정 zone 설정 (2026-04 추가).
Manual deck-zone assignment (added 2026-04).
고급 (2개)
Advanced (2)
Bottleneck advanced.read
트레이 충전율 · 분기점 집중도 분석. 병목 구간 지도.
Tray-fill and junction hotspot map.
Kave Router advanced.read
특수 경유점 기반 라우팅 (터널 / 케이블 피트).
Special-checkpoint routing (tunnels, pits).
Node Relation Builder advanced.write
노드 간 관계 수동 편집 GUI. 공간 근접 규칙 오버라이드.
Manual node-relation editor. Overrides proximity rules.
조달·포설 (4개)
Procurement & Install (4)
Procurement procurement.read
발주서 생성, 납기 관리, 벤더별 수량 집계.
PO creation, delivery tracking, vendor totals.
POS pos.write
Pull-out Schedule 생성기. JB localStorage 유지 (2026-04).
Pull-out Schedule generator. JB localStorage persisted (2026-04).
Installation install.read
포설 진척 % 입력, 작업반별 할당.
Installation progress %, crew assignment.
Inventory inventory.read
재고 잔량 추적, 재고 부족 실시간 알림 (2026-04).
Stock balance, low-stock real-time alert (2026-04).
도구 (4개)
Tools (4)
Cable Converter tools.read
외부 포맷(Aveva / Intergraph / Smart 3D) → SEcMS 스키마 변환.
Convert from external formats to SEcMS schema.
Cable Manual tools.read
케이블 타입별 설치·취급 매뉴얼 링크 모음.
Install / handling manual links per cable type.
Cable Tray 3D tools.read
노드표준 전용 3D Viewer / Editor (독립 실행).
Node-standard 3D Viewer / Editor (standalone).
베타 (1개)
Beta (1)
Beta Admin beta.admin
beta tier 전용. 신규 실험 기능 토글(AI 병렬 분석, 새 3D 렌더러, IEC 61537 v2 추천)을 실시간으로 on/off. 로그는 자동으로 슈퍼 관리자에게 전송.
Beta-tier only. Toggle experimental features (parallel AI, new 3D renderer, IEC 61537 v2) live. Logs auto-report to super admin.
관리자 패널
Admin Panel
AdminPanel은 tenant 관리자가 접근하는 6개 탭으로 구성됩니다. SuperAdminPanel은 플랫폼 운영자 전용으로 멀티테넌시 전체를 관리합니다.
AdminPanel has 6 tabs for tenant admins. SuperAdminPanel is super_admin only and manages all tenants.
20.1 AdminPanel 6 탭20.1 AdminPanel — 6 Tabs
20.2 승인 플로우20.2 Approval Flow
코드 발급Issue code
Approvals → + New Code → tier / 역할 / 이메일 매칭 조건 설정.
Approvals → + New Code → pick tier / role / email match.
사용자 입력User enters
초대 이메일 링크 → 코드 입력. 5회 오입력 시 1시간 잠금.
User enters code from invite email. 5 wrong attempts → 1-hour lock.
검증 & 승인Verify & approve
이메일 매칭·tier 확인 후 자동 승인. 거절 시 사유 기재.
Auto-approved on match; deny with reason otherwise.
20.3 SuperAdminPanel20.3 SuperAdminPanel
플랫폼 운영자 전용. Tenants 탭에서 전체 tenant 생성 / 삭제, 플랜 변경, 결제 내역(PortOne), AI 키 상태 모니터링.
super_admin only. Tenants tab manages all tenants, plan changes, PortOne billing, AI key status.
초대코드 / 권한 체계
Invite Code / RBAC
SEcMS의 권한은 Tier(요금제) × Role(역할)의 조합으로 결정됩니다. 탭 노출·버튼 활성화·API 응답 모두 이 매트릭스로 필터링됩니다.
Permissions = Tier × Role. Tab visibility, button enablement, and API responses all filter through this matrix.
21.1 Role Preset 5종21.1 Five Role Presets
| Role | cables | routing | bom | validation | admin |
|---|---|---|---|---|---|
| Super Admin | RW | RW | RW | RW | RW |
| Owner | RW | RW | RW | RW | R |
| Editor | RW | RW | R | R | – |
| Viewer | R | R | R | R | – |
| Sub-contractor | R | R | R | – | – |
RW = read / write, R = read only, – = 접근 불가RW = read/write, R = read only, – = no access
21.2 Tier × Role 매트릭스21.2 Tier × Role Matrix
| Feature | trial | beta | pro |
|---|---|---|---|
| 3D 뷰3D view | R | RW | RW |
| AI 분석AI analytics | 50/mo | 500/mo | ∞ |
| DXF 내보내기DXF export | – | R | RW |
| 프로젝트 수Max projects | 1 | 3 | ∞ |
| 베타 기능Beta features | – | RW | RW |
21.3 초대코드 발급21.3 Issue an Invite Code
Admin Panel → Approvals
+ New Code 클릭.
Click + New Code.
속성 지정Set properties
tier · role · 유효기간(최대 30일) · 사용 가능 횟수 · 이메일 도메인.
tier · role · expiry (≤30d) · max uses · email domain.
공유Share
생성된 14자리 코드를 초대 이메일과 함께 전달.
Share the 14-char code along with the invite email.
FAQ · 트러블슈팅
FAQ · Troubleshooting
22.1 FAQ (자주 묻는 질문 10)22.1 FAQ (Top 10)
Cable List → Column Map에서 수동 재지정. 저장 시 템플릿으로 재사용 가능.
Cable List → Column Map → remap manually. Save as a reusable template.
Nodes 탭 → Node Check로 고아 노드 / 누락 좌표를 먼저 확인. Auto Connect 재실행.
Run Node Check first, then Auto Connect.
노드 ID 공백·대소문자 확인. 파서 자동 매칭 강화(2026-04) 이후에도 수동 수정 가능.
Check whitespace / case. Manual fix still works after the 2026-04 parser upgrade.
WebGL2 지원 확인. Chrome
chrome://gpu에서 하드웨어 가속 활성화.Verify WebGL2 and enable hardware acceleration.
AI 4-key 소진 시 503
NO_API_KEY. 슈퍼 관리자에게 키 리차지 요청.All AI keys exhausted → 503
NO_API_KEY. Ask super admin to recharge.code_locked(429): 5회 오입력 → 1시간 자동 해제.code_locked(429): unlocks automatically after 1 hour.세션 만료. 재로그인 팝업에서 다시 Google 인증.
Session expired; re-authenticate via the popup.
GPU 드라이버 업데이트 + Chrome / Edge 최신 버전 권장.
Update GPU driver and use latest Chrome / Edge.
해당 케이블이 라우팅 미완료입니다. Routing 탭 재실행.
That cable is not yet routed. Re-run Routing.
AutoCAD 2018 이상 R2018 형식만 지원. 파일 > 50 MB는 분할 업로드.
Only AutoCAD R2018+ supported. Split files > 50 MB.
22.2 에러 코드 (17개)22.2 Error Codes (17)
| Code | 영역Area | 원인 / 조치Cause / Fix |
|---|---|---|
ERR_NODE_NOT_SET | Routing | From/To 미지정. Cable List에서 지정.From/To missing → assign in Cable List. |
ERR_NODE_NOT_FOUND | Routing | 노드 ID 불일치. Nodes 탭 확인.Node ID mismatch → check Nodes tab. |
ERR_CHECKPOINT_NOT_FOUND | Routing | 경유점 ID 누락.Checkpoint ID missing. |
ERR_NO_PATH | Routing | 노드 간 연결 불가. Auto Connect 재실행.No connection → re-run Auto Connect. |
WORKER_CRASH | Routing | Worker 비정상 종료. 새로고침.Worker died → reload. |
invalid_code | Invite | 잘못된 초대코드.Wrong invite code. |
code_locked (429) | Invite | 5회 오입력 잠금 · 1시간 후 해제.5 wrong attempts → 1h lock. |
code_expired | Invite | 유효기간 만료. 관리자에게 재발급 요청.Expired → ask admin to reissue. |
code_exhausted | Invite | 사용 횟수 초과.Max uses exceeded. |
email_mismatch | Invite | 이메일 도메인 매칭 실패.Email domain mismatch. |
NO_API_KEY (503) | AI | AI 4-key 전부 소진.All AI keys exhausted. |
AI_RATE_LIMIT | AI | 분당 호출 초과. 재시도.Rate limited → retry. |
OPENROUTER_API_KEY missing | AI | fallback 키 미설정. 운영자 연락.Fallback key unset → contact ops. |
401 Unauthorized | Auth | 세션 만료 · 재로그인.Session expired → re-login. |
403 Forbidden | Auth | 권한 부족. 관리자에게 role 확인.Insufficient role → ask admin. |
DXF_PARSE_ERROR | Import | R2018 이하 포맷. 상위 버전으로 저장.Pre-R2018 → save as newer. |
WEBGL_CONTEXT_LOST | 3D | GPU 드라이버 갱신 또는 탭 재열기.Update GPU driver or reopen tab. |
변경 이력
Changelog
| 날짜Date | 구분Area | 변경 내용Change |
|---|---|---|
| 2026-04-17 | UI | 탭 전환 시 에러창 수정 — 탭별 ErrorBoundary + Renderer3D throw 차단Tab switch crash fixed — per-tab ErrorBoundary + Renderer3D throw guard |
| 2026-04-16 | Feature | Cable List 3D 경로탐색 팝업 + 랜딩페이지 모바일 반응형 수정Cable List 3D route popup + landing mobile responsive fix |
| 2026-04-15 | UI | AppHeader / TabBar / Dashboard / TrayFill 개선 + defaultCableTypes 업데이트AppHeader / TabBar / Dashboard / TrayFill polish + defaultCableTypes updated |
| 2026-04-14 | Fix | POS Tab JB localStorage persist + Inventory 재고부족 알림 + DeckQty zone 수동 지정POS Tab JB localStorage persist + Inventory low-stock alert + DeckQty manual zones |
| 2026-04-13 | Feature | 3D 크로스섹션 완성 — 케이블 경로 → 노드별 실데이터 주입 + 시스템별 색상 범례3D cross-section complete — real per-node data + system colour legend |