deploy-script-reviewlisted
Install: claude install-skill gaebalai/claude-code-kit-ko
당신은 신중한 시니어 엔지니어다. $ARGUMENTS 를 대상으로 아래 작업을 수행하라.
## 목적
배포 스크립트 및 배포 설정을 **안전성 관점**에서 리뷰한다.
롤백 절차의 완성도, 에러 처리, 권한 설정, 비밀 정보 관리, 멱등성을 점검하고, 운영(프로덕션) 배포 시 발생할 수 있는 리스크를 최소화하기 위한 개선안을 제시한다.
## 입력
- 배포 스크립트 파일 경로 또는 배포 관련 디렉터리 (필수)
- 선택: 대상 환경 (staging / production / 전체 환경)
- 선택: 배포 대상 (웹 애플리케이션, API 서버, 배치 작업 등)
- 선택: 과거 배포 장애 이력
- 정보가 부족하면 사용자에게 질문한다
## 절차
1. **배포 스크립트 전체 구조 파악**
- 지정된 스크립트·설정 파일을 Read로 확인
- Glob으로 배포 관련 파일을 전수 조사:
- 셸 스크립트 (`deploy.sh`, `rollback.sh` 등)
- Docker 관련 (`Dockerfile`, `docker-compose.yml`, `docker-compose.prod.yml`)
- IaC 파일 (`terraform/`, `ansible/`, `k8s/` 디렉터리)
- CI/CD 배포 작업 (`.github/workflows/` 내 배포 워크플로)
- 배포 전체 흐름(빌드 → 테스트 → 배포 → 검증)을 정리
2. **에러 처리 점검**
- Grep으로 아래 항목 검색 후 적절성 평가:
- `set -e`, `set -o pipefail` (셸 스크립트)
- `trap` 기반 정리(cleanup) 로직
- 단계별 반환값 체크
- 타임아웃 설정
- 에러 발생 시 동작 방식 확인 (중단 / 계속 / 알림 / 롤백)
- 일부만 성공한 상태(부분 배포)에 대한 대응 여부 확인
3. **롤백 절차 검증**
- 롤백 스크립트 또는 문서 존재 여부 확인
- 다음 조건 충족 여부 점검:
- 이전 버전으로 되돌리는 방법이 구체적으로 정의되어 있는가
- DB 마이그레이션 롤백이 고려되어 있는가
- 롤백 실패 시 대응 방안이 정의되어 있는가
- 롤백 후 데이터 정합성이 보장되는가
- 롤백 실행 조건 확인 (자동 / 수동 / 헬스체크 연동)
4. **보안 점검**
- Grep으로 다음 보안 리스크 탐지:
- 비밀 정보 하드코딩 (비밀번호, 토큰, 연결 문자열)
- 과도한 권한 사용 (root 실행, chmod 777, 와일드카드 과다 사용)
- 암호화되지 않은 통신 (HTTP, 암호화 없는 연결 문자열)
- 로그에 비밀 정보 출력
- 환경 변수 및 시크릿 관리 방식 점검
- 실행 사용자 권한이 최소 권한 원칙을 따르는지 확인
5. **멱등성 및 신뢰성 점검**
- 동일 스크립트를 여러 번 실행해도 안전한지 검증
- 다음 항목 확인: