-
Notifications
You must be signed in to change notification settings - Fork 0
srs functional
JJong-03 edited this page Jun 18, 2026
·
4 revisions
문서버전: v1.7 기준일: 2026-05-20 사업명: Aegis-Pi Risk Twin 멀티 공장 중앙 관제 플랫폼 구축 사업
시스템이 수행해야 하는 구체적인 동작·기능·프로세스에 대한 요구사항이다.
| 구분 | 내용 |
|---|---|
| 문서명 | Aegis-Pi Risk Twin 시스템 요구사항 명세서 (System Requirements Specification) |
| 문서버전 | v1.7 |
| 작성일자 | 2026-05-20 |
| 적용 범위 | ① Control / Management VPC: Hub(EKS·ArgoCD·Grafana) 및 Factory-A(운영형 Safe-Edge Spoke) 운영 기준, Factory-B/C(테스트베드 Spoke) 후속 연결·관측·배포 요구 ② Data / Dashboard VPC: 사용자 Dashboard·WebSocket·LLM 일간 보고서 요구 |
| 일자 | 버전 | 변경 내역 |
|---|---|---|
| 2026-05-18 | v0.1 | 02번 초안 기반 작성 |
| 2026-05-19 | v0.2 | 사용자별 조회 범위·실시간·LLM 보고서 항목 보강 |
| 2026-05-20 | v1.0 | 멘토 리뷰 반영. SRS 4컬럼 양식(ID / 요구사항 명 / Risk Twin 기반 실현 내용 / 구현·검증 도구)으로 재정렬 |
| 2026-05-20 | v1.1 | 현재 구현 완료로 오해될 수 있는 표현을 요구 목표·후속 범위로 완화 |
| 2026-05-20 | v1.2 | 멘토 예시 수준에 맞춰 데이터 키·필드명·내부 처리 체인 등 상세 설계 표현 축소 |
| 2026-05-20 | v1.3 | 성능·부하 기준(NFR-PER) 제거. 기능·보안·가용성·제약 중심으로 축소 |
| 2026-05-20 | v1.4 | 운영 고도화·관리자 CRUD·별도 Alerts·분산추적 등 확장 범위 제거 |
| 2026-05-20 | v1.5 | WAF 세부 비기능 요구 제거, 암호화 요구를 구현 중립 표현으로 완화 |
| 2026-05-20 | v1.6 | 데이터 보관·운영 접근·사업 외 범위 제약 표현 완화 |
| 2026-05-26 | v1.7 | NFR-AVL 항목에 가용성·RPO 정량 수치와 RTO 복구 기준 추가 |
| ID | 요구사항 명 | Risk Twin 기반 실현 내용 | 구현/검증 도구 |
|---|---|---|---|
| FR-INF-01 | IaC 기반 인프라 구축 | Data/Dashboard VPC, ALB, ECS, RDS, Redis, IAM 등 1번 VPC 구성요소를 Terraform 코드로 정의해 인적 오류를 줄이고 형상을 버전 관리 | Terraform |
| FR-INF-02 | 워크스트림 망 분리 | 2번 Control/Management VPC와 1번 Data/Dashboard VPC를 네트워크·권한 경계로 분리하고 VPC peering/TGW로 직접 연결하지 않음 | AWS VPC, IAM |
| FR-INF-03 | 1번 VPC 3-Tier 구성 | Public(ALB·NAT)·Private App(ECS·Redis)·Private Data(RDS) 서브넷으로 계층화하여 사용자 진입점과 데이터 저장 계층을 분리 | AWS VPC, Subnet, SG |
| FR-INF-04 | 글로벌/관리형 서비스 사용 | Dashboard Web은 S3 + CloudFront(OAC)로 제공하고, Route53·ACM·Cognito·EventBridge·Bedrock 등 VPC 밖 관리형 서비스를 목적별로 사용. WAF는 보안 강화 후보/선택 구성으로 분리 | CloudFront, Route53, ACM, Cognito |
| FR-INF-05 | HTTPS 전용 진입점 | 사용자 진입점(CloudFront, ALB)은 HTTPS만 허용하고 HTTP는 자동 redirect | ACM, CloudFront, ALB Listener |
| FR-INF-06 | 도메인 분리 | Admin UI는 *.minsoo-tech.cloud 유지, Dashboard는 신규 도메인(dashboard.<domain>·api.<domain>)으로 분리하여 운영/사용자 진입점 혼동 차단 | Route53, ACM |
구현 상세: Dashboard VPC 설계 · 제어 플레인 & 데이터 플레인
| ID | 요구사항 명 | Risk Twin 기반 실현 내용 | 구현/검증 도구 |
|---|---|---|---|
| FR-DATA-01 | Edge → IoT Core 발행 | Edge Agent가 factory_state·infra_state 상태와 image_snapshot metadata를 X.509 mTLS로 IoT Core에 발행하여 공장 상태를 안전하게 전송. 이미지 binary는 IoT Core가 아니라 S3 직접 업로드 경로를 사용 |
AWS IoT Core, X.509, S3 |
| FR-DATA-02 | 원본 데이터 보존 | IoT Core로 수신한 공장 상태 원본을 S3에 보존하여 감사·재처리·보고서 입력 근거로 사용 | IoT Rule, S3 |
| FR-DATA-03 | Risk 정규화/계산 | 원본 데이터를 표준 형식으로 정규화하고 센서·AI·상태 지연·파이프라인 상태를 종합해 공장별 Risk Score와 상태 등급을 산출 | AWS Lambda |
| FR-DATA-04 | 최신/이력 데이터 저장 | 공장별 최신 상태와 최근 이력 데이터를 분리 저장하여 현재 화면 조회와 추세 분석을 모두 지원 | Amazon DynamoDB |
| FR-DATA-05 | 처리 결과 보존 | Risk·환경·인프라 처리 결과를 별도 저장소에 보존해 상세 이력·감사·보고서 입력에 사용 | S3 |
| FR-DATA-06 | 상태 변화 푸시 | 공장 상태 변화가 발생하면 Dashboard에 준실시간으로 전달되어 사용자가 최신 위험 상태를 확인할 수 있어야 함 | DDB Streams, Lambda, Redis, WebSocket |
| FR-DATA-07 | 일간 LLM 보고서 생성 | 매일 정해진 시각에 최근 공장 상태와 주요 이벤트를 요약한 한국어 Markdown 일간 보고서를 자동 생성 | EventBridge, Lambda, Bedrock |
| FR-DATA-08 | 보고서 조회 경로 관리 | 생성된 보고서의 위치, 생성 시각, 대상 공장 정보를 S3 reports/daily/ 경로와 객체 metadata로 관리하여 Dashboard에서 조회 가능하게 함 |
S3 |
구현 상세: Edge IoT Publisher · Lambda Data Processor · Risk Score Engine · 실시간 갱신 구조 · Reporting Pipeline · Daily Report Generator
| ID | 요구사항 명 | Risk Twin 기반 실현 내용 | 구현/검증 도구 |
|---|---|---|---|
| FR-DASH-01 | Fleet Overview 화면 | 진입 시 전체 공장 위험 현황, 데이터 지연 여부, 공장별 Risk 상태를 우선순위에 따라 표시 | React, FastAPI, DynamoDB |
| FR-DASH-02 | Factory Overview 화면 | 공장 상세 화면에서 현재 Risk 상태, 주요 원인, 환경 상태, 인프라 상태, 워크로드·장치 요약을 한눈에 확인 가능하게 제공 | React, FastAPI, DynamoDB |
| FR-DASH-03 | Environment 추세 화면 | 온도·습도·기압 등 환경 센서와 AI 이상 감지 결과의 최근 추세를 그래프로 표시 | React Chart, DynamoDB |
| FR-DASH-04 | Infrastructure 화면 | 노드 자원, 워크로드 상태, 장치 가용성, 데이터 파이프라인 상태를 공장 단위로 표시 | React Chart, DynamoDB |
| FR-DASH-05 | Timeline 화면 | Risk 상태 변화, 주요 원인 변화, 노드, 워크로드, 장치 이상을 시간순으로 통합 표시해 원인 추적성을 확보 | React, DynamoDB, S3 |
| FR-DASH-06 | 일간 보고서 열람 | 사용자가 날짜와 공장 기준으로 S3 reports/daily/의 일간 보고서를 조회하고 Markdown 형식으로 열람할 수 있어야 함 |
React Markdown, S3 |
| FR-DASH-10 | AI 채팅 질의 | 사용자가 자연어로 공장 상태·원인·추이·보고서·증빙 이미지를 질문하고, Backend가 RBAC 적용 후 Evidence 기반 답변을 제공 | React, FastAPI, Bedrock, DynamoDB, S3 |
| FR-DASH-11 | 이미지 스냅샷 조회 | System 권한 사용자가 AI 이벤트 이미지 스냅샷을 presigned URL 기반으로 조회할 수 있어야 함 | React, FastAPI, S3 |
| FR-DASH-07 | 실시간 갱신 | 공장 상태 변화가 발생하면 Dashboard 화면이 준실시간으로 갱신되고, 실시간 경로 장애 시 주기적 조회 방식으로 보완 | WebSocket, FastAPI |
| FR-DASH-08 | 사용자별 조회 범위 | 인증된 사용자는 자신에게 허용된 공장 데이터만 조회할 수 있으며, 미인가 공장 직접 호출은 차단 | FastAPI, Cognito, RDS |
| FR-DASH-09 | 역할 분리 | 관리자와 일반 조회자 등 사용자 역할에 따라 접근 가능한 화면과 API 범위를 분리 | FastAPI RBAC, Cognito Group |
구현 상세: 사용자 플로우 · 화면 구성 · Dashboard Backend · 인증과 RBAC
| ID | 요구사항 명 | Risk Twin 기반 실현 내용 | 구현/검증 도구 |
|---|---|---|---|
| FR-OBS-01 | 사용자/운영 화면 분리 | 사용자 Risk Twin Dashboard와 운영 Grafana(Hub/EKS/AMP)를 분리해 Dashboard가 운영 control plane을 겸하지 않도록 함 | Dashboard Web, Grafana |
| FR-OBS-02 | 통합 로깅 | Backend와 데이터 처리 컴포넌트는 CloudWatch Logs에 구조화 로그를 남겨 사후 분석·감사 증적으로 사용 | CloudWatch Logs |
- 시스템 아키텍처
- 제어 & 데이터 플레인
- Dashboard VPC 설계
- 하드웨어 배치
- Hub EKS 네임스페이스
- Tailscale Mesh VPN
- 데이터 생명주기
- 데이터 조회 모델
- 실시간 갱신 구조
- IoT 데이터 계약
- Reporting Pipeline
- 로컬 스토리지
- 클라우드 스토리지
- Edge Agent
- Edge AI 탐지
- Factory-A Log Adapter
- Dummy Sensor
- Edge IoT Publisher
- Lambda Data Processor
- Risk Normalizer
- Risk Score Engine
- Pipeline Status Aggregator
- Graph Aggregator 5m
- Cloud Infra Collector
- Daily Report Generator
- Risk Alert Dispatcher
- Image Snapshot Pipeline
- Dashboard Backend
- Dashboard Web
- AI 채팅 어시스턴트