NohDoyeon241104 3fc3789bfa 추가된 파일:
- docs/project-overview.md — 프로젝트
  개요
  - docs/solution-structure.md — 솔루션
  구조
  - docs/ptop-architecture.md — PTOP
  아키텍처
  - docs/aurora-devices.md — Aurora
  디바이스 목록
  - docs/build-output.md — 빌드 출력 경로
  - docs/harness-ptop.md — PTOP 하네스
  구성

  수정된 파일:
  → CLAUDE.md — 기존 내용을 6개 문서로
  분리, @import 방식으로 변경
  → .gitignore — .claude/ 추가

  삭제된 파일:
  - _기존md파일/ 디렉토리 (원본)

  제안 커밋 메시지:
  docs: CLAUDE.md를 주제별 문서로 분리 및
  @import 방식으로 재구성

  - 프로젝트 개요, 솔루션 구조, PTOP
  아키텍처, 디바이스 목록, 빌드 경로,
  하네스 구성을 별도 문서로 분리
  - 각 문서는 200줄 이하로 규칙 5번 준수
  - CLAUDE.md에서 @import로 참조하는
  라이브러리 형태로 변경 (규칙 6번 준수)
  형태로 변경 (규칙 6번 준수)
  - .gitignore에 .claude/ 추가, .ubisam_agent는
  제거
2026-06-16 17:28:03 +09:00

6.6 KiB

name description
optimize-ptop-build ILSOS_PrismaticRD_PTOP의 빌드 최적화 및 CI/CD 자동화. 멀티 구성 빌드(Debug/Release/Simulation/UserDefineUnit) 분석, 의존성 최적화, 빌드 시간 단축, CI/CD 파이프라인 설계. "빌드 최적화", "PTOP 빌드 성능", "CI/CD 자동화 설계", "배포 파이프라인" 요청 시 사용.

Optimize PTOP Build Skill

목표

ILSOS_PrismaticRD_PTOP의 빌드 성능 및 자동화를 최적화한다.

분석 영역

1단계: 현재 빌드 상태 분석

수집 대상:

  • 솔루션 내 프로젝트 목록 (ILSOS_All.sln)
  • PTOP이 참조하는 프로젝트
  • 각 프로젝트의 빌드 시간 측정

측정 방법:

# Visual Studio 빌드 시간 측정
msbuild ILSOS_All.sln /p:Configuration=Release /p:Platform=x64 /d:MSBUILDENABLEALLPROJECTSBUILDFASTPATH=true

# 또는 개별 구성별
msbuild ILSOS_All.sln /p:Configuration=Simulation /p:Platform=x64

수집 항목:

구성 총 소요시간 병목 프로젝트 (상위 3) 캐시 효율
Debug x64 ? ?
Release x64 ? ?
Simulation x64 ? ?
UserDefineUnit x64 ? ?

2단계: 의존성 분석

PTOP의 최소 필수 의존성 파악:

ILSOS_PrismaticRD_PTOP
├── WeldingCommon (필수)
├── WeldingComponents (필수)
│   ├── WeldingCommon.dll
│   ├── LASAGUI (용접 GUI)
│   └── ...
├── AuroraDevices (선택적)
│   ├── AuroraLaser (필수 - Laser 제어)
│   ├── AuroraOCT (필수 - OCT 스캔)
│   ├── AuroraPLC (필수 - PLC 통신)
│   ├── AuroraIO (필수 - IO 제어)
│   ├── AuroraCellTracker (필수 - 셀 추적)
│   ├── AuroraLBAD (?)
│   └── ... (기타 22개 중 필요 없는 것?)
├── AuroraComponents (필수)
├── AuroraVision (필요하나?)
└── NuGet 패키지 (Reactive, Json.NET, etc.)

분석:

  • 각 AuroraDevices 프로젝트의 실제 사용 여부
  • 제거 가능한 의존성
  • 조건부 컴파일 가능성 (#if DEBUG 등)

산출물: _workspace/04a_dependency_analysis.csv

3단계: 빌드 구성별 최적화

Debug|x64 최적화

  • 기호 생성 필요 (유지)
  • 최적화 비활성화 (유지)
  • 증분 빌드 활용

Release|x64 최적화

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
  <Optimize>true</Optimize>  <!-- 최적화 활성화 -->
  <DebugType>embedded</DebugType>  <!-- 기호 축소 -->
  <TieredCompilation>true</TieredCompilation>  <!-- .NET 4.8.1 지원하나? -->
  <PublishTrimmed>true</PublishTrimmed>  <!-- 불필요 어셈블리 제거 -->
</PropertyGroup>

Simulation|x64 최적화

#if SIMULATION
  // 하드웨어 통신 불필요 - 모의 구현 사용
  public class MockPLC : IPLC { ... }
#endif

UserDefineUnit|x64 최적화

  • 용도 파악 필요 (단위 테스트? 커스텀 하드웨어?)
  • 필요한 기능만 포함

4단계: CI/CD 파이프라인 설계

목표:

  • 자동 빌드 (commit, PR)
  • 자동 테스트 (Simulation 구성)
  • 자동 배포 (수동 승인)

추천 플랫폼:

  • GitHub Actions (GitHub 저장소 사용 중 가정)
  • Azure Pipelines (Microsoft 클라우드)
  • Jenkins (온프레미스)

파이프라인 구조:

# .github/workflows/ptop-build.yml
name: PTOP Build & Deploy

on:
  push:
    branches: [main, develop]
    paths: ['Machines/ILSOS_PrismaticRD_PTOP/**']
  pull_request:
    branches: [main]

jobs:
  build:
    runs-on: windows-latest
    strategy:
      matrix:
        config: [Debug, Release, Simulation]
    steps:
      - uses: actions/checkout@v3
      - name: Setup .NET Framework
        uses: microsoft/setup-msbuild@v1
      - name: Restore NuGet
        run: nuget restore ILSOS_All.sln
      - name: Build (${{ matrix.config }})
        run: msbuild ILSOS_All.sln /p:Configuration=${{ matrix.config }} /p:Platform=x64
      - name: Run Tests (Simulation only)
        if: matrix.config == 'Simulation'
        run: # 테스트 실행 명령
      - name: Upload Artifacts
        uses: actions/upload-artifact@v3
        with:
          name: ptop-${{ matrix.config }}
          path: Machines/_out_prismatic_rd_ptop/x64-${{ matrix.config }}/

  deploy:
    needs: build
    runs-on: windows-latest
    if: github.ref == 'refs/heads/main'
    environment: production  # 수동 승인 필수
    steps:
      - name: Download Release Artifact
      - name: Create Release Package
        run: # 패키징 스크립트
      - name: Deploy to Server
        run: # 배포 스크립트

5단계: 배포 패키징

산출물:

  • 실행 가능 파일 (Aurora.exe)
  • 필수 DLL (AuroraDevices, WeldingComponents, etc.)
  • 설정 파일 (app.config)
  • 리소스 파일 (이미지, 데이터)
  • 배포 설명서

패키징 형식:

  • ZIP 아카이브 (간단)
  • NSIS 설치 프로그램 (사용자 친화적)
  • Chocolatey 패키지 (자동 업데이트)

통합 산출물

최종 보고서: _workspace/04_ptop_build_optimization.md

# PTOP 빌드 최적화 보고서

## 1. 현재 빌드 성능

| 구성 | 시간 | 병목 | 개선 가능성 |
|------|------|------|----------|
| Debug|x64 | 45s | ? | 개선 중심 |
| Release|x64 | 60s | ? | 최적화 중심 |
| Simulation|x64 | 50s | ? | 테스트 환경 |
| UserDefineUnit|x64 | 55s | ? | 커스텀 |

## 2. 의존성 최적화

### 필수 의존성
- AuroraLaser, AuroraOCT, AuroraPLC, etc.

### 제거 가능 의존성
- ...

## 3. 빌드 구성별 최적화 전략

### Debug
- 현황: [상태]
- 개선안: [목표]
- 예상 효과: [시간 단축]

### Release
- ...

### Simulation
- ...

## 4. CI/CD 파이프라인

[YAML 파일 포함]

## 5. 배포 패키징

[패키징 스크립트]

## 6. 예상 효과

- 빌드 시간: XX% 단축
- 배포 시간: XX% 단축
- 자동화: 수동 작업 제거

입력 조건

사용자 요청 시:

  • "PTOP 빌드 최적화"
  • "빌드 시간 단축"
  • "CI/CD 파이프라인 설계"
  • "배포 자동화"
  • "Release 빌드 성능"

출력 결과

  • 빌드 성능 분석 보고서
  • 의존성 맵핑 CSV
  • CI/CD 파이프라인 (YAML/JSON)
  • 빌드 최적화 설정 (PropertyGroup)
  • 배포 패키징 스크립트
  • 최종 보고서

주의사항

  1. .NET Framework 4.8.1 호환성 — 최신 .NET 기능 사용 불가
  2. Visual Studio 2022 기준 — MSBuild 경로 확인
  3. Windows 플랫폼 전용 — x64 아키텍처 명시
  4. 빌드 머신 사양 — CI 환경의 OS/RAM 확인
  5. 라이선스 확인 — NuGet 패키지, 외부 도구의 라이선스