본문으로 건너뛰기

개요

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

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

HandStack 실행환경의 공통 기준​

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

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

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

환경 차이 줄이기​

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

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

마치며​

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