DataForge Package · 프로젝트 통합 보고서
2026.03.11 기준
Project Report · DPE-110326

DataForge Package
외부 제조업 Edge 서비스

외부 고객사(동국제강 등)에 빠른 구축을 위한 설치형 패키지 제품 구현 — OPC-UA 수집부터 Kafka 스트리밍, 고객 서비스까지 통합 제공

~70%
전체 진행률
37W
전체 일정
5
문서 수
39
구축 파드 수
2,500만
일일 수집 건수
01

프로젝트 개요

기본 정보

프로젝트명DataForge Package
문서 IDDPE-110326-051242
일정2025.09 ~ 2026.06
총 기간37주 (6개월)
Main 담당@유병재
Sub 담당@김성만
방법론CMMI 기반

3대 목표

Pack 1 Pipeline 구현 간소화 Pack
Pack 2 Infra Pack — 무중단 아키텍처, 이중화
Pack 3 서비스 고도화 — 데이터 표준화, 운영/고객 서비스 분리, Tag 수집 간소화

추진 배경 (AS-IS → TO-BE)

문제 (AS-IS)
운영 Infra 비용 과다
구축 공수 과다
고객 서비스 부족
4대 전략
인프라 단순화
인프라 체계화
인프라 안정화
인프라 효율화
완료 조건
DataForge 서비스 통합 테스트 통과
세부 기준 확정 필요
02

문서 목록

총 5개 파일
기획/설계/계획
기획설계 계획서
통합 문서 (148페이지)
DPE-110326-051242.pdf
완료
수집 프로세스
Benthos Stream Manager README
개발 현황 문서
readmemda4.pdf
완료
수집 프로세스
Benthos Stream Manager
구조 설계 요약
benthosstreammanagera4.pdf
완료
서비스 개발
DF-Stream 요구사항 정의서 v1.2
기능/비기능 요구사항
dfstreamrequirementsdefinitiona4.pdf · 2026-03-11
진행중
서비스 개발
DF-Stream 아키텍처 설계서 v1.0
기술 스택 및 시스템 아키텍처
dfstreama4.pdf · 2026-03-11
진행중
03

단계별 진행 현황

① 기안 (Planning)
목적 · 목표 · 전략 · 완료조건 수립
90%
목적/목표/3대 Pack 정의 완료
AS-IS/TO-BE 분석, 4대 전략 수립
Data Delivery Service 구축 목적 문서 작성
Agentic AI 비전 문서 (Ontology 기반, Palantir 벤치마킹)
CMMI 방법론 기반 수행 순서 정의
완료조건 세부 기준 미확정
② 요구사항 정리 (Requirements)
DF-Stream 요구사항 정의서 v1.2 기준
75%
기능별 요구사항 우선순위
AUTH 인증 / 인가 OIDC Provider 자체 구현 (nest-oidc-provider) — Keycloak → Zitadel → oidc-provider 변경 이력 P0
USER 사용자 관리 CRUD, 페이지 권한, bcrypt 암호화 P0
ORG 조직 관리 organizations 테이블 기반 (business_place 컬럼 → 별도 테이블 변경) P0
SW Stream Wizard 4단계: INPUT(OPC-UA) → OUTPUT(Kafka) → PIPELINE(Bloblang) → DEPLOY P0
STR Streams Manager CRUD, 시작/중지, 로그 조회 P0
CONN 연결 관리 Benthos / Kafka / Schema Registry 연결 CRUD + 헬스체크 P1
OPC OPC-UA 관리 서버 등록, 노드 브라우징, 값 읽기 P1
RBAC 역할 기반 권한 roles / permissions / role_permissions / user_roles 테이블 설계 P2
DFP df_package 연동 OPC 서버/노드/Kafka 클러스터/토픽 읽기 전용 조회 P1
비기능 요구사항
API 응답 ≤ 200ms 스트림 배포 ≤ 5초 OPC 브라우징 ≤ 3초 가용성 99.9%
③ 아키텍처 설계 (Architecture)
DF-Stream 아키텍처 설계서 v1.0 기준
80%
기술 스택
Backend: NestJS TypeORM PostgreSQL (Port 3001)
Frontend: Next.js 16 React 19 shadcn/ui
인증: JWT Bearer → OIDC Provider 연동 예정
캐싱: Valkey (Redis 호환)
수집: Benthos-UMH + OPC-UA + Kafka + Avro
메시징: Kafka KRaft 3+ Broker + Schema Registry
모니터링: Prometheus + Grafana
데이터 흐름
PLC
↓ OPC-UA
KEPServerEX
↓ Benthos-UMH
Kafka KRaft
↓ Kafka Connect
TimescaleDB
DB 구조 패턴 (Desired State → Reconcile)
df_package 읽기전용 마스터 (OPC/Kafka 원본)
df_app 읽기/쓰기 운영 (스트림, 사용자, 연결)
04

인프라 구성 현황

진행률 65%
완료 항목 ✓
NFS 스토리지 구축 테스트
Nginx-proxy 구축 테스트
Kafka 4.2.0 KRaft 모드 (ZooKeeper 제거)
Kafka-UI, Kafka-Connect 연동
PostgreSQL 17.6.0 + Pgpool 4.6.3 클러스터
TimescaleDB 구축 (2026.01.21 SSD 이관)
사설 Docker Registry 구축
K3s + Headlamp 설치 (2026.02.11)
TimescaleDB 일일 2,500만 건 처리 확인
진행 중 / 미완
Fluentd 구축 진행 중
GitLab Standalone 타입 적용 테스트
Docker Distribution(Registry) 적용 테스트
NiFi 구축 테스트 → 폐기

폐쇄망 CI/CD 스택 (검토 완료)

Git
GitLab Standalone
CI
GitLab Shared Runner Tekton
이미지 빌드
Kaniko
이미지 저장소
Docker Registry(Distribution)Harbor
CD / GitOps
ArgoCD Image Updater
배포 템플릿
Helm Kustomize

Trino 클러스터링 단계별 도입 계획

Phase 0JMX 모니터링 구성현황 파악 (6종 커넥터, 15+ 카탈로그)계획
Phase 1단일 노드 최적화쿼리 튜닝, 메모리 설정 최적화예정
Phase 22클러스터 분리OLAP / 실시간 조회 분리 운영예정
Phase 3Trino Gateway라우팅 통합, 고가용성 확보예정
05

수집 서비스 개발 현황

진행률 70%

Benthos Stream Manager (GUI)

Payload CMS 3.69.0 Next.js 15.4 React 19 node-opcua 2.160
10개 Collection 구현 완료
6개 Custom Admin View
Stream Wizard 4단계 구현
Pipeline Editor (Bloblang 매핑)
KEP Tag Browser, Kafka Manager
Schema Registry Manager

수집 실적 (2026.01 기준)

수집 장치소형압연 11개 디바이스
수집 태그 수892개 태그
일일 수집량약 2,500만 건
스토리지HDD → SSD 이관 완료
성능 비교InfluxDB 대비 동등 성능 확인
추가 수집2제강 센싱 테이블 (2026.01.22)

수집 파이프라인 네이밍 표준

DB 계층
Database: [회사]
Schema: [사업장]_[공장]
Table: [소스시스템]_[접미어]
예: css.changwon_sm2.tag_rt
Kafka Topic
[회사].[사업장_공장].[소스시스템]
예: css.changwon_sm2.tag
OPC 채널명
[사업장코드]_[공장코드]_[두자리숫자]
예: changwon_sm2_01
06

고객 서비스 개발 현황

진행률 55%
진행 중 (Phase 1–7, 60–70%)
Phase 1로컬 환경 구성Keycloak 인증 기반70%
Phase 2표준 데이터 관리회사/사업장/공장/설비/기기 CRUD70%
Phase 3OPC UA · 태그 관리노드 브라우징, 태그 등록70%
Phase 4Kafka 메시지 허브토픽/클러스터 관리70%
Phase 5파이프라인 엔진Benthos YAML 생성기70%
Phase 6스트림 위저드4단계 스트림 생성70%
Phase 7데이터 수집·조회TimescaleDB, Valkey 캐싱60%
미시작 (Phase 8–12)
Phase 8사용자·권한 관리RBAC + OIDC Provider30%
Phase 9대시보드·모니터링실시간 현황 시각화미시작
Phase 10데이터셋·추가 기능Meltano 연동 (Phase 4.5)미시작
Phase 11테스트·최적화통합 테스트, 고부하 테스트미시작
Phase 12인프라 구축·배포프로덕션 배포 파이프라인미시작
07

전체 진행률 요약

단계 목표 진행률 주요 미완 사항
기안 목적 · 목표 · 전략 수립
90%
완료조건 세부 기준 미확정
요구사항 기능/비기능 요구사항 정의
75%
P2 RBAC / OIDC 상세 미완
아키텍처 기술 스택 / 구조 확정
80%
OIDC Provider 통합 설계 진행 중
인프라 K8s 기반 서비스 구축
65%
Fluentd, CI/CD 파이프라인 미완
수집 서비스 OPC-UA → Kafka → DB 파이프라인
70%
고부하 테스트 / 안정화 미완
고객 서비스 데이터 조회 / 관리 서비스
55%
Phase 8–12 미시작, 통합 테스트 미수행
전체 DataForge Package 완성
~70%
Phase 8–12 및 통합 테스트 필요
08

주요 방향 변경 이력

인증 시스템
Keycloak Zitadel oidc-provider (자체 구현)
nest-oidc-provider 기반 자체 OIDC Provider 구현으로 최종 결정
수집 엔진
NiFi Benthos-UMH
NiFi 구축 테스트 후 폐기, Benthos-UMH로 대체 (경량성, OPC-UA 네이티브 지원)
Kafka 모드
ZooKeeper KRaft 모드 (Kafka 4.1/4.2)
ZooKeeper 의존성 완전 제거, KRaft 단독 운영
수집 관리 GUI
DF-Stream 내 통합 별도 Payload CMS 기반 BSM
Benthos Stream Manager를 DF-Stream과 별개로 먼저 구현, 향후 통합 여부 결정 필요
DB 구조
단일 DB df_package + df_app 분리
마스터 데이터(읽기전용)와 운영 데이터(읽기/쓰기) 2개 DataSource로 분리
컨테이너 오케스트레이션
Docker Swarm Kubernetes (K3s)
Docker Swarm 검토 후 K3s 채택, Headlamp 대시보드 구성 완료
09

현재 시급한 미완 항목

Fluentd 구축 완료
인프라 · 진행 중
GitLab CI/CD 파이프라인 구성
인프라 · 테스트 중
Phase 8: 사용자/권한 관리
고객 서비스 · RBAC + OIDC Provider (30%)
Phase 9: 대시보드 및 모니터링
고객 서비스 · 미시작
Phase 10–12: 추가 기능 / 테스트 / 배포
고객 서비스 · 미시작
BSM ↔ DF-Stream 통합 여부 결정
아키텍처 의사결정 필요
통합 테스트 수행
완료 조건 · DataForge 서비스 통합 테스트
고부하 테스트 / 안정화
수집 서비스 · 장기 수집 안정성 검증