개발
제품 정기 배포 실전 가이드
현대의 소프트웨어 제품은 모바일 앱(iOS, Android), 웹 서비스, 서버 등 여러 컴포넌트로 구성된다. 이때 각 컴포넌트가 제각각의 일정으로 배포된다면, QA팀의 테스트 빈도가 불필요하게 늘어나고 제품의 품질 보장이 어려워질 수 있다. 따라서 정기적인 주기에 맞춰 배포를 통합적으로 관리하는 것이 중요하다.
정기 배포 주기
- 일반적으로 1~2주 단위 또는 1개월 단위로 정기 배포를 진행한다.
- 다만, 배포 범위나 처리 역량을 고려해 주기를 조정할 수 있다.
- 배포할 컴포넌트가 없는 경우에는 해당 차수 배포를 건너뛸 수 있다.
배포 프로세스
- 서버 배포 → 모니터링 → 클라이언트 배포
- 서버를 먼저 운영 환경에 배포하고 최소 24시간 이상 모니터링한다.
- 이상이 없다면 모바일 앱과 웹 등 클라이언트 배포를 진행한다.
- 백오피스 시스템은 상황에 따라 서버와 동시 배포 여부를 결정할 수 있다.
- 모든 배포는 QA 검증과 내부 승인 절차를 반드시 통과해야 한다.
- 앱스토어 심사가 필요한 경우(모바일 앱)는 배포 이후 즉각적인 Rollback이 어렵기 때문에, 더욱 철저한 사전 검증이 필요하다.
비정기 배포
- 정기 배포 외에도 시장 대응이나 사업적 요구로 인해 비정기 배포가 필요할 수 있다.
- 그러나 비정기 배포는 상당한 비용과 리스크가 수반되므로 가급적 최소화하는 것이 바람직하다.
핫픽스(Hotfix) 배포
- 정기/비정기 배포 후 발생한 치명적인 오류를 해결하기 위해 긴급 배포가 필요한 경우 핫픽스를 진행한다.
- 핫픽스는 해당 이슈만 빠르게 수정 후 최소한의 검증을 거쳐 배포한다.
- 내부 승인 프로세스는 반드시 준수해야 하며, QA 책임자의 판단하에 진행한다.
- 심각한 오류가 발생했을 경우 가장 우선적으로 고려해야 할 방법은 안정 버전으로의 Rollback이다.
버전 관리
- 제품은 컴포넌트 단위뿐 아니라 전체적으로 하나의 대표 버전으로 관리하는 것이 효율적이다.
- 대표 버전은
제품명-YYMMDD
형식으로 정의한다. - 예:
product-230307
- 배포 유형별 버전 예시:
- 정기 배포:
product-YYMMDD
- 비정기 배포:
product-YYMMDD-nonregular
- 핫픽스:
product-YYMMDD-hotfix
- Jira나 이슈 트래킹 툴에서 해당 대표 버전을 반드시 포함하도록 관리해야 한다.