배포 자동화 SOP — 표준 운영 절차서 완성
📋 실습 안내
✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기
내 코드 실행 결과
🎯 완성 미리보기
목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기
이번 강의 전용
▼
선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. deploy.sh 스크립트에서 헬스체크 실패 시 자동 롤백을 구현하는 핵심 이유는?
💡 자동 롤백은 새 버전에 문제가 있을 때 빠르게 서비스를 복구합니다. 사람이 개입하지 않아도 헬스체크 실패를 감지하고 이전 버전으로 자동 복구하여 다운타임을 최소화합니다.
Q2. backup.sh를 cron으로 매일 새벽 2시에 실행하는 올바른 crontab 설정은?
💡 cron 형식은 '분 시 일 월 요일'입니다. 0 2 * * *는 매일(* * *) 2시 0분을 의미합니다. 분을 0으로 설정해야 정확히 2:00에 실행됩니다.
Q3. rollback.sh에서 버전 태그를 인수로 전달하지 않았을 때 자동으로 이전 버전을 감지하는 방법은?
💡 deploy-history.log에 모든 배포 이력(이전버전→새버전)이 기록됩니다. rollback.sh는 이 파일에서 마지막 배포 이전 버전을 읽어 자동 롤백 대상을 결정합니다.
Q4. SOP 스크립트에서 Slack 웹훅 알림을 구현할 때 SLACK_WEBHOOK 변수가 비어있으면 어떻게 처리하는 것이 좋은가?
💡 슬랙 알림은 부가 기능이므로 웹훅이 설정되지 않아도 나머지 배포/백업/롤백 작업은 정상 진행해야 합니다. notify_slack 함수에서 변수가 비어있으면 return 0으로 건너뜁니다.
Q5. 배포 이력 파일에 기록하는 정보로 가장 완전한 형식은?
💡 좋은 이력 기록은 날짜/시간, 작업 유형(DEPLOY/ROLLBACK), 누가 실행했는지, 어떤 버전에서 어떤 버전으로, 결과(SUCCESS/FAILED)를 모두 포함해야 합니다. 장애 발생 시 원인 추적과 책임 소재 파악에 필수입니다.
😅
아쉽네요!
점수: 0점 — 70점 이상이 되어야 통과합니다.