Task
↓
AI Coding
↓
QA
↓
Human Review
↓
Commit / Push
↓
Release Gate
↓
Deploy
↓
Smoke Test
↓
Monitoring
개발 자동화:
가능한 범위까지 자동화
운영 배포:
자동 검증 + 명시적 승인
운영 DB 변경:
더 강한 Human Gate
CI PASS
↓
Release Gate
↓
조건 충족?
├─ Yes → 배포 가능
└─ No → BLOCK
QA 결과
DB Migration 여부
환경변수 변경 여부
Permission/Auth 변경 여부
API Contract 변경 여부
외부 API 변경 여부
Secret 변경 여부
Rollback 가능 여부
Smoke Test 준비 여부
예를 들어:
Typecheck:
PASS
Lint:
PASS
Unit Test:
PASS
Integration Test:
PASS
그래도 다음 변경이 있다면:
DROP COLUMN
새 운영 환경변수
Permission 정책 변경
알림톡 Provider 변경
자동 배포하면 위험합니다.
QA:
PASS
Release:
REVIEW_REQUIRED
NOT_READY
READY
REVIEW_REQUIRED
BLOCKED
DEPLOYED
VERIFIED
ROLLED_BACK
0909에서 사용한 Task Risk를 배포에도 연결할 수 있습니다.
문서
텍스트 수정
작은 UI 스타일
정적 이미지
배포:
기본 CI PASS 후 배포 가능
일반 API
관리자 화면 기능
조회 쿼리
프론트 기능
배포:
QA + Smoke Test 필요
상담 상태 변경
Worker
Webhook
Excel Export
외부 API
상품 가격/지원금
배포:
Integration Test
Human Review
배포 후 모니터링
DB Migration
Auth
Permission
개인정보
Secret
운영 데이터 변경
배포:
반드시 수동 승인
Rollback 전략 필요
운영 DB 변경 별도 검토
releaseId: release-20260914-01
project: togethermall
branch: main
commit: abc123
risk: HIGH
changes:
database: false
env: false
permissions: true
apiContract: false
worker: false
webhook: false
qa:
result: PASS
runId: run_20260914_091000_x1
requiresHumanApproval: true
무엇을 배포하는가?
어떤 위험 요소가 있는가?
어떤 QA를 통과했는가?
누가 승인해야 하는가?
Task와 Run처럼 Release도 별도 식별자를 두는 것이 좋습니다.
release_20260914_094500_a82f
Task #142
↓
Run #3
↓
Commit abc123
↓
Release #52
Release #52
Task #142
상담 상태 변경 개선
Task #145
권한 문구 수정
Task #149
관리자 목록 버그 수정
장애 발생
↓
어떤 Task가 원인인지 추적
git diff production...HEAD
또는 배포 기준 branch에 따라:
git diff main...release-branch
전체 변경 파일
전체 commit
DB 변경
Config 변경
API Contract
Permission/Auth
Worker/Webhook
prisma/**
→ DB_CHANGE
config/**
→ CONFIG_CHANGE
permission/**
→ PERMISSION_CHANGE
auth/**
→ AUTH_CHANGE
worker/**
→ WORKER_CHANGE
webhook/**
→ WEBHOOK_CHANGE
dto / mapper
→ API_CONTRACT_CHANGE
Release Risk Analysis
✓ Database Change: NO
✓ Config Change: NO
⚠ Permission Change: YES
✓ API Contract Change: NO
✓ Worker Change: NO
Release Status:
REVIEW_REQUIRED
schema.prisma 변경
또는
prisma/migrations/** 변경
↓
Migration Gate
DROP TABLE
DROP COLUMN
ALTER TYPE
NOT NULL
UNIQUE
INDEX
FOREIGN KEY
DEFAULT
기존 데이터 영향
Backfill 필요 여부
Lock 가능성
Migration 실행 시간
Rollback 가능성
애플리케이션 호환성
예를 들어 필드 이름 변경:
기존:
customer_name
목표:
applicant_name
바로:
DROP customer_name
ADD applicant_name
하면 위험합니다.
1. Expand
새 column 추가
2. Migrate
기존 데이터 backfill
애플리케이션이 새/기존 필드 호환
3. Contract
기존 필드 제거
예:
assignedAdminId Int
기존 데이터에 값이 없다면 migration이 실패할 수 있습니다.
1차:
assignedAdminId Int?
2차:
기존 데이터 backfill
3차:
NOT NULL 전환
기존 row에 값이 있는가?
default가 있는가?
backfill 했는가?
코드가 nullable 상태를 처리하는가?
새 column을 먼저 추가해야
새 코드가 실행 가능
흐름:
Migration
↓
Application Deploy
반대로:
코드가 기존/새 구조 모두 지원
↓
Application Deploy
↓
Migration/Backfill
처럼 갈 수도 있습니다.
# Migration Review
## 변경
consults.assigned_admin_id 추가
## 위험도
MEDIUM
## 기존 데이터
기존 row는 NULL 허용
## Backfill
현재 필요 없음
## Application Compatibility
기존 코드 영향 없음
## Rollback
column 제거 가능
## 실행 순서
1. Migration
2. Backend Deploy
3. Smoke Test
## 검증
- 상담 목록
- 상담 상세
- 상태 변경
Config schema 변경
.env.example 변경
SSM key mapping 변경
New Config Detected:
ALIMTALK_API_URL
ALIMTALK_TEMPLATE_ID
Production SSM:
확인 필요
Secret 값 자체는 출력 금지
확인할 것은:
Key 존재 여부
환경별 설정 여부
NestJS 시작 시 필요한 config가 없으면 바로 실패하도록 하는 것이 좋습니다.
const envSchema = z.object({
NODE_ENV: z.enum(['development', 'test', 'production']),
DATABASE_URL: z.string().min(1),
COOKIE_SECRET_KEY: z.string().min(1),
});
배포는 성공했는데
기능 사용할 때 처음 터짐
보다:
프로세스 시작 단계에서 바로 실패
가 낫습니다.
field 삭제
field rename
enum 변경
required 변경
response nesting 변경
HTTP status 변경
새 optional field 추가
기존 field 유지
가능하면:
Backward Compatible하게 먼저 배포
이후:
프론트 변경
마지막:
구 필드 제거
Permission이나 Auth 변경이 포함되면 자동으로 수동 검토 대상으로 올립니다.
PERMISSION_CHANGE=true
↓
REVIEW_REQUIRED
기존 관리자 접근 가능 여부
SUPER_ADMIN 영향
MANAGER/STAFF 영향
/me 권한 응답
프론트 메뉴 노출
API Guard
403 응답
token/session 영향
예:
NotificationJob schema 변경
↓
API 서버는 새 payload 생성
↓
구버전 Worker가 처리
이 경우 호환 문제가 생길 수 있습니다.
API와 Worker 버전 호환
Job payload backward compatibility
새 status 처리 가능 여부
Retry 중 기존 Job 영향
Webhook은 외부 서비스가 계속 요청을 보내므로 배포 중에도 안전해야 합니다.
기존 event type 유지
signature 검증 영향
providerEventId unique 유지
중복 요청 처리
unknown event 무시 가능
새 event 처리 추가:
기존 event 유지
기존 event 제거:
Provider 전환 완료 후
Code Deploy
↓
Feature Flag OFF
↓
운영 확인
↓
Feature Flag ON
새 관리자 화면
새 상담 흐름
새 셀프 상담
새 알림 방식
신규 통신사 기능
새 AI 기능
처음부터 복잡한 서비스는 필요 없습니다.
if (featureFlags.selfConsultEnabled) {
// new flow
}
또는 DB/config:
SELF_CONSULT_ENABLED=false
Flag가 너무 많아지면 관리 어려움
오래된 Flag 제거 필요
보안 기능을 Flag에만 의존하지 않기
Feature Flag와 비슷하지만 장애 대응 목적이 강합니다.
예:
ALIMTALK_SEND_ENABLED=false
EXPORT_ENABLED=false
WEBHOOK_PROCESS_ENABLED=false
외부 API 장애
알림 중복 발송
Export 과부하
Webhook 처리 오류
OFF:
새 알림 발송 중단
기존 Job:
어떻게 처리할 것인가?
까지 정해야 합니다.
Notification Kill Switch OFF
PENDING:
유지
Worker:
발송하지 않고 대기
다시 ON:
처리 재개
가장 단순한 방식입니다.
기존 버전
↓
새 버전 배포
단순함
운영하기 쉬움
문제 발생 시 즉시 영향
Rollback 필요
Blue:
현재 운영
Green:
새 버전
검증 후:
Traffic → Green
전환 전 새 버전 확인
빠른 rollback 가능
인프라 복잡도 증가
비용 증가
DB migration은 여전히 별도 문제
새 버전:
일부 Traffic만 전달
문제 없음:
점차 확대
트래픽이 큰 서비스
여러 인스턴스
배포 위험이 큰 서비스
GitHub Actions
↓
QA
↓
Release Gate
↓
Human Approval
↓
현재 AWS 배포 방식 실행
↓
Smoke Test
↓
로그 확인
Application Rollback
Database Rollback
Config Rollback
Feature Rollback
가장 단순한 경우:
v1 정상
↓
v2 배포
↓
오류
↓
v1 다시 배포
DB 변경 없음
새 코드가 데이터 구조를 비가역적으로 변경하지 않음
예:
Migration에서 column 제거
이후 코드 rollback을 해도:
이전 코드는 삭제된 column을 필요로 함
→ 장애가 계속됩니다.
파괴적 Migration보다
Forward Fix 우선 고려
v2 문제
↓
v2.1 수정
DB schema 변경 완료
기존 데이터 변환 완료
Rollback이 더 위험
Application만 문제:
Rollback 가능성 높음
DB/데이터 변경 포함:
Forward Fix 검토
## Rollback Plan
### Application
이전 commit abc123 재배포 가능
### Database
Migration rollback 필요 없음
### Config
신규 SSM key 유지 가능
### Worker
신규 Worker 중지 후 이전 Worker 재배포
### Trigger
다음 조건 중 하나 발생 시 rollback 검토:
- 상담 신청 5xx 지속
- 관리자 상태 변경 실패
- Critical Worker 오류
### Verification
Rollback 후:
- Health Check
- 상담 신청
- 관리자 목록
- 상태 변경
“문제 생기면 rollback”은 너무 애매합니다.
핵심 API 5xx 반복
상담 신청 불가
로그인 불가
잘못된 데이터 생성
알림 중복 발송
Worker 실패 급증
경미한 UI 오류:
Hotfix
핵심 기능 장애:
Rollback/Forward Fix 즉시 검토
배포 전에 “배포 후 무엇을 확인할지” 먼저 작성합니다.
Health Check
관리자 로그인
/me
상품 목록
상담 신청
상담 목록
상담 상세
상태 변경
Audit Log
NotificationJob
ExportJob
Product 변경:
상품 목록/상세
Permission 변경:
로그인, /me, 관리자 메뉴, 403
Worker 변경:
Job 생성/처리
Consult 변경:
신청/목록/상태 변경
가능한 API는 자동으로 검증할 수 있습니다.
Deploy
↓
Health API
↓
Read API
↓
안전한 Test API
운영에서:
실제 상담 생성
실제 알림톡 발송
실제 주문 변경
같은 테스트를 무작정 자동 실행하면 안 됩니다.
ROLE:
TEST_VIEWER
Permissions:
필요한 최소 권한
Deploy
↓
Smoke Test
↓
Monitoring Window
5xx 증가
Prisma Error
403 급증
Webhook 실패
Worker FAILED
느린 API
DB Connection Error
DEPLOYED
↓
Smoke Test PASS
↓
Monitoring PASS
↓
VERIFIED
배포 성공:
서버에 코드가 올라감
검증 완료:
실제 주요 흐름이 정상임
# Release 2026-09-14
## Commit
abc123
## 포함 Task
- #142 상담 상태 변경 transaction 정리
- #145 관리자 Permission 보완
## 변경사항
- 상태 변경/history/audit transaction 통합
- CONSULT_UPDATE_STATUS 권한 검증 보완
## Risk
HIGH
## Database
변경 없음
## Environment
변경 없음
## Permission
변경 있음
## QA
- Typecheck PASS
- Unit PASS
- Integration PASS
- Permission E2E PASS
## Smoke Test
- 관리자 로그인
- 상담 목록
- 상담 상태 변경
- Audit Log
## Rollback
이전 Application 버전 재배포 가능
입력:
Release Manifest
Task Reports
QA Reports
Git commits
Migration Review
출력:
Release Note
변경사항 요약
관련 Task 병합
Smoke Test 후보 생성
Commit hash
DB 변경 여부
Config 변경 여부
Permission 변경 여부
QA 상태
Release Note:
무엇이 포함됐는가
Deploy Note:
실제로 언제, 어떻게 배포했고 결과가 어땠는가
## Deploy
- Release: release_20260914
- Started: 10:20
- Finished: 10:24
- Result: SUCCESS
## Smoke Test
- Health: PASS
- Admin Login: PASS
- Consult List: PASS
- Status Update: PASS
## Monitoring
- 5xx increase: NO
- Worker Failure: NO
## Final Status
VERIFIED
0911의 Run 구조를 확장할 수 있습니다.
Run Type:
TASK
RELEASE
Release Steps:
RELEASE_BUILD
RELEASE_GATE
DEPLOY
HEALTH_CHECK
SMOKE_TEST
MONITOR
VERIFY
Release Run
✓ BUILD
✓ RELEASE_GATE
✓ DEPLOY
✓ HEALTH_CHECK
✓ SMOKE_TEST
✓ MONITOR
✓ VERIFY
RELEASE_GATE_FAILED
MIGRATION_REVIEW_REQUIRED
ENV_MISSING
DEPLOY_FAILED
HEALTH_CHECK_FAILED
SMOKE_TEST_FAILED
MONITORING_ALERT
ROLLBACK_FAILED
{
"approved": true,
"approvedAt": "2026-09-14T01:20:00Z",
"approvalReason": "QA 및 Permission E2E 확인"
}
개인정보 과도한 저장
불필요한 서명 절차
1인 개발이라도 CLI에서 한 번 더 명시적으로 확인하게 할 수 있습니다.
CRITICAL RELEASE
Detected:
- Prisma Migration
- Permission Change
Type:
DEPLOY release_20260914
to continue.
배포 전에 실제 배포를 하지 않고 전체 Release Gate만 실행할 수 있습니다.
llm-work release --dry-run
실행:
Diff 분석
QA 확인
Migration 검토
Config 확인
Release Note 생성
Deploy:
SKIPPED
llm-work release prepare
llm-work release check
llm-work release deploy
llm-work release verify
prepareRelease Manifest 생성
전체 변경 분석
Risk 계산
Release Note 초안
checkRelease Gate
QA
Migration
Config
Permission
Rollback Plan
deployHuman Approval
실제 Deploy Script 호출
verifyHealth Check
Smoke Test
Monitoring
Deploy Note
release everything 하나로 만들기보다 단계를 나누는 것이 안전합니다.자동:
배포 전 검사
Release Note
Risk 분석
Smoke Test 목록
Rollback Plan 초안
수동:
최종 Deploy 승인
동일한 명령을 반복 실행해도 안전한가?
실패 시 어디서 멈추는가?
exit code가 정확한가?
Secret을 출력하지 않는가?
set -euo pipefail
나쁜 예:
Deploying with DATABASE_URL=...
좋은 예:
DATABASE_URL: configured
Key:
configured / missing
Value:
출력 금지
현재처럼 SSM을 사용한다면:
필요한 Parameter 목록
↓
AWS SSM 존재 여부 확인
↓
값은 읽거나 출력하지 않고 존재 여부만 판단
/togethermall/production/DATABASE_URL ✓
/togethermall/production/AES_KEY ✓
/togethermall/production/NEW_API_URL ✗
결과:
RELEASE BLOCKED
Missing required configuration
featureFlags:
newSelfConsult:
current: false
afterDeploy: false
배포 후 별도로:
Flag 활성화
↓
기능 출시
예를 들어 SKT/KT 기능을 추가할 때:
Code:
운영 배포 완료
Feature:
SKT=false
KT=false
내부 QA 후:
SKT=true
문제 없으면:
KT=true
새 기능을 모든 고객에게 열기 전에 관리자나 내부 조건에서만 활성화할 수도 있습니다.
if (
featureFlag &&
admin.hasPermission('FEATURE_PREVIEW')
) {
// preview
}
OFF
INTERNAL
PARTIAL
ON
DISABLED
OFF
↓
INTERNAL
↓
ON
장애:
ON
↓
DISABLED
신규 기능 안정화
↓
Flag 항상 ON
↓
Flag 코드 제거
owner
createdAt
removeAfter
Task와 변경 파일을 보고 필요한 항목만 생성할 수 있습니다.
예:
Detected:
Permission Change
Worker Change
Generated Checklist:
[ ] Permission E2E
[ ] /me 확인
[ ] 관리자 메뉴 확인
[ ] Worker 상태 확인
[ ] 기존 PENDING Job 확인
Deploy
↓
Health Check FAIL
↓
Release 상태 FAILED
↓
Rollback 판단
또는:
Health PASS
↓
Smoke FAIL
↓
영향 범위 확인
↓
Rollback / Forward Fix
예:
Migration 성공
Application Health 실패
자동 코드 rollback
↓
구버전이 새 DB와 호환 안 됨
나중에 충분히 검증됐다면:
DB 변경 없음
Config 변경 없음
단순 Application Deploy
Health Check 즉시 실패
같은 제한된 상황에서만 고려할 수 있습니다.
0907과 연결합니다.
RELEASE_GATE_FAILED:
보통 문서화 불필요
반복 ENV_MISSING:
배포 자동화 개선 대상
MIGRATION 실패:
Troubleshooting 생성 가치 높음
Smoke Test 실패:
원인에 따라 Incident 후보
Release
↓
DEPLOYED
↓
고객 영향 장애
↓
Incident 생성
자동으로 포함할 정보:
releaseId
commit
포함 Task
배포 시각
QA Run
Migration 여부
Config 변경 여부
0911 Observability에 추가할 수 있습니다.
월 배포 횟수
Release Gate Block 횟수
Deploy 실패율
Smoke Test 실패율
Rollback 횟수
배포 후 Incident 횟수
Deployment Success Rate
Change Failure Rate
Rollback Rate
월 배포:
20회
배포로 인한 장애/즉시 Hotfix:
2회
Change Failure Rate:
10%
장애가 생긴 시점부터 정상화까지 걸린 시간입니다.
장애:
10:20
복구:
10:42
MTTR:
22분
중요한 것은:
작은 변경 단위
안전한 배포
빠른 검증
문제 발생 시 복구 가능
입니다.
AI가 할 일:
변경 요약
위험 감지
체크리스트 생성
Migration 리뷰 보조
Rollback Plan 초안
사람이 할 일:
운영 영향 최종 판단
Release 승인
DB 변경 승인
권한 변경 승인
Rollback/Forward Fix 결정
다음 Release Manifest와 변경 요약을 검토해줘.
확인:
1. DB migration 위험
2. API contract 호환성
3. Permission/Auth 영향
4. Worker/Webhook 호환성
5. 환경변수 누락 가능성
6. 배포 순서
7. Smoke Test 대상
8. Rollback 가능성
9. Human Review가 필요한 항목
규칙:
- 실제 제공된 변경만 기준으로 판단
- 확인할 수 없는 내용은 확인 필요로 표시
- Release 승인 여부를 최종 결정하지 말 것
- 운영 DB 변경을 자동 승인하지 말 것
# Release Report
## Release
release_20260914
## Risk
HIGH
## Included Tasks
- #142
- #145
## Change Detection
- Database: NO
- Config: NO
- Permission: YES
- Worker: NO
- API Contract: NO
## QA
PASS
## AI Review
PASS_WITH_WARNINGS
## Required Human Review
- Permission 변경
## Smoke Test
- Login
- /me
- Consult List
- Status Update
- 403 Permission
## Rollback
Application rollback 가능
## Final
READY_FOR_APPROVAL
llm-work release prepare
llm-work release check
llm-work release show
llm-work release deploy
llm-work release verify
llm-work release prepare --dry-run
llm-work release prepare --from abc123 --to def456
release check 출력Release Check
QA PASS
Secret Scan PASS
Database Change NO
Config Change NO
Permission Change YES
API Contract Change NO
Worker Change NO
Rollback Plan READY
Smoke Test Plan READY
Risk:
HIGH
Status:
REVIEW_REQUIRED
release deployREADY 또는 승인된 REVIEW_REQUIRED일 때만 진행합니다.RELEASE BLOCKED
Reason:
QA status = BLOCK
또는:
Human Approval Required
Permission change detected.
실제로 긴급 상황에서는 우회가 필요할 수 있습니다.
llm-work release deploy --emergency
하지만:
이유 입력 필수
로그 기록
Release Note에 표시
Emergency Reason:
기존 운영 장애 복구용 hotfix
Incident
↓
hotfix branch
↓
최소 수정
↓
핵심 QA
↓
Release Gate
↓
Deploy
↓
Verify
↓
Main branch 반영
Incident 문서
Troubleshooting
누락된 테스트
Common Mistakes
AI Rule 업데이트
Task Report
↓
Release Note
↓
Deploy Note
↓
Daily Report
↓
Weekly Report
↓
Monthly Achievement
## 배포
- 상담 상태 변경 개선 운영 반영
- Release Gate HIGH
- Permission E2E 정상
- 배포 후 상담 목록/상태 변경 Smoke Test 정상
- 5xx 이상 없음
약한 표현:
GitHub Actions 배포 자동화
더 좋은 표현:
배포 전 QA 결과, DB Migration, 환경변수, 권한/API 계약 변경 여부를 자동 점검하는 Release Gate를 구성해 운영 반영 전 위험 요소를 확인할 수 있는 배포 절차를 마련했습니다.
또는:
배포 후 Health Check와 핵심 기능 Smoke Test, 변경 로그 확인을 배포 기록과 연결해 장애 발생 시 변경 범위와 원인을 빠르게 추적할 수 있도록 운영 프로세스를 정리했습니다.
Kubernetes
Canary 자동 Traffic 조절
복잡한 Blue/Green 환경
자동 DB Rollback
완전 무인 Production Deploy
대규모 Feature Flag 서비스
1. Release Manifest
2. 변경 위험 감지
3. DB/Config/Permission Gate
4. Smoke Test Plan
5. Rollback Plan
6. Release/Deploy Note
commit
tasks
risk
DB/config/permission/API 변경
QA Run
완료 기준:
이번 배포에 무엇이 포함됐는지 한 파일에서 확인
QA PASS
Migration 확인
Config 확인
Permission/Auth 확인
Secret Scan
완료 기준:
위험한 배포를 운영 반영 전에 BLOCK/경고
변경 영역별 핵심 검증 항목 자동 생성
완료 기준:
배포 직후 무엇을 확인할지 고민할 필요 감소
배포 전 계획
+
배포 후 결과
완료 기준:
과거 배포 내역과 장애 원인 추적 가능
큰 신규 기능
외부 API 기능
Worker 기능
부터 선택 적용합니다.
기존 llm-work CLI에 Release Gate와 배포 검증 기능을 추가해줘.
목표:
Task/Codex/QA를 통과한 변경을 운영에 반영하기 전에 DB, 환경변수, Permission, API Contract, Worker/Webhook 위험을 자동 점검하고 최종 배포는 사람이 승인하도록 하고 싶다.
조건:
1. Release와 Task/Run을 별도 개념으로 관리해줘
2. releaseId를 생성하고 포함된 Task, commit range, QA runId를 저장해줘
3. Release 상태는 NOT_READY, READY, REVIEW_REQUIRED, BLOCKED, DEPLOYED, VERIFIED, ROLLED_BACK을 지원해줘
4. git diff 기준으로 전체 배포 변경 파일을 분석해줘
5. Prisma schema/migration, config, auth, permission, worker, webhook, DTO/Mapper 변경을 자동 감지해줘
6. DB/Auth/Permission/Secret 관련 변경은 Human Review가 필요하게 해줘
7. QA가 BLOCK이면 Release도 BLOCK해줘
8. Prisma Migration이 있으면 DROP, NOT NULL, UNIQUE, type 변경, backfill 필요 여부를 Review 항목으로 생성해줘
9. 새로운 Config가 추가됐는지 확인하고 운영 SSM에는 실제 값을 출력하지 말고 key 존재 여부만 검증할 수 있게 해줘
10. API Contract 변경 후보가 있으면 프론트 호환성 Warning을 생성해줘
11. Worker 변경 시 기존 PENDING/RETRYING Job과 payload compatibility 확인 항목을 생성해줘
12. Webhook 변경 시 signature, 중복 이벤트, 기존 event type 호환성 체크리스트를 생성해줘
13. 변경 영역을 기반으로 Smoke Test Plan을 생성해줘
14. Application/DB/Config/Worker 기준으로 Rollback Plan 템플릿을 만들어줘
15. AI Review는 위험 요소와 확인 필요 항목만 제안하고 최종 Release 승인 판단은 하지 않게 해줘
16. llm-work release prepare/check/show/deploy/verify 명령을 만들어줘
17. --dry-run을 지원해 실제 배포 없이 Release Gate 전체를 실행할 수 있게 해줘
18. deploy 명령은 기본적으로 사용자 명시 승인 후에만 실행되게 해줘
19. CRITICAL release에는 추가 confirmation을 요구해줘
20. 자동 DB rollback은 구현하지 마
21. Health Check/Smoke Test 결과를 Deploy Note에 저장해줘
22. Release Run을 기존 Observability에 연결하고 RELEASE_GATE_FAILED, DEPLOY_FAILED, HEALTH_CHECK_FAILED, SMOKE_TEST_FAILED 같은 ErrorCode를 기록해줘
23. Release Note와 Deploy Note를 Markdown으로 저장해줘
24. Secret, DATABASE_URL, SSM 실제 값, 고객 개인정보는 로그와 보고서에 포함하지 마
25. 사용 방법과 테스트 방법을 문서화해줘
QA PASS와 Release Ready를 구분하는가?
DB/Auth/Permission 변경을 강하게 다루는가?
운영 SSM 값을 출력하지 않는가?
배포 직전 전체 diff를 기준으로 판단하는가?
Worker/Webhook 배포 호환성을 고려하는가?
Rollback과 Forward Fix를 구분하는가?
자동 DB Rollback을 성급히 구현하지 않는가?
최종 운영 배포 승인 권한을 사람에게 남기는가?
1인 개발 환경에서 AI/Codex 작업 자동화 이후 운영 배포까지 안전하게 연결하는 Release Gate 시스템을 설계하려고 해.
현재 구조:
1. Task Spec → Codex → QA → AI Review → Human Review 흐름이 있음
2. Run/Step 기반 Observability가 있고 typecheck, lint, test, scope check, secret scan 결과를 저장함
3. Task Report, Daily/Weekly/Monthly Report, Troubleshooting/Incident 문서가 있음
4. 실제 운영 배포는 AWS 환경이며 PostgreSQL/Prisma와 SSM을 사용함
5. 운영 배포 자체를 완전히 AI에게 맡기지는 않을 계획임
원하는 구조:
- Release를 Task/Run과 별도로 관리
- 여러 Task를 한 Release에 묶기
- 운영 반영 전체 Git diff 분석
- Prisma migration/config/auth/permission/API contract/worker/webhook 변경 감지
- 위험도에 따른 Human Approval
- Release Manifest/Release Note 생성
- 변경 영역 기반 Smoke Test 생성
- Rollback/Forward Fix 계획
- Feature Flag/Kill Switch 적용 기준
- 배포 후 Health Check/Smoke Test/Monitoring
- Release Observability
- Incident와 Release 연결
안전 조건:
- 운영 DB migration 자동 승인 금지
- 자동 DB rollback 금지
- SSM/Secret 실제 값 출력 금지
- 고객 개인정보 로그 금지
- Permission/Auth/DB 변경은 반드시 사람이 확인
- 실제 deploy 명령은 명시적 승인 후 실행
요청:
- Release 데이터 모델
- Release 상태
- Risk/Gate 규칙
- Migration Gate
- Config/SSM 검증
- API Contract Gate
- Permission/Auth Gate
- Worker/Webhook 호환성 체크
- Feature Flag/Kill Switch 기준
- Smoke Test 설계
- Rollback vs Forward Fix 판단
- Release/Deploy Note 템플릿
- CLI 명령어
- Observability/ErrorCode 연결
- 구현 우선순위
를 실무적으로 정리해줘.
CI 성공과 Release Ready를 구분하는가?
운영 전체 diff를 기준으로 검토하는가?
DB Migration을 일반 코드와 다르게 취급하는가?
Config 존재 여부를 Secret 값 노출 없이 검증하는가?
API/Worker/Webhook의 버전 호환성을 고려하는가?
배포와 기능 출시를 Feature Flag로 분리할 수 있게 하는가?
자동 Rollback을 무조건 권하지 않는가?
Rollback과 Forward Fix의 차이를 설명하는가?
배포 후 검증을 별도 단계로 보는가?
최종 운영 승인 권한을 사람에게 남기는가?
VERIFIED 상태로 보는 것이 좋습니다.