174 lines
5.4 KiB
Markdown
174 lines
5.4 KiB
Markdown
현재 설치 상태 요약
|
|
✅ 이미 설치된 것들
|
|
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 서버 연결 테스트 코드가 필요하신가요? |