본문으로 건너뛰기

실무 가이드

루트 스크립트

HandStack 루트에는 전체 작업을 위한 스크립트가 있습니다.

env.*
install.*
build.*
publish.*
assemblies.*

각 작업은 운영체제에 맞춰 .bat, .ps1, .sh 중 하나를 사용합니다. PowerShell Core를 사용할 수 있는 환경이라면 .ps1을 공통 기준으로 삼기 좋습니다.

모듈별 task 스크립트

기본 모듈은 task.bat, task.ps1, task.sh를 제공할 수 있습니다. 대표 작업은 다음과 같습니다.

  • purge: 계약 파일 정리
  • copy: 계약과 정적 자산 복사
  • run: 설정 적용 후 실행
  • app: 시작 로그 확인
  • devcert: 개발 인증서 생성
  • start: 프로세스 시작
  • stop: 프로세스 중지
  • build: 모듈 빌드와 재시작
  • publish: 운영용 빌드

업무 모듈도 같은 명령 체계를 따르는 것이 좋습니다.

원격 실행 기준

Jenkins 같은 자동화 도구에서 관리작업을 실행할 때는 다음을 지킵니다.

  • 작업 매개변수를 명확히 선언합니다.
  • 인증 정보는 자동화 도구의 자격 증명 기능으로 관리합니다.
  • 콘솔 로그에 민감정보를 출력하지 않습니다.
  • 성공과 실패를 종료 코드로 구분합니다.
  • 원격 서버의 작업 디렉터리를 고정합니다.

디버깅 기준

운영 환경에서 직접 디버깅이 필요할 때는 먼저 로그, 설정, 배포 이력을 확인합니다. 원격 디버깅은 운영체제, 런타임, 개발 도구 버전이 맞아야 하며 서비스 영향이 있으므로 제한적으로 사용합니다.

Docker에서 실행 중인 ack를 확인해야 한다면 컨테이너 로그, 볼륨, 포트, 실행 인자를 먼저 확인한 뒤 디버거 연결을 검토합니다.

체크리스트

  • 관리작업이 스크립트로 재실행 가능한가?
  • .bat, .ps1, .sh 중 환경별 사용 기준이 있는가?
  • 작업 실패 시 종료 코드와 로그가 남는가?
  • 원격 실행에 운영 계정이나 비밀값이 노출되지 않는가?
  • 신규 개발자가 스크립트 이름만 보고 작업 목적을 이해할 수 있는가?