OPC DB server Project First Commit

This commit is contained in:
2026-02-09 02:55:47 +00:00
commit 3181052619
53 changed files with 5719 additions and 0 deletions

View File

@@ -0,0 +1,174 @@
현재 설치 상태 요약
✅ 이미 설치된 것들
1. 개발 환경
✓ .NET SDK 8.0.123
✓ .NET SDK 10.0 (aspnetcore-runtime-10.0)
✓ dotnet-sdk-8.0
2. 데이터베이스
✓ PostgreSQL 16.11
✓ TimescaleDB 2.25.0
✓ postgresql-client-16
3. 시스템 도구
✓ Git 2.43.0
✓ curl, wget
✓ vim, nano
✓ htop (시스템 모니터링)
✓ tmux (터미널 멀티플렉서)
🔧 추가로 설치해야 할 것들
1. OPC UA 라이브러리 (NuGet)
bashcd ~/projects/OpcUaMinimal
dotnet add package OPCFoundation.NetStandard.Opc.Ua --version 1.5.374.126
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Client --version 1.5.374.126
또는 더 간단한 라이브러리:
bashdotnet add package Technosoftware.OpcUaNetStandardLibrary --version 7.0.0
2. Entity Framework Core (PostgreSQL)
bashdotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 8.0.23
dotnet add package Microsoft.EntityFrameworkCore.Design --version 8.0.23
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 8.0.23
3. SignalR (실시간 통신)
bashdotnet add package Microsoft.AspNetCore.SignalR.Client --version 8.0.23
4. 기타 필수 라이브러리
bash# Logging
dotnet add package Serilog.AspNetCore --version 8.0.3
dotnet add package Serilog.Sinks.File --version 6.0.0
dotnet add package Serilog.Sinks.PostgreSQL --version 3.2.0
# Configuration
dotnet add package Microsoft.Extensions.Configuration.Json
dotnet add package Microsoft.Extensions.Options.ConfigurationExtensions
# Background Service
dotnet add package Microsoft.Extensions.Hosting
dotnet add package Microsoft.Extensions.Hosting.Systemd
5. 시스템 서비스 관련 (Linux에서 필요)
bash# systemd 개발 헤더 (이미 설치됨)
✓ systemd-dev
# 추가 필요한 것
sudo apt update
sudo apt install -y build-essential
📁 프로젝트 구조 생성
bashcd ~/projects
mkdir -p OpcClientSystem
cd OpcClientSystem
# 1. Core 프로젝트
dotnet new classlib -n Domain -o 01_Core/Domain
dotnet new classlib -n Application -o 01_Core/Application
# 2. Infrastructure 프로젝트
dotnet new classlib -n Infrastructure -o 02_Infrastructure
# 3. OPC Client Service
dotnet new worker -n OpcDataCollector.Service -o 03_Service
# 4. Web API
dotnet new webapi -n IndustrialAutomation.API -o 04_WebAPI
# 5. Blazor Web (선택)
dotnet new blazor -n IndustrialAutomation.Web -o 05_Web
# Solution 파일 생성
dotnet new sln -n OpcClientSystem
# 프로젝트들을 Solution에 추가
dotnet sln add 01_Core/Domain/Domain.csproj
dotnet sln add 01_Core/Application/Application.csproj
dotnet sln add 02_Infrastructure/Infrastructure.csproj
dotnet sln add 03_Service/OpcDataCollector.Service/OpcDataCollector.Service.csproj
dotnet sln add 04_WebAPI/IndustrialAutomation.API/IndustrialAutomation.API.csproj
🗄️ PostgreSQL 설정
DB 생성 (아직 안 했다면)
bashsudo -u postgres psql
# PostgreSQL 프롬프트에서
CREATE DATABASE scada;
CREATE USER opcuser WITH PASSWORD 'your_password';
GRANT ALL PRIVILEGES ON DATABASE scada TO opcuser;
# TimescaleDB 확장 활성화
\c scada
CREATE EXTENSION IF NOT EXISTS timescaledb;
\q
연결 테스트
bashpsql -h localhost -U opcuser -d scada
# 비밀번호 입력 후 연결 확인
🔐 환경 변수 설정
bash# ~/.bashrc 또는 ~/.profile에 추가
echo 'export ConnectionStrings__DefaultConnection="Host=localhost;Database=scada;Username=opcuser;Password=your_password"' >> ~/.bashrc
source ~/.bashrc
🚀 개발 시작 체크리스트
✅ 완료된 것
Ubuntu Server 24.04 설치
PostgreSQL 16 설치
TimescaleDB 설치
.NET SDK 8.0 설치
Git 설치
VSCode Remote SSH 연결
📝 해야 할 것
OPC UA NuGet 패키지 설치
EF Core PostgreSQL 패키지 설치
프로젝트 구조 생성
Database 스키마 생성
OPC Client 기본 연결 테스트
Experion 서버 연결 확인
🎯 다음 단계 제안
bash# 1. 간단한 테스트 프로젝트부터 시작
cd ~/projects
dotnet new console -n OpcTest
cd OpcTest
# 2. OPC UA 패키지 설치
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Client
# 3. Experion 연결 테스트 코드 작성
# (다음 메시지에서 샘플 코드 제공 가능)
# 4. 테스트 실행
dotnet run
필요한 것이 더 있으면 말씀해주세요!
OPC UA 연결 테스트 코드?
DB 스키마 생성 스크립트?
전체 프로젝트 템플릿 코드?
nuget 이미 설치했는데?오전 10:01아! 죄송합니다. NuGet은 .NET SDK에 포함되어 있으니 이미 사용 가능합니다.
제가 말한 건 NuGet 패키지 관리자가 아니라 NuGet 패키지(라이브러리) 설치를 의미한 거였습니다.
정리하면:
✅ 이미 있는 것 (설치 완료)
✓ NuGet (패키지 관리자) - .NET SDK에 포함
✓ .NET SDK 8.0
✓ PostgreSQL 16
✓ TimescaleDB
📦 해야 할 것 (프로젝트에 라이브러리 추가)
프로젝트를 만든 후에:
bashcd ~/projects/OpcUaMinimal # 또는 새 프로젝트 경로
# 이런 명령어들로 라이브러리 추가
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Client
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
NuGet 자체는 설치할 필요 없고,
NuGet을 통해 라이브러리들을 추가하면 됩니다!
🚀 바로 시작할 수 있는 것
bashcd ~/projects/OpcUaMinimal
# OPC UA 라이브러리 추가
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Client
# PostgreSQL 라이브러리 추가
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
# 설치 확인
dotnet list package
이제 Experion 서버 연결 테스트 코드가 필요하신가요?