본문으로 건너뛰기

개요

개발/운영 환경 일치 원칙은 개발, 검증, 운영 환경의 차이를 가능한 한 줄이라는 뜻입니다. 환경 차이가 클수록 "개발 PC에서는 되는데 운영에서는 안 되는" 문제가 많아집니다.

HandStack은 Windows, Linux, macOS, Docker, IIS, pm2 등 여러 실행 방식을 지원할 수 있습니다. 이 유연성은 장점이지만, 팀이 환경 기준을 정하지 않으면 장애 원인이 됩니다.

HandStack 실행환경의 공통 기준

환경이 달라도 다음 기준은 같아야 합니다.

  • HANDSTACK_SRCHANDSTACK_HOME의 의미
  • .NET과 Node.js의 기준 버전
  • ack가 읽는 설정 파일
  • 로드할 모듈 목록
  • 계약 파일과 정적 자산의 위치
  • 로그 저장 위치
  • 관리 스크립트 실행 방식

운영체제마다 명령은 다를 수 있지만, 작업 결과는 같아야 합니다. 그래서 HandStack은 .bat, .ps1, .sh 형태의 스크립트를 함께 제공합니다.

환경 차이 줄이기

환경 차이를 줄이려면 수동 설치 목록보다 스크립트를 우선합니다. 스크립트로 표현하기 어려운 서버 설정은 문서화하고, 설치 후 확인 명령을 함께 둡니다.

예를 들어 IIS 호스팅은 ASP.NET Core Hosting Bundle, Application Pool 설정, web.config, 포트/SSL 바인딩이 모두 맞아야 합니다. Docker는 이미지, 볼륨, 포트, 환경 변수가 맞아야 합니다.

마치며

실행환경 표준화는 신규 개발자의 온보딩 시간을 줄이고 운영 장애를 줄입니다. HandStack 프로젝트에서는 "어떤 환경에서 실행 중인가"보다 "그 환경이 표준 설정을 충족하는가"를 먼저 확인해야 합니다.