0-Tier
System Architecture
<0ms
Edge 응답시간
0 FPS
Unity 3D 렌더링
0%
시스템 가용성
0개
핵심 컴포넌트

🏗️ 1. 시스템 아키텍처 개요 (System Architecture Overview)

FireNavi는 3-Tier Architecture를 채택하여 센서 데이터 수집부터 최종 사용자 시각화까지의 전체 파이프라인을 체계적으로 구성합니다. 각 레이어는 독립적으로 확장 가능하며, 장애 격리(Fault Isolation)를 통해 시스템 전체의 가용성을 보장합니다.

3-Tier Architecture 구조

1
Edge Layer
센서 데이터 수집
로컬 추론
실시간 전처리
2
Processing Layer
AI 추론 서버
CFD 엔진
경로 최적화
3
Presentation Layer
Unity 3D
Web Dashboard
Mobile App

End-to-End 데이터 플로우

S
Sensors
IoT / CCTV
온도 / 연기감지기
E
Edge Server
데이터 집계
로컬 추론
P
Processing
AI Inference
CFD Engine
U
UI / UX
3D 시각화
대피 안내

Layer별 구성 요소

Layer 구성 요소 기술 스택 역할
Edge Layer IoT 센서, CCTV, 온도 센서, 연기 감지기 MQTT, AMQP, Edge GPU 실시간 데이터 수집 및 로컬 추론
Processing Layer AI Inference Server, CFD Engine, Path Optimizer PyTorch, OpenFOAM, Python 화재 시뮬레이션 및 경로 최적화 연산
Presentation Layer Unity 3D, Web Dashboard, Mobile App Unity, React, WebSocket 3D 시각화, 대피 안내, 관리 인터페이스

📡 2. Edge Computing 구조 (Edge Computing Structure)

선박 내 Edge Server는 센서 데이터를 실시간으로 수집/집계하고, 로컬 AI 추론을 통해 100ms 이내의 응답 시간을 보장합니다. 위성 통신 의존도를 최소화하여 해상 환경에서도 안정적인 운영이 가능합니다.

On-Ship Edge Server 사양

항목 Primary Server Secondary Server (Failover)
CPU Intel Xeon W-2295 (18C/36T) Intel Xeon W-2275 (14C/28T)
GPU NVIDIA A4000 (16GB VRAM) NVIDIA T4 (16GB VRAM)
RAM 128GB DDR4 ECC 64GB DDR4 ECC
Storage 2TB NVMe SSD (RAID 1) 1TB NVMe SSD
Network 10GbE + Ship LAN 10GbE + Ship LAN
OS Ubuntu Server 22.04 LTS Ubuntu Server 22.04 LTS

Sensor Data Aggregation Pipeline

1
센서 수집
IoT / CCTV
온도 / 연기 / 가스
2
MQTT Broker
Eclipse Mosquitto
Topic 기반 라우팅
3
Stream Processor
Apache Kafka
데이터 정규화
4
Local Inference
PyTorch Edge
<100ms 추론
5
Alert / Store
InfluxDB 저장
알림 발송

센서 데이터 스키마 (MQTT Payload)

// MQTT Topic: firenavi/ship/{ship_id}/sensor/{sensor_id} // QoS Level: 1 (At least once delivery) { "sensor_id": "TEMP-D3-R204", "timestamp": "2026-02-12T14:30:00.123Z", "type": "temperature", "value": 72.5, "unit": "celsius", "location": { "deck": 3, "zone": "R204", "x": 45.2, "y": 12.8, "z": 8.5 }, "status": "ALARM", "confidence": 0.95 }

이중화 및 네트워크 구성

Redundancy: Dual Edge Server

  • Active-Standby 구성으로 자동 Failover 지원
  • Heartbeat 모니터링 (1초 간격)
  • Failover 전환 시간: 5초 이내
  • 데이터 동기화: Redis Sentinel 기반 실시간 복제
  • 센서 데이터 로컬 버퍼링 (최대 24시간)

Network 구성

  • Primary: Ship LAN (10GbE Backbone)
  • Backup: VSAT 위성 통신 (2~4 Mbps)
  • VLAN 분리: 센서망 / 서비스망 / 관리망
  • 네트워크 모니터링: SNMP + Prometheus
  • 자동 경로 절체: OSPF 프로토콜
0+
설치 센서 수
0 Hz
센서 샘플링 레이트
0초
Failover 전환시간
0시간
로컬 버퍼 용량

🏢 3. BIM/IFC 연동 시스템 (BIM/IFC Integration)

선박 설계 데이터(BIM)를 IFC(Industry Foundation Classes) 표준 형식으로 파싱하여 대피 경로 최적화에 필요한 Navigation Graph를 자동으로 생성합니다. 공간(Space)은 노드(Node)로, 출입구(Door/Opening)는 간선(Edge)으로 매핑됩니다.

IFC File Parsing Pipeline

1
IFC Import
IFC 2x3 / IFC 4
파일 로드
2
Entity Parsing
IfcSpace
IfcDoor 추출
3
Geometry Processing
좌표 변환
경계 계산
4
Graph Generation
Node/Edge 생성
가중치 산정
5
Floor Plan Export
자동 도면 추출
Unity 연동

IFC to Navigation Graph 변환

IFC Entity Graph Element 속성 매핑 예시
IfcSpace Node (V) 면적, 수용인원, 위치, 덱번호 Cabin-D3-204, Corridor-D3-Main
IfcDoor Edge (E) 폭, 높이, 개폐상태, 방화문여부 Door-D3-204-Corridor
IfcStair Edge (E, vertical) 폭, 경사도, 연결 덱 Stair-D3-D4-Fwd
IfcSpace (Assembly) Node (Terminal) 최대수용, 구명보트 접근성 MusterStation-A, MusterStation-B

Graph 자료구조 정의

Navigation Graph
G = (V, E)

V = {rooms, corridors, stairs, muster_stations}
E = {doors, openings, stairways, elevators}

w(e) = α · distance(e) + β · risk_penalty(e) + γ · congestion_factor(e)

α = 1.0 (기본 거리 가중치)
β = dynamic (실시간 위험도 반영, 0~10)
γ = dynamic (혼잡도 반영, 0~5)

IFC Parser - Python 코드

import ifcopenshell import networkx as nx from typing import Dict, List, Tuple class IFCNavigationParser: """IFC 파일에서 Navigation Graph를 자동 생성하는 파서""" def __init__(self, ifc_path: str): self.model = ifcopenshell.open(ifc_path) self.graph = nx.Graph() self.spaces: Dict[str, dict] = {} self.doors: List[dict] = [] def parse_spaces(self) -> Dict[str, dict]: """IfcSpace 엔티티를 Node로 변환""" for space in self.model.by_type("IfcSpace"): node_id = space.GlobalId centroid = self._get_centroid(space) self.graph.add_node(node_id, **{ "name": space.LongName or space.Name, "deck": self._extract_deck(space), "area": self._calc_area(space), "capacity": self._estimate_capacity(space), "position": centroid, "type": self._classify_space(space), }) return self.spaces def parse_connections(self) -> List[Tuple]: """IfcDoor/IfcOpening을 Edge로 변환""" for door in self.model.by_type("IfcDoor"): spaces = self._find_adjacent_spaces(door) if len(spaces) == 2: weight = self._calc_edge_weight( spaces[0], spaces[1], door ) self.graph.add_edge( spaces[0], spaces[1], weight=weight, door_id=door.GlobalId, width=door.OverallWidth, is_fire_door=self._is_fire_door(door) ) return list(self.graph.edges(data=True)) def _calc_edge_weight(self, src, dst, door) -> float: """w(e) = a*distance + b*risk_penalty + g*congestion""" dist = self._euclidean_dist(src, dst) risk = self._get_risk_penalty(src, dst) congestion = self._get_congestion(src, dst) return 1.0 * dist + risk + congestion def build_navigation_graph(self) -> nx.Graph: """전체 Navigation Graph 생성""" self.parse_spaces() self.parse_connections() self._add_stairways() self._add_elevators() return self.graph # 사용 예시 parser = IFCNavigationParser("ship_model.ifc") nav_graph = parser.build_navigation_graph() print(f"Nodes: {nav_graph.number_of_nodes()}") print(f"Edges: {nav_graph.number_of_edges()}")

자동 Floor Plan 추출

IFC 모델로부터 각 Deck별 평면도를 자동으로 추출하여 Unity 3D 환경에 로드합니다. 벽체, 복도, 출입구, 계단 등의 건축 요소를 그래픽 요소로 변환하며, 실시간 위험도에 따라 색상 코딩을 적용합니다.

  • IfcWall / IfcWallStandardCase → 벽체 메시 생성
  • IfcSlab → 바닥/천장 평면 생성
  • IfcDoor → 출입구 인터랙티브 오브젝트
  • IfcStair → 수직 연결 통로 표시
  • 자동 LOD (Level of Detail) 적용으로 렌더링 최적화

🔥 4. OpenFOAM CFD 통합 (OpenFOAM CFD Integration)

OpenFOAM(Open Source Field Operation and Manipulation)을 활용하여 선박 내부의 화재 시뮬레이션을 수행합니다. 화재 발생 시 연기 확산, 온도 분포, 가스 농도 등을 사전 계산하여 Scenario Library를 구축하고, 실시간 시나리오 매칭을 통해 즉각적인 위험 예측을 제공합니다.

Fire Simulation Case 파일 구조

# OpenFOAM Case Directory Structure fireNavi_case/ +-- 0/ # Initial conditions | +-- T # Temperature field | +-- U # Velocity field | +-- p # Pressure field | +-- k # Turbulent kinetic energy | +-- epsilon # Turbulent dissipation rate | +-- CO2 # CO2 concentration | +-- soot # Soot concentration +-- constant/ # Physical properties | +-- transportProperties | +-- turbulenceProperties # k-epsilon model | +-- combustionProperties | +-- polyMesh/ # Ship mesh +-- system/ # Solver settings +-- controlDict +-- fvSchemes +-- fvSolution +-- blockMeshDict # Mesh generation +-- decomposeParDict # Parallel decomposition

blockMeshDict - 선박 구획 메시 구성

// system/blockMeshDict // Ship compartment mesh configuration FoamFile { version 2.0; format ascii; class dictionary; object blockMeshDict; } convertToMeters 1; vertices ( (0 0 0) // vertex 0: origin (60 0 0) // vertex 1: ship length (60 30 0) // vertex 2: ship width (0 30 0) // vertex 3 (0 0 3) // vertex 4: deck height (60 0 3) // vertex 5 (60 30 3) // vertex 6 (0 30 3) // vertex 7 ); blocks ( hex (0 1 2 3 4 5 6 7) (120 60 6) // cells: 0.5m resolution simpleGrading (1 1 1) ); boundary ( walls { type wall; faces ((0 3 7 4) (1 2 6 5)); } deck_floor { type wall; faces ((0 1 2 3)); } deck_ceiling { type wall; faces ((4 5 6 7)); } ventilation_inlet { type patch; faces ((0 1 5 4)); } ventilation_outlet { type patch; faces ((2 3 7 6)); } );

turbulenceProperties: k-epsilon 모델

// constant/turbulenceProperties FoamFile { version 2.0; format ascii; class dictionary; object turbulenceProperties; } simulationType RAS; RAS { RASModel kEpsilon; turbulence on; printCoeffs on; kEpsilonCoeffs { Cmu 0.09; C1 1.44; C2 1.92; sigmaK 1.0; sigmaEps 1.3; } }

Boundary Conditions 요약

경계면 온도 (T) 속도 (U) 설명
Fire Source fixedValue (800~1200K) fixedValue (plume model) 화재 발생 위치 - HRR 기반 열원
Walls zeroGradient noSlip 단열 벽면 (adiabatic wall)
Ventilation Inlet fixedValue (293K) fixedValue (0.5 m/s) HVAC 급기구
Ventilation Outlet inletOutlet pressureInletOutletVelocity HVAC 배기구
Deck Floor / Ceiling zeroGradient noSlip 바닥/천장 경계

Post-Processing Pipeline

1
OpenFOAM
CFD 시뮬레이션
T, U, CO2, soot
2
ParaView
필드 데이터 추출
시간별 슬라이스
3
Python
데이터 정규화
Risk Score 산정
4
Risk Map
동적 위험지도
UI 렌더링

Real-time vs Pre-computed 전략

Pre-computed Scenario Library

  • 화재 위치별 시나리오 사전 계산 (200+ 시나리오)
  • 각 시나리오: 시간 단계별 온도/연기/가스 분포
  • HVAC 상태별 (가동/정지/부분가동) 변형 포함
  • 선박 건조 시 1회 계산, 이후 DB 저장
  • 시나리오 매칭 시간: <1초

Real-time CFD (보정용)

  • 실제 센서 데이터 기반 보정 시뮬레이션
  • Coarse mesh로 빠른 근사 계산
  • GPU 가속 (CUDA) 적용
  • 계산 시간: 30~60초 (보정 사이클)
  • Pre-computed 시나리오와 블렌딩

🎮 5. Unity 3D 시각화 엔진 (Unity 3D Visualization Engine)

Unity 3D를 활용하여 선박 내부의 화재 상황, 연기 확산, 승객 이동을 실시간 3D로 시각화합니다. WebSocket 통신을 통해 Python 백엔드와 연동하며, BIM 데이터를 자동으로 로드하여 현실적인 선박 환경을 재현합니다.

Real-time Rendering Pipeline

1
Data Ingestion
WebSocket 수신
JSON 파싱
2
Scene Update
Agent 위치 갱신
Fire/Smoke 업데이트
3
Render
URP Pipeline
60 FPS 렌더링
4
Display
Bridge Monitor
VR Headset

WebSocket 통신 프로토콜

Python 서버와 Unity 클라이언트 간 WebSocket을 통해 실시간 양방향 통신을 수행합니다. 데이터는 JSON 형식으로 전송되며, 초당 10~30회 업데이트됩니다.

// WebSocket Data Protocol // Python Server -> Unity Client (ws://edge-server:8765/firenavi) // Update Frequency: 10~30 Hz { "timestamp": "2026-02-12T14:30:05.123Z", "frame_id": 15230, "agents": [ { "id": "PAX-001", "position": {"x": 23.5, "y": 8.5, "z": 1.7}, "rotation": 135.0, "speed": 1.2, "status": "evacuating", "health_class": "normal", "target_exit": "MS-A", "path": [[23.5,8.5], [20.0,8.5], [15.0,12.0]] } ], "fire": { "origin": {"x": 40.2, "y": 8.5, "z": 0.0}, "radius": 5.8, "intensity": 0.85, "hrr_kw": 2500, "affected_zones": ["R204", "R205", "CORR-D3-C"] }, "smoke": { "density_map": [[0.1, 0.3, 0.8], [0.2, 0.5, 0.9]], "visibility_m": 3.2, "layer_height": 1.8 }, "risk_map": [ {"zone": "R204", "level": 0.95, "category": "critical"}, {"zone": "CORR-D3", "level": 0.65, "category": "high"}, {"zone": "R201", "level": 0.20, "category": "low"} ] }

핵심 시각화 컴포넌트

컴포넌트 Unity 기술 데이터 소스 업데이트 주기
BIM 자동 로딩 IFC Importer + Mesh Generator IFC 파일 (빌드 시) 초기 1회
화재 시각화 VFX Graph Particle System fire.origin, fire.intensity 10 Hz
연기 시각화 Volumetric Fog + Shader Graph smoke.density_map 10 Hz
에이전트 이동 NavMesh Agent + Animation agents[].position, path 30 Hz
위험지도 오버레이 Custom Shader (Heatmap) risk_map[].level 10 Hz
경로 표시 Line Renderer + Arrow Mesh agents[].path 10 Hz

VR Training Mode

Unity의 XR Interaction Toolkit을 활용하여 VR 기반 대피 훈련 모드를 제공합니다. 승무원은 가상 선박 환경에서 화재 대피 시나리오를 체험하고, 실제 상황에서의 대응 능력을 사전에 훈련할 수 있습니다.

  • 지원 디바이스: Meta Quest 3, HTC Vive Pro 2, Varjo XR-4
  • 훈련 시나리오: 화재 발견, 초기 대응, 승객 안내, 구명보트 탑승
  • 평가 항목: 대응 시간, 올바른 경로 선택, 의사소통 정확도
  • 리플레이: 훈련 기록 저장 및 3D 리플레이 지원

📊 6. 데이터 파이프라인 (Data Pipeline)

FireNavi의 데이터 파이프라인은 실시간 스트리밍배치 처리의 이중 구조로 구성됩니다. 센서 데이터는 MQTT를 통해 실시간으로 수집되고, BIM 데이터와 사전 계산 시나리오는 배치로 처리됩니다.

실시간 스트리밍 파이프라인

1
Sensors
IoT / CCTV
500+ 디바이스
2
MQTT Broker
Eclipse Mosquitto
QoS 1
3
Edge Server
데이터 집계
이상 탐지
4
AI Engine
위험도 산정
경로 최적화
5
UI / Alert
Unity 3D
PA / Mobile

배치 처리 파이프라인

A
BIM Data
IFC 파일
선박 설계 데이터
B
IFC Parser
공간 분석
그래프 생성
C
CFD Pre-compute
OpenFOAM
시나리오 계산
D
Scenario DB
결과 저장
인덱싱

데이터 저장소 구성

저장소 기술 용도 데이터 보존
Time-series DB InfluxDB 2.x 센서 데이터 (온도, 연기, 가스 농도) 30일 (로컬), 1년 (클라우드)
Graph DB Neo4j 5.x 선박 레이아웃, Navigation Graph 영구 저장
Scenario DB PostgreSQL + TimescaleDB CFD 시뮬레이션 결과, 시나리오 라이브러리 영구 저장
Cache Redis 7.x 실시간 상태, 세션, 센서 최신값 In-memory (TTL 기반)
Object Store MinIO (S3 호환) IFC 파일, 훈련 기록, 로그 아카이브 영구 저장

데이터 플로우 다이어그램

# FireNavi Data Flow Architecture # ================================ [Sensors] ─── MQTT ───> [Mosquitto Broker] | ┌────────────┼────────────┐ v v v [InfluxDB] [Edge AI] [Kafka] (time-series) (inference) (stream) | | v v [Risk Engine] [Log Archive] | ┌────────────┼────────────┐ v v v [WebSocket] [REST API] [Alert System] | | | v v v [Unity 3D] [Web UI] [PA/Mobile/Display] # Batch Pipeline [IFC Files] ──> [IFC Parser] ──> [Neo4j] (Navigation Graph) [OpenFOAM] ──> [Post-Proc] ──> [PostgreSQL] (Scenario Library)

🚀 7. 배포 및 운영 (Deployment & Operations)

FireNavi는 Docker 컨테이너와 Kubernetes 오케스트레이션을 통해 선박 내 Edge Server에 배포됩니다. Prometheus + Grafana 기반 모니터링과 다채널 알림 시스템을 통해 24/7 안정적인 운영을 보장합니다.

Docker 컨테이너 구성

# docker-compose.yml - FireNavi Stack version: "3.9" services: mosquitto: image: eclipse-mosquitto:2.0 ports: ["1883:1883", "9001:9001"] volumes: ["./mosquitto:/mosquitto/config"] influxdb: image: influxdb:2.7 ports: ["8086:8086"] volumes: ["influx_data:/var/lib/influxdb2"] neo4j: image: neo4j:5.15 ports: ["7474:7474", "7687:7687"] volumes: ["neo4j_data:/data"] redis: image: redis:7.2-alpine ports: ["6379:6379"] firenavi-edge: build: ./services/edge-processor runtime: nvidia environment: - NVIDIA_VISIBLE_DEVICES=all depends_on: [mosquitto, influxdb, redis] firenavi-ai: build: ./services/ai-engine runtime: nvidia depends_on: [firenavi-edge, neo4j] firenavi-api: build: ./services/api-server ports: ["8000:8000"] depends_on: [firenavi-ai, influxdb, neo4j] firenavi-ws: build: ./services/websocket-server ports: ["8765:8765"] depends_on: [firenavi-ai] prometheus: image: prom/prometheus:latest ports: ["9090:9090"] volumes: ["./prometheus:/etc/prometheus"] grafana: image: grafana/grafana:latest ports: ["3000:3000"] depends_on: [prometheus]

Kubernetes 오케스트레이션

서비스 Replicas Resource Limits Health Check
firenavi-edge 2 (Active-Standby) 4 CPU, 8GB RAM, 1 GPU /health (5s interval)
firenavi-ai 2 (Load Balanced) 8 CPU, 16GB RAM, 1 GPU /health (10s interval)
firenavi-api 3 (Load Balanced) 2 CPU, 4GB RAM /health (5s interval)
firenavi-ws 2 (Load Balanced) 2 CPU, 4GB RAM WebSocket ping (10s)
mosquitto 2 (Clustered) 1 CPU, 2GB RAM TCP 1883 (5s)

모니터링: Prometheus + Grafana

시스템의 모든 컴포넌트는 Prometheus 메트릭을 노출하며, Grafana 대시보드를 통해 실시간으로 모니터링됩니다. 사전 정의된 경고 규칙을 통해 이상 상황을 즉시 감지합니다.

0+
모니터링 메트릭
0개
알림 규칙
0초
수집 주기
0일
메트릭 보존

다채널 알림 시스템 (Alert System)

채널 대상 지연시간 내용
PA 방송 (Public Address) 전체 승객 + 승무원 <2초 화재 위치, 대피 방향, 집결지 안내
모바일 앱 Push 개인별 승객 <3초 개인 맞춤 대피 경로, 턴바이턴 안내
Deck Display 구역별 승객 <2초 동적 대피 경로 표시, 구역 위험도
Bridge Console 선장 / 항해사 <1초 전체 상황 개요, 대피 진행률
Crew Headset 대피 담당 승무원 <2초 담당 구역 상황, 도움 필요 승객 위치

Drill Mode vs Emergency Mode

Drill Mode (훈련 모드)

  • 시뮬레이션 기반 가상 화재 시나리오
  • 실제 센서 데이터 사용하지 않음
  • PA 방송: "THIS IS A DRILL" 접두사
  • 훈련 결과 기록 및 분석 리포트 생성
  • IMO SOLAS 규정 주간 훈련 대응
  • VR 훈련 모드와 연동 가능

Emergency Mode (비상 모드)

  • 실제 센서 데이터 기반 실시간 분석
  • 모든 알림 채널 동시 활성화
  • PA 방송: 긴급 대피 안내 자동 송출
  • EPIRB/SART 연동 가능
  • 블랙박스 기록 자동 시작
  • 외부 기관 (해경, 보험사) 자동 통보

시스템 건강 모니터링 항목

  • CPU/GPU 사용률: 임계값 80% 초과 시 경고
  • 메모리 사용률: 임계값 85% 초과 시 경고
  • 센서 연결 상태: 미응답 센서 5% 초과 시 경고
  • 네트워크 지연: Edge-Server 간 100ms 초과 시 경고
  • 디스크 사용률: 90% 초과 시 로그 자동 정리
  • 서비스 Health Check: 3회 연속 실패 시 자동 재시작

🔒 8. 보안 및 인증 (Security & Certification)

해양 사이버보안 국제 기준을 준수하며, 네트워크 분리, 데이터 암호화, 역할 기반 접근 제어를 통해 시스템의 무결성과 가용성을 보장합니다. DNV GL 사이버보안 인증 획득을 목표로 설계되었습니다.

Maritime Cybersecurity 준수 기준

기준/규정 발행 기관 적용 범위 준수 상태
IMO MSC-FAL.1/Circ.3 IMO (국제해사기구) 해양 사이버 위험관리 가이드라인 준수
IACS UR E26/E27 IACS 선박 사이버 복원력 요구사항 준수
IEC 62443 IEC 산업 자동화 보안 표준 준수
NIST Cybersecurity Framework NIST 사이버보안 관리 프레임워크 준수
DNV GL Cyber Security DNV GL 선급 사이버보안 인증 인증 진행중

네트워크 분리 (Network Segmentation)

# FireNavi Network Segmentation # ================================ VLAN 10 - Sensor Network (센서 전용망) ├── IoT Sensors (온도, 연기, 가스) ├── CCTV Cameras └── Edge Gateway # Firewall: Inbound only to Edge Server VLAN 20 - Processing Network (처리 전용망) ├── Edge Server (Primary / Secondary) ├── AI Inference Server └── Database Servers # Firewall: VLAN 10 -> 20 (sensor data only) VLAN 30 - Service Network (서비스망) ├── API Server ├── WebSocket Server └── Web Dashboard # Firewall: VLAN 20 -> 30 (API calls only) VLAN 40 - Management Network (관리망) ├── Prometheus / Grafana ├── Log Aggregator └── Admin Console # Firewall: Admin access only (802.1X auth) VLAN 50 - Guest Network (승객망) ├── Passenger Mobile App └── Deck Display # Firewall: Read-only access to Service Network

데이터 암호화 (Data Encryption)

구간 프로토콜 암호화 방식 키 관리
전송 중 (In-transit) TLS 1.3 AES-256-GCM / ChaCha20-Poly1305 자동 인증서 갱신 (Let's Encrypt)
저장 중 (At-rest) LUKS / dm-crypt AES-256-XTS TPM 2.0 기반 키 저장
MQTT MQTT over TLS TLS 1.3 + Client Certificate 센서별 개별 인증서
WebSocket WSS (WebSocket Secure) TLS 1.3 JWT Token 인증
위성 통신 VPN (WireGuard) ChaCha20-Poly1305 Pre-shared Key + Certificate

역할 기반 접근 제어 (RBAC)

역할 (Role) 접근 권한 인증 방법 대상
ADMIN 시스템 전체 관리, 설정 변경, 사용자 관리 MFA (비밀번호 + OTP) 시스템 관리자
CAPTAIN 전체 상황 모니터링, 비상모드 전환, 알림 관리 생체인식 + PIN 선장 / 부선장
OFFICER 담당 구역 모니터링, 대피 안내, 훈련 관리 ID 카드 + PIN 항해사 / 안전관리자
CREW 할당 구역 대피 안내, 상태 보고 ID 카드 일반 승무원
PASSENGER 개인 대피 경로 수신 (읽기 전용) 탑승권 QR + 객실번호 승객

DNV GL 사이버보안 인증 로드맵

1
Gap Analysis
현행 보안 수준
Gap 분석
2
Risk Assessment
위험 평가
대응 계획 수립
3
Implementation
보안 조치 구현
테스트
4
Audit
DNV GL 심사
인증 취득

🔧 기술 스택 종합 (Technology Stack Summary)

Edge
MQTT / Kafka / PyTorch
CFD
OpenFOAM / ParaView
BIM
IFC / Neo4j / NetworkX
3D
Unity / WebSocket / VR
Ops
Docker / K8s / Grafana
영역 기술 버전 라이선스
AI / ML PyTorch, Stable Baselines3, ONNX Runtime 2.x, 2.x, 1.x BSD / MIT / MIT
CFD OpenFOAM, ParaView v11, 5.x GPL / BSD
BIM IfcOpenShell, NetworkX 0.7.x, 3.x LGPL / BSD
3D Visualization Unity, URP, XR Interaction Toolkit 2022 LTS Unity Pro
Database InfluxDB, Neo4j, PostgreSQL, Redis 2.x, 5.x, 16, 7.x MIT / GPL / PostgreSQL / BSD
Messaging Eclipse Mosquitto, Apache Kafka 2.x, 3.x EPL / Apache 2.0
Monitoring Prometheus, Grafana, ELK Stack 2.x, 10.x, 8.x Apache 2.0 / AGPL / Elastic
Container / Orch Docker, Kubernetes 24.x, 1.29 Apache 2.0 / Apache 2.0