본문으로 건너뛰기

실무 가이드

로컬 빌드​

PowerShell 기준 기본 빌드는 다음과 같습니다.

./env.ps1
./install.ps1
./build.ps1

Windows 배치 환경에서는 같은 목적의 .bat 스크립트를 사용할 수 있습니다.

env.bat
install.bat
build.bat

Linux/macOS에서는 .sh 또는 PowerShell Core 기반 .ps1을 사용합니다.

./env.sh
./install.sh
./build.sh

C# 최적화 빌드·스모크 검증​

HandStack 소스 저장소 루트에서 다음 명령으로 제품 프로젝트 빌드와 호스트 스모크 검증을 실행합니다. PowerShell 7과 .NET 10 SDK가 필요하며, 스모크 검증에는 Python 3.9 이상도 필요합니다.

pwsh -NoProfile -File tests/run-optimization.ps1 -Mode Build
pwsh -NoProfile -File tests/run-optimization.ps1 -Mode Smoke

스크립트는 매번 artifacts/optimization/run-<GUID>를 별도 HANDSTACK_HOME으로 사용하고 종료 시 환경 변수를 복원합니다. 먼저 assemblies.ps1로 공통 DLL을 재생성하므로 3.Infrastructure/Assemblies의 변경과 서명 상태를 함께 확인합니다. 기본 모드인 Build는 제품 C# 프로젝트를 각각 Debug/Release로 빌드합니다.

Smoke는 격리한 ack·rdy의 /checkip와 거래→비동기 C# 함수의 정상·타임아웃·예외 응답을 확인합니다. 회귀 테스트·벤치마크 프로젝트는 삭제되었으며, 이전 측정 기록과 상세 검증 조건은 소스 저장소의 tests/optimization-review.md와 tests/README.md를 참고하세요.

배포 산출물 생성​

릴리즈 산출물은 publish 스크립트로 만듭니다.

./publish.ps1 win publish Release x64

운영체제와 아키텍처에 맞게 win, linux, osx와 x64, arm64 등을 선택합니다. 산출물은 실행 서버에 복사 가능한 형태여야 하며, 빌드 서버의 임시 파일에 의존하지 않아야 합니다.

릴리즈 기록​

릴리즈마다 다음을 기록합니다.

  • 빌드 시각
  • 브랜치와 커밋 ID
  • publish 매개변수
  • 포함한 모듈 목록
  • 배포 대상 환경
  • 적용한 설정 파일
  • 배포 후 확인 결과

체크리스트​

  • 빌드와 실행을 같은 수동 작업으로 섞지 않았는가?
  • 운영 서버에서 직접 수정한 파일이 릴리즈 기록 없이 남아 있지 않은가?
  • 배포 산출물을 같은 명령으로 다시 만들 수 있는가?
  • 모듈의 계약 파일과 정적 자산도 함께 배포되었는가?
  • 실패 시 이전 산출물로 되돌릴 수 있는가?