개요
빌드, 릴리즈, 실행 원칙은 세 단계를 분리하라는 뜻입니다. 빌드는 소스를 실행 가능한 산출물로 만들고, 릴리즈는 산출물과 환경 설정을 결합하며, 실행은 특정 환경에서 프로세스를 시작합니다.
HandStack에서는 이 구분이 특히 중요합니다. ack 호스트, 기본 모듈, CLI 도구, 계약 파일, 정적 자산이 함께 배포되기 때문에 빌드와 실행을 섞으면 어떤 파일이 운영에 반영되었는지 추적하기 어렵습니다.
HandStack의 단계
HandStack 메인 저장소는 단계별 스크립트를 제공합니다.
install: 개발과 실행에 필요한 패키지와 기본 파일 준비build: 솔루션과 모듈을 Debug 기준으로 빌드publish: OS와 아키텍처 기준의 배포 산출물 생성assemblies: 공통 어셈블리 정리- 모듈별
task: 계약 파일 복사, 실행, 정리, 인증서, 프로세스 제어 등
각 작업은 .bat, .ps1, .sh 형태로 제공될 수 있습니다. Windows만 운영하더라도 PowerShell 스크립트를 기준으로 자동화하면 운영체제 차이를 줄이기 쉽습니다.
산출물 기준
배포 산출물은 보통 다음 구조를 가집니다.
handstack/
├─ app/
├─ assemblies/
├─ hosts/
├─ modules/
├─ tools/
└─ contracts/
운영 서버에서는 이 산출물과 환경 설정을 결합하여 실행합니다. 서버에서 소스를 직접 빌드할 수도 있지만, 운영 원칙상 재현 가능한 산출물을 만들고 그 산출물을 배포하는 흐름이 더 안전합니다.
마치며
빌드, 릴리즈, 실행을 분리하면 장애 분석이 쉬워집니다. 신규 개발자는 "어떤 소스를 빌드했는지", "어떤 설정과 결합했는지", "어떤 프로세스로 실행했는지"를 항상 구분해서 기록해야 합니다.