# 2. 설치 및 설정 (Installation & Configuration) > **문서 버전**: 1.0 > **최종 업데이트**: 2025-11-15 --- ## 2.1 사전 요구사항 (Prerequisites) ### 2.1.1 PowerShell Core 7.0+ 설치 #### Windows 환경 **방법 1: Windows Package Manager (winget)** ```powershell winget install Microsoft.PowerShell ``` **방법 2: MSI 설치 파일** 1. [PowerShell GitHub Releases](https://github.com/PowerShell/PowerShell/releases) 방문 2. 최신 `.msi` 파일 다운로드 3. 설치 프로그램 실행 **설치 확인** ```powershell pwsh --version # 출력 예: PowerShell 7.4.0 ``` #### Linux 환경 **Ubuntu / Debian** ```bash # 패키지 업데이트 sudo apt-get update # 필수 패키지 설치 sudo apt-get install -y wget apt-transport-https software-properties-common # Microsoft repository 추가 source /etc/os-release wget -q https://packages.microsoft.com/config/ubuntu/$VERSION_ID/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb # PowerShell 설치 sudo apt-get update sudo apt-get install -y powershell # 설치 확인 pwsh --version ``` **CentOS / RHEL** ```bash # Repository 등록 curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo # PowerShell 설치 sudo yum install -y powershell # 설치 확인 pwsh --version ``` --- ### 2.1.2 .NET Runtime 설치 Aspose.PSD는 .NET Core 6.0 이상이 필요합니다. #### Windows .NET Runtime은 일반적으로 PowerShell 설치 시 함께 설치됩니다. **별도 설치가 필요한 경우:** 1. [.NET 다운로드 페이지](https://dotnet.microsoft.com/download/dotnet/6.0) 방문 2. ".NET Runtime 6.0" 다운로드 3. 설치 프로그램 실행 **설치 확인** ```powershell dotnet --list-runtimes # 출력에 "Microsoft.NETCore.App 6.0.x" 포함되어야 함 ``` #### Linux ```bash # Ubuntu/Debian sudo apt-get install -y dotnet-runtime-6.0 # CentOS/RHEL sudo yum install -y dotnet-runtime-6.0 # 설치 확인 dotnet --list-runtimes ``` --- ### 2.1.3 Aspose.PSD 라이선스 준비 #### 라이선스 획득 방법 **Aspose.PSD for .NET** 라이선스는 상용 제품이며 다음 방법으로 획득할 수 있습니다: 1. **평가판 라이선스 (30일)** - [Aspose 웹사이트](https://purchase.aspose.com/temporary-license)에서 임시 라이선스 요청 - 개발 및 테스트 용도로 사용 가능 2. **정식 라이선스 구매** - [Aspose Purchase](https://purchase.aspose.com/buy)에서 구매 - 개발자 라이선스, 사이트 라이선스 등 다양한 옵션 3. **라이선스 파일 형식** - XML 형식의 `.lic` 파일 - 이메일로 전송받거나 계정에서 다운로드 #### 라이선스 보안 고려사항 **중요**: 라이선스 파일은 민감한 정보이므로 다음 사항을 준수하세요: - Git repository에 커밋하지 말 것 (`.gitignore`에 추가) - 파일 권한을 최소화 (읽기 전용, 소유자만) - 프로덕션 환경에서는 별도 보안 스토리지 사용 ```bash # Linux 파일 권한 설정 예시 chmod 400 Aspose.PSD.NET.lic chown appuser:appuser Aspose.PSD.NET.lic ``` --- ## 2.2 설치 가이드 ### 2.2.1 Repository Clone ```bash # SSH 사용 (권장) git clone git@github.com:planitaicojp/poster-ai-create-psd.git # HTTPS 사용 git clone https://github.com/planitaicojp/poster-ai-create-psd.git # 디렉토리 이동 cd poster-ai-create-psd ``` **프로젝트 디렉토리 구조 확인** ``` poster-ai-create-psd/ ├── Create-PSD.ps1 # 메인 스크립트 ├── Create-PSD-config.ps1 # 설정 파일 ├── PSD-Functions.ps1 # 핵심 함수 ├── PSD-Utilities.ps1 # 유틸리티 함수 ├── Load-AsposePSD.ps1 # 라이브러리 로더 ├── aspose-packages/ # DLL 파일 디렉토리 (생성 필요) ├── Tests/ # 테스트 스크립트 ├── README.md └── .gitignore ``` --- ### 2.2.2 필수 DLL 파일 배치 `aspose-packages` 디렉토리를 생성하고 필수 DLL 파일을 배치합니다. #### 디렉토리 생성 ```powershell # Windows / Linux 공통 mkdir aspose-packages ``` #### 필수 DLL 파일 목록 다음 DLL 파일들을 `aspose-packages/` 디렉토리에 복사합니다: 1. **Aspose.PSD.dll** (필수) - Aspose.PSD for .NET 라이브러리 - 버전: 23.x 이상 권장 2. **Aspose.Drawing.dll** (필수) - Aspose.PSD 의존성 3. **System.Text.Encoding.CodePages.dll** (필수) - 문자 인코딩 지원 4. **Newtonsoft.Json.dll** (필수) - JSON 처리 5. **System.Drawing.Common.dll** (필수) - 이미지 처리 #### DLL 파일 획득 방법 **방법 1: NuGet 패키지에서 추출** ```powershell # NuGet CLI 설치 (Windows) choco install nuget.commandline # Aspose.PSD 패키지 다운로드 nuget install Aspose.PSD -Version 23.7.0 -OutputDirectory ./packages # DLL 파일을 aspose-packages로 복사 cp ./packages/Aspose.PSD.23.7.0/lib/net6.0/*.dll ./aspose-packages/ ``` **방법 2: 수동 다운로드** - Aspose 계정에서 다운로드 - 또는 이메일로 받은 패키지에서 추출 #### 파일 배치 확인 ```powershell ls aspose-packages/ ``` 출력 예시: ``` Aspose.Drawing.dll Aspose.PSD.dll Newtonsoft.Json.dll System.Drawing.Common.dll System.Text.Encoding.CodePages.dll ``` --- ### 2.2.3 Aspose.PSD 라이선스 파일 설정 #### 라이선스 파일 배치 라이선스 파일(`Aspose.PSD.NET.lic`)을 `aspose-packages/` 디렉토리에 배치합니다. ```powershell # 라이선스 파일 복사 cp /path/to/Aspose.PSD.NET.lic ./aspose-packages/ # 또는 프로젝트 루트에 배치 cp /path/to/Aspose.PSD.NET.lic ./Aspose.PSD.NET.lic ``` #### 라이선스 유효성 검증 테스트 스크립트로 라이선스가 정상적으로 로드되는지 확인합니다: ```powershell pwsh -f test-aspose-load.ps1 ``` 정상 출력 예시: ``` [INFO] Loading Aspose.PSD library... [INFO] Aspose.PSD loaded successfully [INFO] License file found: Aspose.PSD.NET.lic [INFO] License applied successfully [SUCCESS] Aspose.PSD is ready to use ``` 오류 발생 시: ``` [ERROR] License file not found [ERROR] Invalid license file ``` --- ## 2.3 환경 설정 (Configuration) ### 2.3.1 Create-PSD-config.ps1 설정 파일 `Create-PSD-config.ps1` 파일에서 환경별 설정을 관리합니다. #### 설정 파일 구조 ```powershell # ===== 경로 설정 ===== # 템플릿 디렉토리 경로 $global:TemplateRootPath = "E:\psd_template" # Windows # $global:TemplateRootPath = "/data/psd_template" # Linux # 머신 데이터 디렉토리 $global:MachineRootPath = "E:\poster\machine" # Windows # $global:MachineRootPath = "/data/machine" # Linux # 작업 디렉토리 $global:WorkingRootPath = "E:\poster\working" # Windows # $global:WorkingRootPath = "/data/working" # Linux # CSV 파일 경로 $global:PosterCsvPath = ".\poster.csv" # ===== Aspose.PSD 설정 ===== $global:AsposeLicensePath = ".\Aspose.PSD.NET.lic" $global:AsposePackagesPath = ".\aspose-packages" # ===== 로깅 설정 ===== $global:LogLevel = "INFO" # DEBUG, INFO, WARN, ERROR $global:EnableConsoleLog = $true $global:EnableFileLog = $true # ===== 디버그 옵션 ===== $global:DebugMode = $false ``` --- ### 2.3.2 디렉토리 구조 설정 #### 데이터 디렉토리 생성 프로젝트가 사용할 데이터 디렉토리를 생성합니다. **Windows** ```powershell # 템플릿 디렉토리 mkdir E:\psd_template\vertical mkdir E:\psd_template\horizontal # 머신 데이터 디렉토리 mkdir E:\poster\machine # 작업 디렉토리 mkdir E:\poster\working ``` **Linux** ```bash # 템플릿 디렉토리 sudo mkdir -p /data/psd_template/vertical sudo mkdir -p /data/psd_template/horizontal # 머신 데이터 디렉토리 sudo mkdir -p /data/machine # 작업 디렉토리 sudo mkdir -p /data/working # 권한 설정 sudo chown -R appuser:appuser /data sudo chmod -R 755 /data ``` --- ### 2.3.3 크로스 플랫폼 설정 #### Windows 개발 환경 **경로 규칙** - 드라이브 문자 사용: `E:\`, `D:\` - 백슬래시 구분자: `\` **설정 예시 (Create-PSD-config.ps1)** ```powershell # Windows 개발 환경 $global:TemplateRootPath = "E:\psd_template" $global:MachineRootPath = "E:\poster\machine" $global:WorkingRootPath = "E:\poster\working" $global:PosterCsvPath = "E:\logical-experiment\create-psd\poster.csv" ``` **실행 예시** ```powershell pwsh -File "E:\logical-experiment\create-psd\Create-PSD.ps1" ` -MachineIds "1,107" ` -Orientation "vertical" ` -Logotype "grandOpen" ``` #### Linux 운영 환경 **경로 규칙** - 절대 경로: `/data/` - 슬래시 구분자: `/` **설정 예시 (Create-PSD-config.ps1)** ```powershell # Linux 운영 환경 $global:TemplateRootPath = "/data/psd_template" $global:MachineRootPath = "/data/machine" $global:WorkingRootPath = "/data/working" $global:PosterCsvPath = "/app/poster-ai-create-psd/poster.csv" ``` **실행 예시** ```bash pwsh -File /app/poster-ai-create-psd/Create-PSD.ps1 \ -MachineIds "1,107" \ -Orientation "vertical" \ -Logotype "grandOpen" ``` #### 환경 자동 감지 PowerShell의 `$IsWindows`, `$IsLinux` 변수를 활용하여 환경을 자동 감지할 수 있습니다. ```powershell # 환경별 경로 자동 설정 if ($IsWindows) { $global:TemplateRootPath = "E:\psd_template" $global:MachineRootPath = "E:\poster\machine" $global:WorkingRootPath = "E:\poster\working" } elseif ($IsLinux) { $global:TemplateRootPath = "/data/psd_template" $global:MachineRootPath = "/data/machine" $global:WorkingRootPath = "/data/working" } ``` --- ### 2.3.4 로그 및 디버그 설정 #### 로그 레벨 설정 ```powershell # Create-PSD-config.ps1에서 설정 $global:LogLevel = "INFO" ``` 로그 레벨: - `DEBUG`: 모든 상세 정보 - `INFO`: 일반 정보 (기본값) - `WARN`: 경고 메시지 - `ERROR`: 오류만 기록 #### 디버그 모드 ```powershell # 디버그 모드 활성화 $global:DebugMode = $true ``` 디버그 모드에서는: - 상세한 스택 트레이스 출력 - 중간 결과물 보존 - Aspose.PSD 내부 로그 활성화 --- ## 설치 완료 확인 모든 설정이 완료되었으면 테스트 실행으로 확인합니다: ```powershell # 기본 실행 테스트 pwsh -f Create-PSD.ps1 -machineIds "1" # JSON 모드 테스트 pwsh -f test-json-output.ps1 ``` 정상적으로 실행되면 설치가 완료된 것입니다. --- ## 다음 단계 - **[3. 데이터 준비](doc_3_data_preparation.md)**: poster.csv 및 머신 데이터 준비 - **[4. 사용 가이드](doc_4_user_guide.md)**: 기본 및 고급 사용법 --- **[← 목차로 돌아가기](doc_index.md)**